W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
Egg.js 為企業(yè)級框架和應用而生,我們希望由 Egg.js 孕育出更多上層框架,幫助開發(fā)團隊和開發(fā)人員降低開發(fā)和維護成本。
注:Egg.js 縮寫為 Egg
我們深知企業(yè)級應用在追求規(guī)范和共建的同時,還需要考慮如何平衡不同團隊之間的差異,求同存異。所以我們沒有選擇社區(qū)常見框架的大集市模式(集成如數據庫、模板引擎、前端框架等功能),而是專注于提供 Web 開發(fā)的核心功能和一套靈活可擴展的插件機制。我們不會做出技術選型,因為固定的技術選型會使框架的擴展性變差,無法滿足各種定制需求。通過 Egg,團隊的架構師和技術負責人可以非常容易地基于自身的技術架構在 Egg 基礎上擴展出適合自身業(yè)務場景的框架。
Egg 的插件機制有很高的可擴展性,一個插件只做一件事(比如 Nunjucks 模板封裝成了 egg-view-nunjucks、MySQL 數據庫封裝成了 egg-mysql)。Egg 通過框架聚合這些插件,并根據自己的業(yè)務場景定制配置,這樣應用的開發(fā)成本就變得很低。
Egg 奉行『約定優(yōu)于配置』,按照一套統(tǒng)一的約定進行應用開發(fā),團隊內部采用這種方式可以減少開發(fā)人員的學習成本,開發(fā)人員不再是『釘子』,可以流動起來。沒有約定的團隊,溝通成本是非常高的,比如有人會按目錄分棧而其他人按目錄分功能,開發(fā)者認知不一致很容易犯錯。但約定不等于擴展性差,相反 Egg 有很高的擴展性,可以按照團隊的約定定制框架。使用 Loader 可以讓框架根據不同環(huán)境定義默認配置,還可以覆蓋 Egg 的默認約定。
Express 是 Node.js 社區(qū)廣泛使用的框架,簡單且擴展性強,非常適合做個人項目。但框架本身缺少約定,標準的 MVC 模型會有各種千奇百怪的寫法。Egg 按照約定進行開發(fā),奉行『約定優(yōu)于配置』,團隊協作成本低。
Sails 是和 Egg 一樣奉行『約定優(yōu)于配置』的框架,擴展性也非常好。但是相比 Egg,Sails 支持 Blueprint REST API、WaterLine 這樣可擴展的 ORM、前端集成、WebSocket 等,但這些功能都是由 Sails 提供的。而 Egg 不直接提供功能,只是集成各種功能插件,比如實現 egg-blueprint,egg-waterline 等這樣的插件,再使用 sails-egg 框架整合這些插件就可以替代 Sails 了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: