web開發技術(shù)棧(框架)總結 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >

web開發技術(shù)棧(框架)總結

發表時間:2020-6-30

發布人:葵宇科技

浏覽次數:46

原文(wén) web開發技術(shù)棧(框架)總結

Bootstrap-Layui-Amazeui-jQuery-vue-react-AngularJS-ci-Thinkphp-Yii-Laravel-Node-Django-springMVC-apache-nginx-mysql-redis……

天呐,好多……

小編雖說出身工業(yè)軟件,但心裡一直藏着一個(gè)UI夢。近兩年,小編業(yè)餘時間從零開始摸索web開發,把web開發常用的技術(shù)和(hé)框架大概都摸了摸看了看,趁着五一假期有點時間,做個(gè)總結。

本文(wén)提到的前端,是指通(tōng)俗語義下(xià)web開發的前端,主要内容是視圖層的開發,包括UI布局、用戶交互及後端數據請求展示。

本文(wén)提到的後端,是指web開發的後端,内容包括模塊路(lù)由和(hé)數據庫存取。注意,這裡的後端不是指大數據開發領域的Hadoop、Storm那些。

前端

JavaScript(後文(wén)統稱為js)、css、HTML是前端開發的語言基礎,如(rú)果想能将前端框架用好還是需要将水平提高到大概能用的程度。html負責網頁的内容和(hé)基本結構,css負責UI樣式,js負責将用戶請求傳送到後端并将後端數據在html頁面中(zhōng)展示。

前端的框架分兩類,UI樣式庫和(hé)js庫。有些UI樣式為了實現動(dòng)态效果,會使用js庫如(rú)jQuery。

前端開發的編程工作JS為主,還有近幾年出的TypeScript(JS的超集)。

奇怪的是,最近各官網下(xià)載的開發包裡都不帶jQuery庫,如(rú)有專業(yè)人士路(lù)過請稍作指點。

UI樣式庫

前端框架中(zhōng)有很大一部分是UI樣式庫。這些樣式庫的關(guān)注點是視圖。對于糾結(患有強迫症)的開發者,不建議使用UI樣式框架,真的是哪哪都看着不爽,到最後還不如(rú)自己css造輪子(zǐ)來的爽快。自己css造,不一定好看,但可(kě)以滿足強迫症。

Bootstrap

小編認為Bootstrap是一個(gè)非常好的入門選擇,教程示例非常豐富,顔值也還過得去。
栅格布局自帶響應式,常用的顔色都有類可(kě)以直接調用。
Bootstrap中(zhōng)文(wén)網:http://www.bootcss.com/

用法示例:

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <a class="navbar-brand" href="#">導航</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="collapsibleNavbar">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">鍊接</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">鍊接</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">鍊接</a>
      </li> 
    </ul>
  </div>  
</nav>

示例代碼可(kě)以看出,引入類的方式來定義控件樣式,使用方便而且語義清晰。

Layui

和(hé)Bootstrap差不多的東西,個(gè)人感覺色系看起來稍顯寡淡。
Layui官網:https://www.layui.com

Amaze-UI

俗稱妹子(zǐ)UI,也是一款樣式框架。
妹子(zǐ)官網:http://amazeui.org/

Font Awesome

圖标字體庫和(hé)CSS框架,畢竟隻有圖标字體和(hé)CSS,所以一般配合其他的樣式框架使用。
Font Awesome官網:http://fontawesome.dashgame.com/

js庫

js庫是實現功能的主要手段。常規的js庫中(zhōng)都會包含DOM(或虛拟DOM)操作、ajax異步get和(hé)post請求封裝實現、頁面渲染刷新等。

相比原生js,使用庫優點在于方便,缺點在于js庫文(wén)件通(tōng)常動(dòng)辄數百kb,在帶寬緊張的環境會拖慢頁面的加載速度。

小編現在喜歡用vue.min.js,輕快又方便。為啥不用vue-cli方式呢(ne)?講真,對于php流個(gè)人業(yè)餘全菜開發者來說,npm run dev帶來的不方便比方便更多些。

這年頭,不用npm都不好意思說自己是前端框架,不信請看vue、React、AngularJS,全都是這套玩法。

jQuery

對于傳統開發者來說,js為主的前端框架與其說是框架像是庫。對C/C++開發者來說,就像是

