最先的軟件都是運行在大型機上的,軟件使用者經過「啞終端」登錄到大型機上去運行軟件。後來隨着PC機的興起,軟件開始主要運行在桌面上,而數據庫這樣的軟件運行在服務器端,這種Client/Server模式簡稱CS架構。前端
隨着互聯網的興起,人們發現,CS架構不適合Web,最大的緣由是Web應用程序的修改和升級很是迅速,而CS架構須要每一個客戶端逐個升級桌面App,所以,Browser/Server模式開始流行,簡稱BS架構。node
在BS架構下,客戶端只須要瀏覽器,應用程序的邏輯和數據都存儲在服務器端。瀏覽器只須要請求服務器,獲取Web頁面,並把Web頁面展現給用戶便可。webpack
固然,Web頁面也具備極強的交互性。因爲Web頁面是用HTML編寫的,而HTML具有超強的表現力,而且,服務器端升級後,客戶端無需任何部署就能夠使用到新的版本,所以,BS架構迅速流行起來。git
今天,除了重量級的軟件如Office,Photoshop等,大部分軟件都以Web形式提供。好比,新浪提供的新聞、博客、微博等服務,均是Web應用。github
Web應用開發能夠說是目前軟件開發中最重要的部分。Web開發也經歷了好幾個階段:web
靜態Web頁面:由文本編輯器直接編輯並生成靜態的HTML頁面,若是要修改Web頁面的內容,就須要再次編輯HTML源文件,早期的互聯網Web頁面就是靜態的;數據庫
CGI:因爲靜態Web頁面沒法與用戶交互,好比用戶填寫了一個註冊表單,靜態Web頁面就沒法處理。要處理用戶發送的動態數據,出現了Common Gateway Interface,簡稱CGI,用C/C++編寫。express
ASP/JSP/PHP:因爲Web應用特色是修改頻繁,用C/C++這樣的低級語言很是不適合Web開發,而腳本語言因爲開發效率高,與HTML結合緊密,所以,迅速取代了CGI模式。ASP是微軟推出的用VBScript腳本編程的Web開發技術,而JSP用Java來編寫腳本,PHP自己則是開源的腳本語言。npm
MVC:爲了解決直接用腳本語言嵌入HTML致使的可維護性差的問題,Web應用也引入了Model-View-Controller的模式,來簡化Web開發。ASP發展爲ASP.Net,JSP和PHP也有一大堆MVC框架。編程
目前,Web開發技術仍在快速發展中,異步開發、新的MVVM前端技術層出不窮。
因爲Node.js把JavaScript引入了服務器端,所以,原來必須使用PHP/Java/C#/Python/Ruby等其餘語言來開發服務器端程序,如今能夠使用Node.js開發了!
用Node.js開發Web服務器端,有幾個顯著的優點:
一是後端語言也是JavaScript,之前掌握了前端JavaScript的開發人員,如今能夠同時編寫後端代碼;
二是先後端統一使用JavaScript,就沒有切換語言的障礙了;
三是速度快,很是快!這得益於Node.js天生是異步的。
在Node.js誕生後的短短几年裏,出現了無數種Web框架、ORM框架、模版引擎、測試框架、自動化構建工具,數量之多,即便是JavaScript老司機,也難免眼花繚亂。
常見的Web框架包括:Express,Sails.js,koa,Meteor,DerbyJS,Total.js,restify……
ORM框架比Web框架要少一些:Sequelize,ORM2,Bookshelf.js,Objection.js……
模版引擎PK:Jade,EJS,Swig,Nunjucks,doT.js……
測試框架包括:Mocha,Expresso,Unit.js,Karma……
目前,在npm上已發佈的開源Node.js模塊數量超過了30萬個。
有選擇恐懼症的朋友,看到這裏能夠洗洗睡了。
好消息是這個教程已經幫你選好了,你只須要跟着教程一條道走到黑就能夠了。