2018年度最流行的七個網站開發框架
【51CTO.com快譯】如今,面對各種各樣的網站開發框架,您難免會產生“選擇恐懼症”。本文將從客戶和開發人員的角度出發,幫助您為Web應用的構建做出明智的框架選擇。
讓我們首先來對如下問題進行考量:
- 您需要選擇那些能夠支援快速應用開發的框架嗎?
- 您選擇架構的真正目的是什麼?
- 它是否能夠支援您的特定專案、及所需的各種特性?
- 它是否擁有一個龐大的支援社群?
通過上述一系列的問題,您應該對自己的需求有了一個清晰的瞭解。下面,我們準備了本年度最流行的七個網站開發框架,供您進一步參考與選擇。
1.Angular
Angular是一種適用於前端開發的、且開源的JavaScript框架。大多數動態網站應用都會使用該框架來構建。
基於“模型 - 檢視 - 控制器”的Angular架構,有著固定的組織結構,因此它非常適用於那些具有單頁面的應用程式。
該框架包含了開發者需要掌握的各種控制器、指令集和其他元件。因此,其學習曲線較為“陡峭”。
另外,由於Angular支援資料的雙向繫結,因此它非常“勝任”建立那些實時的應用程式。那麼,什麼是雙向繫結呢?
在模型中,所有對於資料的修改,都能反映到其相關的檢視中;同時使用者對於檢視的所有修改,也能體現在模型裡。換句話說,只要應用程式中的資料發生變化,其UI就會跟著改變。
當然,雙向繫結也會使得Angular的應用程式反應較慢。因為對於每一種繫結,Angular都會建立一個觀察器,以跟蹤DOM裡的各種變化。一旦檢視被修改,Angular就會將新舊數值進行比較。因此,如果應用程式存在太多的觀察器的話,其效能勢必會大打折扣。
由於該框架能受益於龐大的支援社群,因此,大多數有關單頁面應用所碰到的問題,都能在其社群裡得到處理和解決。
根據BuiltWith(譯者注:它提供線上網站SEO查詢工具)提供的統計資料,如今有281652個網站正在使用Angular框架。
2. Django
2005年釋出的Django是一款用Python編寫的框架。許多開發人員都喜歡Python的語法,因為它乾淨,且沒有雜亂的語言符號。
按照TIOBE程式設計社群的統計,Python是排名第四的程式語言;而在GitHub上,它更是高居第二名。
憑藉著這樣的語言特性,Django的學習曲線較為“平緩”,且廣受開發者們的歡迎。Django同樣遵循“模型 - 檢視 - 模板(MVT)”的架構。一般情況下,各種複雜的、以及由資料所驅動的網站,都會採用這種框架來進行構建。例如:Instagram、Disqus(譯者注:一家提供評論託管服務的第三方社會化系統)、以及NASA等知名公司的網站都源自Django架構。
秉承著“不要重複造輪子”的基本原則,Django能夠方便元件的重用,因此它常被用來進行快速的網站開發。
當需要管理使用者帳戶和密碼時,該框架能夠提供卓越的安全性措施。它在Web應用程式開發的過程中,具有一定的“防水”性,能夠抵禦諸如SQL%E6%B3%A8%E5%85%A5/">SQL注入、跨站點指令碼、和點選劫持(clickjacking)等,針對系統漏洞的攻擊。
由於Django不具備建立API的內在機制,因此Django需要通過複雜的程式碼,才能實現路由的相關程序。而這對於一名初學者來說,可能較為困難。
Django的另一個重要方面是它有著廣闊的社群,那裡聚集著超過1500名貢獻者。他們為Django建立了一套資源庫,並配備有大量可供開發人員參考的教程。
根據BuiltWith提供的統計資料,如今有12790個網站正在使用Django框架。
3. Laravel
Laravel是由多位網站開發人員經歷了多年打磨的一款開源的PHP框架。
按照TIOBE程式設計社群的統計,PHP是排名第七的流行程式語言;而在GitHub上,它排名第五名。可見,Laravel同樣具有一定的普及程度。
該框架仍然遵循“模型 - 檢視 - 控制器(MVC)”的架構。許多社交網路、新聞網站、以及內容管理系統都是使用該框架進行構建的。
我們從技術上看看Laravel備受歡迎的原因:
它是一款能夠增強PHP開發,並適用於資料庫遷移、物件關係對映(Object Relational Mapping,ORM)編寫、以及模板編制的直觀框架。它不但能夠簡化身份驗證與快取程序,還支援一種建立API的內建機制,以簡化路由。
相比較於Django而言,Laravel的學習曲線略為“陡峭”,使用者需要花一些時間去掌握它。
Laravel使用的主要安全措施是“雜湊密碼”。它能夠確保使用者密碼不會以簡單文字的形式顯示出來,而是被隱藏成為其背後的雜湊值。該框架能夠對使用者網站中潛在的漏洞予以加固,進而抵禦跨站指令碼、SQL注入、以及可疑cookies等攻擊。
Laravel在資源庫方面完全可與Django媲美。它擁有大約1100個可供開發人員參考的視訊教程。
而在支援社群方面,目前Laravel比Django少400多名貢獻者,不過Laravel的社群規模也正在迎頭趕上。
根據BuiltWith提供的統計資料,如今有524474個網站正在使用Laravel框架。
4. Ruby on Rails
Ruby on Rails,或簡稱為Rails,是使用Ruby編寫的伺服器端框架。該框架通過支援程式碼的重用、以及靈活地適應各種變更,實現了快速應用開發(Rapid Application Development,RAD)。
廣闊的開發社群奠定了Rails的開源特性。Rails通過採用規則約定(conventions)的方式進行配置,從而顯著地提升了開發的程序。換句話說:開發人員可以使用各種規則約定,而非那些專門的配置檔案。
此外,Rails支援RESTful風格的架構,確保了應用程式能夠圍繞著某個邏輯結構進行構建。這對於分散式系統的魯棒性是至關重要的。
Rails社群推崇敏捷的開發模式,即:通過各種迭代的採用和程序的靈活性,以方便專案的管理。
Rails的另一個亮點在於:由於它使用了Ruby程式碼,這種“自文件化(self-documenting)”的語言,因此我們沒有必要額外去產生單獨的文件。這勢必提高了開發人員的工作效率。
對於Rails應用來說,我們唯一需要考慮的是它們的速度問題,因為它們執行速度並沒有基於Java的應用程式那麼快。不過儘管如此,許多大型機構,包括:Airbnb、Yellow Pages、Groupon等,依然選用了Rails。
根據BuiltWith提供的統計資料,如今有826824個網站正在使用Ruby on Rails。
5. Symfony
Symfony是一個具有豐富功能的PHP框架。它在開發者社群廣受歡迎的原因來自其各種包(bundles)與元件(components)。
我們先來看看它的包。顧名思義,通過一組檔案集合(包括:PHP檔案、樣式表、JavaScript檔案),它實現了諸如:部落格頁面、購物車等功能。由於開發人員可以對不同的包進行重新配置、或重新運用到不同應用之中,因此它大幅降低了研發的整體成本。
另一方面,元件可以根據一些共同特徵來簡化各種日常的任務,從而使得開發人員能夠更加專注於那些特定的業務功能。因此,開發人員既可以單獨地使用元件,也能夠在不影響其結構的前提下予以定製。同時,他們還能夠在其他PHP框架(如上面提到的Laravel)中使用到這些元件。
Symfony的另一個亮點是它的文件化。那些符合PHP框架的文件不但非常清晰、結構嚴謹,而且配有各種示例。也就是說,這些文件能夠在闡明每一種元件的同時,為開發過程提供詳盡的註釋。同時,這些文件也能夠經常被保持更新。
同樣,Symfony有著較為成功的大型社群支援。它在GitHub上擁有1400名貢獻者,這個數字比其他的PHP框架都高出許多。
然而,相對於其他的PHP框架而言,Symfony的模組化比較慢。因此,對於一些較重的、且實時的應用程式,您可能需要採用其他的框架。
根據BuiltWith提供的統計資料,如今有9565個網站正在使用Symfony。
6.Yii
Yii仍然是一款基於“模型 - 檢視 - 控制器”的框架,而且非常適合於快速應用開發(RAD)。
該框架利用程式碼的scaffolding(即:預先定義好程式碼的模板),使得程式碼的編寫效率更高。
由於Yii並不遵循像Symfony那樣“基於配置的規則約定(convention over configuration)”的原則,因此它比Symfony更為寬鬆。這無疑給有經驗的程式設計師帶來了更大的自由度。相反,初學者則會由於缺少必要的先導,而降低了程式設計效率。
此外,雖然Yii的元件比Symfony少,但是,Yii可以使用到Symfony的大多陣列件。
在效能方面,Yii每秒能夠處理410個請求的效率,顯然超過了Symfony的每秒131個請求。可見,那些在同一時間擁有成千上萬個使用者線上訪問的社交網站,更適合用Yii來搭建。
同樣,Yii在GitHub上有超過700名貢獻者,可見其支援社群也算比較龐大的。
根據BuiltWith提供的統計資料,如今有70022個網站正在使用Yii框架。
7. MeteorJS
Meteor是一款全棧式的,適合於構建單頁面應用的JavaScript框架。該開源框架在本質上是同構的,也就是說,JavaScript可以同時執行在伺服器端和客戶端。
由於開發人員可以只使用JavaScript來同時管理前端、後端、以及資料庫,因此它既簡化了流程,又加快了網站的開發程序。
另外,開發人員可以將它與Node.js協同工作,為各種平臺建立不同的實時應用。
通過Meteor原生的模組化,開發人員能夠混合搭配使用各種元件,以自由地構建他們的專案。雖然該框架有著一定的規則約定,但是開發者們也有著一定的空間,他們可以根據自己的個人偏好進行網站的搭建。
Meteor的社群支援資源非常豐富。有一個類似Reddit(是一個社交新聞站點)的網站--Crater,它會持續跟蹤世界上所有關於Meteor的最新動態。Evented Mind則是另外一個包含了Meteor各種培訓視訊的網站。
根據BuiltWith提供的統計資料,如今有12413個網站正在使用MeteorJS。
原文標題:7 Popular Website Development Frameworks of 2018,作者:Dipanshu Upadhyay
【51CTO譯稿,合作站點轉載請註明原文譯者和出處為51CTO.com】
【責任編輯:龐桂玉 TEL:(010)68476606】