node.js的Web開發框架的選擇?

node.js的Web開發框架的選擇?

這個問題貌似在其它的後端開發領域不存在。沒錯,我說的就是隔壁的Java。我要是寫java的應用,可以毫不猶豫的選擇Spring。但是node可選擇的餘地多的多。

現有node服務端框架

1. Express、Koa

express框架肯定不用說了,寫node服務這塊的同學肯定是非常熟悉的框架了。我早期的時候也是express的粉絲。

優點:

express的框架結構非常的簡單。經過短暫的學習就可以用來開發一個項目。非常適合作爲node新手的入門框架。

缺點:

開發階段:

Express的缺點也很明顯,由於結構簡單,自由度高。每個人會有不同的文件編排方式。前期設計階段需要人工的把項目約定做好。但是團隊來新人了,又要重新學習項目約定,無形中增加了學習成本。說到底還是缺乏項目的工程化約束。在項目的開發初期需要自己手工的搭建一些通用的腳手架代碼,來方便的之後的開發工作。開發流程會拖的比較長。

運維階段:

由於node單進程,js主線程運行的機制。如果在js主線程中沒有做好錯誤的處理。會導致進程意外退出的問題。這在項目運行階段是不可接受的問題。需要進程守護的機制來保證程序的健壯性。Express和Koa需要依賴第三方的工具來實現。如PM2。講道理這些功能應該是一個web開發框架應該具備的基礎功能。

總結:

不管是Express還是Koa框架。還是處於比較簡單的基於http模塊的封裝。在Reuest和Response這兩個對象基礎上進行擴展開發。我們業務開發團隊需要的是穩定、快速的開發框架。實際開發中往往需要在Express和Koa的基礎上封裝大量的代碼,來適應不同的業務場景,這對追求快速開發的互聯網行業是不受歡迎的。

2. Egg.js

我在2018年3月份開始接觸egg框架。發現這是一個具備較完善功能的web開發框架。

優點:

方便、好用、少寫很多的腳手架級別的代碼。專注於業務邏輯的開發。內建插件機制,兼容koa插件。約定大於配置。內置多進程管理。阿里巴巴開源。文檔是中文的。估計沒點自虐傾向的同學一般都會選擇母語版本的文檔來看吧。

缺點:

由於目前的使用層面還不夠深入。除了對應用配置方式的不太滿意外,沒有發現大的開發痛點。項目開發實踐下來,開發效率槓槓的。

總結:

估計寫到這裏,應該能看出我對egg框架的喜愛程度了。那麼下面學習一下egg入門。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章