#include <stdio.h>
……

jQuery最具特色的操作是 $(“yixzm”) 等價于 document.getElementById(“yixzm”),以及ajax,就像這樣:

$.ajax({ url: "/api", context: document.body, success: function(){
    console.log("test");
}});

DOM操作真的很方便。

jQuery官網:http://jquery.com/

vue

隻需要用一下(xià)下(xià),就會很爽的庫。
職業(yè)玩家都使用npm的方式,業(yè)餘玩家嘛用用link引入也就可(kě)以了。vue對開發者最大的便利是不用頻繁的DOM操作,數據隻需要賦值給定義的對象元素即可(kě)同步刷新頁面内容。

據jsp玩家講,和(hé)jsp差不多?據php玩家講,和(hé) <?php 差不多?

但小編感覺方便程度上還是差很多的,畢竟請求到的數據可(kě)以直接進頁面,寫在js裡怎麼看都更好些。

vue-cli模式開發,可(kě)以讓js代碼工程化。或許,這時候的前端工程師(shī)需要調整鄙視鍊層級。(C >> C++ >> java >> php >> js?)

小編說,js主要負責請求交互和(hé)動(dòng)态刷新,但有人不講規矩。比如(rú)vue中(zhōng)的vue-element,不僅能處理交互,還能生成UI的組件模塊。

vue-cli模式開發,有個(gè)叫做模闆的東西,文(wén)件後綴格式如(rú)filename.vue,這玩意将每一個(gè)獨立的HTML模塊連同CSS和(hé)JS代碼一起封裝在一個(gè)文(wén)件裡,用的時候直接引入,相當方便。

用法示例代碼:

<div id="app">
  <ul>
    <template v-for="key in objs">
      <li>{{ obj.txt }}</li>
      <li v-html="404.html">--------------</li>
    </template>
  </ul>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    objs: [
      { txt: 'yixzm', html: '<h1>yixzm</h1>' },
      { txt: 'dream', html: '<h2>dream</h2>' },
      { txt: 'stone', html: '<h3>stone</h3>' },
    ]
  }
})
</script>

怎麼樣?夠方便吧~

v-for 這玩意,小編第一次看到時被驚呆了,還能這麼寫頁面?用起來好舒服~

vue官網:https://cn.vuejs.org/

React

這玩意和(hé)vue的類似之處是也能工程化的管理js開發項目。既能引入的方式使用,也能npm方式構建項目。

用法示例代碼:

<div id="example"></div>

<script type="text/babel">
function UserGreeting(props) {
  return <h1>歡迎回來!</h1>;
}

function GuestGreeting(props) {
  return <h1>請先注冊。</h1>;
}

function Greeting(props) {
  const isLoggedIn = props.isLoggedIn;
  if (isLoggedIn) {
    return <UserGreeting />;
  }
  return <GuestGreeting />;
}

ReactDOM.render(
  // Try changing to isLoggedIn={true}:
  <Greeting isLoggedIn={false} />,
  document.getElementById('example')
);
</script>

通(tōng)過示例代碼中(zhōng)的這兩句:

document.getElementById('example')
return <h1>請先注冊。</h1>;

可(kě)以發現,React的開發渲染風格和(hé)原生JS相似度很高,和(hé)vue區别很大。

React官網:https://reactjs.org/

AngularJS

AngularJS和(hé)vue代碼相似度很高。

<div ng-app="">
  <p>名字 : <input type="text" ng-model="name"></p>
  <h1>Hello {{name}}</h1>
</div>

和(hé)vue相比,幾乎就是換了各變量名…… 當然,hello world 隻是表象,更多區别還需要深入使用才能感受到。

AngularJS官網:https://angularjs.org/
AngularJS中(zhōng)文(wén)網:http://www.angularjs.net.cn/

後端

除了專注視圖活躍在用戶面前的前端框架,還有一些默默在後台奉獻的後端框架。web後端框架做的事一般來說,是提供http請求服務接口,實現請求路(lù)由、數據存取、模塊後台功能實現等。

新時代的前端框架如(rú)vue和(hé)React,本身自帶路(lù)由功能,大家将其叫做前端路(lù)由。前端路(lù)由一般使用在開發SPA(單頁應用)的場景,路(lù)由時會異步加載數據渲染至頁面但不會重新加載整個(gè)頁面。而後端路(lù)由會重新向服務端提交請求。

