你應該知道的 9 款流行 Web 框架及其優缺點

2021-02-23 OSC開源社區


對於 Web 開發人員來說,找到一些合適的工具,能讓工作輕鬆許多。這其中,Web 框架更是提升工作效率的「利器」。但因為可選的 Web 框架非常多,如何選擇也是一件令人頭疼的事情。

本文列出了9款目前比較流行的 Web 框架,並對優缺點進行分析,希望能對大家有所幫助。(內容主要編譯自Ken Mazaika的The 9 Most In-Demand Web Frameworks And What You Need To Know About Them)

首先,

當 Web 瀏覽器使用 HTTP 和在其他地方運行的伺服器(計算機)通訊時,這些伺服器會收到一些通知:

伺服器要幹很多事情,比如:

如果要提供更複雜的功能,就需要執行更多的步驟。作為開發人員,則需要對想要的功能列出一系列解決方案。Web 框架就是其中可選的解決方案之一。

程式語言:Ruby

簡介:Ruby on Rails 是一個已經被許多公司採用的 Web 框架,是 Ruby 程式語言中 Web 框架的鼻祖,獲得了大量開發者的採用。DHH(Rails 的創始人)曾用它15分鐘左右創建一個博客。

Rails 的一大特點是約定優於配置(convention over configuration)。這意味著,它比較模式化、標準化和「約定化」,開發者通常做的是相同的事情,可以讓代碼寫到最少。 

Rails 還使用了 MVC(Model-View-Controller),讓架構更有組織性,更周密。

優點:

Rails 具有強大的命令行界面,通過幾個簡單的命令就能在新的應用上啟動和運行。

Rails 已經存在很長時間了,並且廣泛被使用,網絡上有很多關於它的教程。

Rails 簡單易用,即便是複雜的問題,也能相對快速解決。

缺點:

整體來看,鑑於其靈活性及便捷性,Rails 是一個非常理想的 Web 框架,值得初學者優先學習。

程式語言:Ruby

簡介:上面的5行代碼就是做一個最低限度配置的空 Web 應用所需要的全部代碼, 如果拿它和 Ruby on Rails 進行比較,會發現它需要的代碼更少(而且只有一個文件,而不是幾十個)。

然而,Sinatra 的簡單性是一把雙刃劍。 它用的是和 Ruby on Rails 相反的方法,需要開發者手動配置所有的東西。

優點:

Sinatra 是輕量級框架的領頭羊。

Sinatra 高度可配置,注重開發的自由度。

缺點:

程式語言:JavaScript

簡介:ExpressJS 是一個 JavaScript Web 框架,基於 Node.js。看起來有沒有熟悉,它的代碼非常類似 Sinatra 的代碼,也有和 Sinatra 相似的簡單性。 在一個準 Express 應用中只有兩個代碼文件:

優點:

缺點:

程式語言:Javascript

簡介:SailsJS 可以看成是 JavaScript 版的 Rails,有一個命令行工具去生成一個完整的默認應用程式,自帶許多合理的默認配置和數值。

同樣,Sails 也有 MVC 架構,啟動一個完整的應用也會有數十個默認的文件。

優點:

缺點:

程式語言:JavaScript

簡介:MEAN 是 ExpressJS 的擴展,堆棧了如 MongoDB、AngularJS 和 WebPack 等技術。MEAN 用JavaScript 一種語言來驅動整個應用。

MongoDB 是一個在概念上與其他大多資料庫有較大區別的資料庫,它允許 JSON 數據在其中自由隨意,這意味著資料庫條目是靈活的,但同時也導致無效的記錄成了一個非常容易遇到的問題。它不是通過 SQL 與資料庫交互,而是使用其獨有的 JavaScript。

優點:

缺點:

補充幾句個人觀點:

