對于 Web 開發(fā)人員來說,找到一些合適的工具,能讓工作輕松許多。這其中,Web 框架更是提升工作效率的“利器”。但因為可選的 Web 框架非常多,如何選擇也是一件令人頭疼的事情。
本文列出了9款目前比較流行的 Web 框架,并對優(yōu)缺點進行分析,希望能對大家有所幫助。(內(nèi)容主要編譯自Ken Mazaika的The 9 Most In-Demand Web Frameworks And What You Need To Know About Them)
首先,
什么是 Web 框架?
當 Web 瀏覽器使用 HTTP 和在其他地方運行的服務(wù)器(計算機)通訊時,這些服務(wù)器會收到一些通知:
- 所選的 URL
- 如何輸入網(wǎng)址(通過表單提交或只是在瀏覽器欄中輸入網(wǎng)址)
服務(wù)器要干很多事情,比如:
- 讀取數(shù)據(jù)庫里的數(shù)據(jù)和添加數(shù)據(jù)
- 找到正確的結(jié)果(用戶是否被允許查看試圖訪問的頁面?是否要發(fā)送到不同的URL?等等)
- 構(gòu)建用戶將看到的網(wǎng)頁
如果要提供更復雜的功能,就需要執(zhí)行更多的步驟。作為開發(fā)人員,則需要對想要的功能列出一系列解決方案。Web 框架就是其中可選的解決方案之一。
進入正題:
1、Ruby alt="" width="650" height="463" />
編程語言:Ruby
簡介:
Ruby>
2、Sinatra
編程語言:Ruby
簡介:
上面的5行代碼就是做一個最低限度配置的空 Web 應(yīng)用所需要的全部代碼, 如果拿它和 Ruby alt="" width="320" height="240" />
優(yōu)點:
- Sinatra 是輕量級框架的領(lǐng)頭羊。
- Sinatra 高度可配置,注重開發(fā)的自由度。
缺點:
- 由于不側(cè)重“慣例”,沒有相同的文件夾結(jié)構(gòu),所以會比較難去理解現(xiàn)有的 Sinatra 應(yīng)用。
- Sinatra 不常用于實際生產(chǎn)項目當中。
- 手動配置很多東西往往需要更多的時間,效率會受影響。
3、ExpressJS
編程語言:JavaScript
簡介:
ExpressJS 是一個 JavaScript Web 框架,基于 Node.js。看起來有沒有熟悉,它的代碼非常類似 Sinatra 的代碼,也有和 Sinatra 相似的簡單性。 在一個準 Express 應(yīng)用中只有兩個代碼文件:
- package.json,這是 NPM 自動生成的文件。
- app.js,這里包含著應(yīng)用程序的完整代碼。
優(yōu)點:
- 高靈活性。
- 可以只使用一種編程語言。
- 輕量。
缺點:
- 更多選項=更多選擇。 選擇意味著需要研究不同的選項,找出將它們應(yīng)用到自己的項目當中的方法,這往往需要更多時間。
4、SailsJS
編程語言:Javascript
簡介:
SailsJS 可以看成是 JavaScript 版的 Rails,有一個命令行工具去生成一個完整的默認應(yīng)用程序,自帶許多合理的默認配置和數(shù)值。
同樣,Sails 也有 MVC 架構(gòu),啟動一個完整的應(yīng)用也會有數(shù)十個默認的文件。
優(yōu)點:
- 有許多默認已配置好的方法完成構(gòu)建 Web 應(yīng)用所涉及的大部分工作。
- 命令行程序使得構(gòu)建新應(yīng)用和功能更為輕松。
缺點:
- 盡管是一個看起來很強大的框架,人氣也不低,但是并沒有多少公司采用。
5、MEAN 堆棧
編程語言:JavaScript
簡介:
MEAN 是 ExpressJS 的擴展,堆棧了如 MongoDB、AngularJS 和 WebPack 等技術(shù)。MEAN 用JavaScript 一種語言來驅(qū)動整個應(yīng)用。
MongoDB 是一個在概念上與其他大多數(shù)據(jù)庫有較大區(qū)別的數(shù)據(jù)庫,它允許 JSON 數(shù)據(jù)在其中自由隨意,這意味著數(shù)據(jù)庫條目是靈活的,但同時也導致無效的記錄成了一個非常容易遇到的問題。它不是通過 SQL 與數(shù)據(jù)庫交互,而是使用其獨有的 JavaScript。