後端框架一句話總結:存取數據分模塊,各種語言都能用。

Php有ci、tp、Yii和(hé)laveral,java有springMVC,Python有Django,JS有node,可(kě)謂百家争鳴、百花(huā)齊放。

這時候,C/C++出身的小編秉着不靠天不靠地輪子(zǐ)自己造的精神,對各框架普遍采取讀源碼試用而不用的态度。了解、學習,但寫寫東西還是喜歡自己撸。強撸和(hé)借鑒(抄襲)有益理解别人的閃光點。

php框架

ci和(hé)tp上手極快,Yii和(hé)Laravel稍微有點學習成本。

ci

ci即優雅的CodeIgniter,很mini的一款框架,相對容易入門。

CI中(zhōng)文(wén)網:https://codeigniter.org.cn/

thinkphp

傳說中(zhōng)的培訓班神器(qì),據說上手極快?

官網:http://www.thinkphp.cn/

Yii

沒啥好說的,看起來和(hé)ci、tp貌似差不多…… 好久沒翻Yii源碼,記得貌似是傳統的<?php code ?>的方式寫模闆?沒啥特别的映象。

Yii中(zhōng)文(wén)網:https://www.yiichina.com/

Laravel

本菜感覺上手好麻煩,夾雜的東西太多。(正在使用laravel的大神請嘗試理解小編着重提到的“菜”字)
Composer安裝模塊效率很高,據說是沖鋒槍?學習成本還是蠻高的。

Laravel中(zhōng)文(wén)網:https://www.golaravel.com/

Python框架

Django

Python版的Laravel……

Django小編寫自動(dòng)化、爬蟲的時候也會用到,但拿來寫web總感覺不習慣…… 誰讓Php是世界上最好的語言呢(ne)~

Django官網:https://www.djangoproject.com/

Java框架

Spring MVC,額,沒寫過Java,小編如(rú)果說這是Java的web開發框架,不知是否有專家會留言批評呢(ne)?

HTTP服務

以上後端框架關(guān)注應用和(hé)數據,對HTTP服務監聽關(guān)注的并不多。服務監聽工作一般由Apache或者Nginx來承擔,負責請求響應、并發和(hé)數據返回。關(guān)于HTTP服務,小編除了Apache用的比較多,Nginx搭過幾個(gè)系統外,了解的并不多。所以,小編暫且總結接觸過的這三個(gè)。

對于apache和(hé)nginx的比較,網上有很多帖子(zǐ)有講而且很詳細。比如(rú)這篇:Apache和(hé)Nginx的區别 就講的很好

後端流的JS

node-js,額,隻用node寫過一個(gè)socket server,沒啥可(kě)總結的。node寫在這裡是否合适也有待學習。
nodejs中(zhōng)文(wén)網:http://nodejs.cn/

apache

老牌的HTTP服務提供者。在小編寫C++的時代,傳說中(zhōng)的LAMP、WAMP猶如(rú)迷霧中(zhōng)的燈塔一般,在知識的海洋裡引領着小編。

apache動(dòng)态請求響應效率高,httpd.conf配置也極其方便。

apache官網:http://www.apache.org/

nginx

據說更擅長靜态文(wén)件響應?需要配置反向代理才能正常使用Php、Python等語言開發的工程,小編個(gè)人感覺有些麻煩,不怎麼喜歡用。

nginx官網:http://nginx.org/

數據庫

存數據,mysql很方便。redis在内存裡,數據請求時加載超級快!

mysql VS redis?

關(guān)系型和(hé)非關(guān)系型,索引方便和(hé)響應快速……
一起用吧,就像硬盤和(hé)内存。

不過,現在mysql一般用MariaDB來替代。
mariadb官網:https://mariadb.org/
mysql官網:https://www.mysql.com/
redis中(zhōng)文(wén)網:http://www.redis.cn/

開發環境及工具

vscode

這玩意寫前端代碼還不錯,良心工具。

vscode官網:https://code.visualstudio.com/

……

還有很多,小編這次先總結這些。

#寫在最後

web開發内容很多,也很有趣。

小編将求索以圖成長。

相關(guān)案例查看更多