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