這個包含 MongoDB 的框架對我來說毫無意義,幾乎所有其他 Web 框架都使用標準資料庫 SQL。在我看來,MEAN 堆棧可能只在那些 MongoDB 真正「發光發熱」的場景中有價值,但 Mongo 又是一個在高負載的時候才需要的東西,比如廣告網絡和 API 負載高的時候。

不可否認 MEAN 在某些情況下是有意義的,但對於典型的 Web 應用,我不太建議使用。因為 MEAN 在應用的每一個部分只使用 JavaScript 程式語言,這聽起來會很容易掌握,但是像 MongoDB 和 WebPack 這樣的東西使得 MEAN 實際上比那些解決問題的「標準」技術更困難。 

程式語言:Python

簡介:Django 是一個運行在 Python 上的 MVC Web 框架。 它也有一些打開即用的配置,它與 Ruby on Rails 框架有許多相似之處,也有不少區別。 這個 Web 框架改變了控制器和視圖的職責,但毫無疑問它是一個優秀的 Web 框架。

優點:

注意:

程式語言:Python

簡介:Tornado 是一個沒有怎麼宣傳的 Python Web 框架,它快速、高效,並允許開發人員訪問 python 的大資料庫。

優點:

缺點:

程式語言:Java 或 Scala

簡介:Play 同樣是一個輕量級的、無狀態的 Web 框架,學到了 rails 的優點,使用構建在 Akka 之上的完全異步模型,提供可預測的和最小的資源消耗(CPU,內存,線程)。

優點:

缺點:

程式語言:PHP

簡介:Laravel 是一個用 PHP 編寫的框架。 10年前,PHP 是幾乎所有 Web 應用構建的標準程式語言,不過如今,受 Ruby、JavaScript 和 Python 影響,PHP 失去了很大的市場份額。

儘管如此,Laravel 仍是一個非常成熟的框架,允許使用 PHP 構建漂亮的代碼。

優點:

缺點:

看完上面列出的這些不同的框架,很容易發現它們有互相在尋找靈感,許多功能、特性其實還蠻相似的。所以,說哪個好哪個不好,並沒有什麼意義,找到合適自己的才是關鍵。上面的框架可以簡單分為兩種類型:

ExpressJS、Tornado 和 Sinatra 都是簡約框架,他們提供啟動需要的最低配置。

這些框架需要開發人員手動添加每個單獨的組件,給予足夠的自由度去完成項目。此外,通過強制自己配置應用的各方各面,可以掌控更多主動權,並在每種情況下都使用理想的工具。

當然,也有一些缺點。會經常發現自己處於需要分析不同選項並做出很多選擇的情況下。

Rails、SailsJS、MEAN.io、Laravel 和 Play 都是 Omakase 框架,它們建議開發者以某種「正確」的方式編寫代碼,並且給出社區標準。

這些框架提供開發所需要的一切,打開即可編程。如果想使用其他的東西,它們還允許選擇停用。構建這些框架的開發人員已經為後來者做出了一些關鍵決策,因此可以遵循他們建議使用的模式。

這對初學者來說有很大的優勢,初學者往往在學習 Web 框架的時候,你還需要學習資料庫、HTTP 請求、設置應用在 Internet 上運行等等知識。由於有一個被廣泛接受的社區標準,學習一個像 Rails 這樣的 Web 框架可以:

相關焦點

  • 2020年9個最流行的Java框架
    但是,僅僅為你的下一個web應用程式開發項目選擇這門頂級語言是不夠的。在選擇Java web框架時,你仍需要做出正確的選擇。那麼,你是否想知道如何為項目選擇一個恰當的 Java框架呢?實際上,這並不容易,而且需要深入了解為特定行業業務選擇特定java框架進行軟體開發的優缺點。現在,讓我們一起來詳細研究一下2020年這9大頂級Java框架。
  • 構建混合移動應用的流行框架優缺點對比
    本文列出的大多數框架都是用Cordova 或 PhoneGap 實現的,它們架起了由 JavaScript 通往設備 API 的橋梁。本文將對用於構建混合和原生行動應用程式的最流行的 JavaScript 框架進行比較。滾動本文的最後可以看到結果。1. Ionic
  • 十大流行AI框架和庫的優缺點對比
    然而,由於各種庫和框架的發展,該領域發生了巨大改進。本文,我們將研究人工智慧的高質量庫的優缺點,以及它們特點。讓我們潛入並探索這些AI庫的世界!語言:C++或Python當你進入AI時,你會聽到的第一個框架之一就是Google的TensorFlow。TensorFlow是一個使用數據流圖進行數值計算的開源框架。
  • Angular、React、Vue.js 等 6 大主流 Web 框架都有什麼優缺點?
    在這篇文章中,我們將對 6 款主流 Web 框架進行總結,包括我們所認為的強項和弱項。另外,我們為你留下了一些值得思考的問題。我是否需要使用框架?團隊應該避免虛假等價(false equivalence)的陷阱,很顯然,在 web 技術的應用方面具有創新性的公司在不斷提高他們的市場價值和競爭力,Google、Facebook 和 Netflix 公司都是很好的例子。但是大多數公司不是這樣,他們應該承認這一點。
  • Rust web 框架現狀【2021 年 1 季度】
    引文基於開源、快速開發、可靠性,以及高性能的特性,Rust 正在成為最流行的程式語言之一。在 Rust 中構建新的 web API 時,需要著重考慮前端和後端開發,以及所採用 web 框架的優缺點。在本文中,我們將討論 web 框架是什麼,並在前端和後端開發中,關於當前框架的使用,提供一些建議。web 框架是什麼?
  • 9個用於web前端開發的CSS開源框架
    本文將與你探討9款流行的、功能強大且開源的框架,讓你的css開發得以輕鬆構建精緻的網絡前端。Css輕量級框架MITMaterialize基於 Material Design的css框架MITBootflat基於 Bootstrap 3.3.0的開源Flat UI組件MITBootstrap無疑是最受歡迎的css框架,它是最早的web前端框架之一。
  • 2016年7款最佳 Java 框架
    在其完全擁抱 MVC框架之後,Spring 不斷的發展與變化著,轉變成了一個功能全面的面向網際網路應用程式的Java框架, 它能提供給軟體工程師的是一個用於web應用程式開發的強大工具集,以及針對安全項目的應用程式配置。作為程式設計師世界最受歡迎的一員,Spring所擁有有發育良好的生態提供了許許多多的附加選擇: REST API 或者是 SOAP web 服務, 安全(認證和授權、加密)等等。
  • 10款Web開發最佳的Python框架
    (點擊尾部閱讀原文前往)英文原文:http://www.developerslane.com/10-best-python-frameworks-for-web-development/翻譯作者:碼農網 – 小峰Python是躋身於當代IT世界最流行和代碼最高效的程式語言之一
  • 10 款 Web開發最佳的 Python 框架
    Python框架能幫助你快速啟動Web應用。給大家總結了幾款優秀的類庫,一定要收藏!1.CubicWebCubicWeb的最重要的功能是其代碼的可重用性,由一個個代碼單元組成。它靈活又強大,並且還有一些特別的功能,包括RQL查詢語言和支持有效編碼的語義視圖功能。這是語義Web應用程式的最佳解決方案,並且提供理想的環境。
  • 你應該知道的9個優秀的CSS框架
    >本文作者:碼農網 – 小峰前端開發是一項非常繁瑣的工作,你不僅需要擁有和別人不一樣的審美觀和設計觀,而且需要了解諸如HTML、CSS、JavaScript等錯綜複雜的技術,因此選擇一些優秀的CSS框架或許可以幫助你大大提高工作效率。
  • Web程式設計師最常用的11款PHP框架
    今天我將為開發人員帶來幾款最好的PHP框架,希望能對你有用。1.AgaviAgavi是一款強大的,可擴展的PHP5應用框架,遵循MVC模式。它能夠讓開發人員編寫出整潔、可維護、可擴展的代碼。官方網站:http://www.agavi.org/2.FuelPHPFuel是一款簡單靈活、社區驅動的PHP5.3+框架。
  • 跟大家分享一下 目前最流行的移動Web前端UI框架
    在移動Web開發的過程中,使用合適的移動WEB UI框架可以大大提升我們的開發效率。下面就把目前最流行的移動Web前端UI框架分享給大家。(所有連結地址,請複製到瀏覽器打開。)Amaze UIAmaze UI是一個輕量級(所有CSS和JS gzip後100kB左右)、Mobile first的前端框架, 基於開源社區流行前端框架編寫。
  • Python 最好用的web框架
    速度為先當下,python都已經更新到了 Python3.9.3 了,如果你還沒有使用過 asyncio、和 Python3.5 新增的 async/await 語法,那說明你可能真的是桃花源人,問今是何世,不知有漢,無論魏晉了。在當下,基於 async/await 語法的異步 Web 框架也有很多,在 github 上找一找比比皆是是,那究竟應該選哪一款呢?
  • 【知識庫】不懂你就OUT了!11款常見的Web應用程式框架
    」和「慣例優於設置」,是一款更符合實際需要而且更加高效的Web開發框架。,支持jade等多種模板,是Node.js上最流行的Web開發框架。提供一系列強大特性幫助你創建各種Web應用。Express不對Node.js已有的特性進行二次抽象,只是在Node.js基礎上擴展了Web應用所需的功能。
  • Python Web 框架介紹
    ,用來幫助你更輕鬆的創建web應用。經過初期的不起眼,Python已經成為網際網路最流行的服務端程式語言之一。根據W3Techs的統計,它被用於很多的大流量的站點,超過了ColdFusion, PHP, 和ASP.NET。其中超過98%的站點運行的是Python 2.0,只有1%多一點的站點運行3.0。框架讓開發更輕鬆今天,有著大量的Python框架,它們可以讓web應用的開發更輕鬆。
  • Node.js主流Web框架對比
    我們將在這篇文章向大家介紹幾款主流Node.js Web框架的特點及優缺點,希望給大家作為參考。主要參考的Node.js Web框架包括:express, koa, hapi, restify, fastify, eggjs, thinkjs, Sails, Adonisjs, NestJS。Benchmarks
  • 什麼是 Web 框架?
    進來我發現,很多想學習諸如 Flask 或者 Django 等 web 框架的開發者,並不很了解 web 框架是什麼,它們的作用和工作原理。這篇文章,我將會講一下這個通常會被忽略的話題。希望讀完這篇文章,你能比較深刻地理解 web 框架到底是什麼,還有為什麼會有 web 框架。這些知識將有利於你學習新的 web 框架,而且在選擇 web 框架的時候有法可依。
  • Web App與框架簡介
    伺服器的TCP連結 向web伺服器發送http報文,請求伺服器裡資源文檔 web伺服器收到http請求報文,發出http響應報文如果請求HTML文檔,web伺服器會將對應目錄下的HTML文檔打開,然後將文檔的相應內容發送出去 如果請求是PHP文件,web伺服器自身是不能夠處理PHP動態語言腳本文件的,就會尋找並委託PHP應用伺服器,然後將HTML靜態代碼發送給
  • 25款世界級的PHP框架,你喜歡哪一款? | 扣釘·乾貨
    在PHP開發中,選擇合適的框架有助於加快軟體開發,節約寶貴的項目時間,讓開發者專注於功能的實現上。由於流行的框架經過了大量項目的檢驗,所以使用框架還有助於創建更加穩定和安全的應用程式。本文搜集了目前全球最流行的25款PHP框架,歡迎大家交流學習。  1、Laravel
  • Python Web框架
    如果你的系統是Linux或者OS X,那你已經有 apache 了。如果是 Windows,你需要安裝apache(http://httpd.apache.org/docs/current/platform/windows.html)。2.