ThinkJS 3 正式版釋出!

athon發表於2017-09-04

ThinkJS 是一款擁抱未來的 Node.js Web 框架,致力於整合專案最佳實踐,規範專案讓企業級團隊開發變得更加簡單,更加高效。我們的 Github 地址是:github.com/thinkjs/thi… 歡迎大家 star~

ThinkJS 2.x 釋出的時候,雖然我們帶來了很多非常棒的功能,但我們也意識到本身的不足。針對這些問題,開發團隊經過幾個月的緊張開發,我們很高興的宣佈,ThinkJS 迎來了新的大版本 3.0。目前該版本已經線上上多個專案中使用,簡單一個命令就可以讓你下載使用它:

npm install -g think-cli複製程式碼

有哪些更新?

正如之前所說,為了解決之前遺留的不足問題我們開發了新版本,下圖為我們新版的架構圖。

除了引進了新的架構,對框架進行高度解構外,我們還增加了很多新的功能,優化了老版為人詬病的用法,下面就讓我們來具體看看有哪些更新吧。

基於 Koa 重構框架架構

相較於之前使用自身整合架構,3.0 最大的改變就是將底層架構基於 Koa 重構。重構之後的 ThinkJS 3.0 版本能完全相容 Koa 的中介軟體。使用 Koa 重構主要有下面幾個原因:

  • Koa 現在已經比較穩定,洋蔥模型的中介軟體更能滿足多維度的需求,同時中介軟體生態已經慢慢成熟。這些都是 ThinkJS 之前所不具備的,基於 Koa 後就可以站在巨人的肩膀上,可以做的更好。

  • Koa 2.0 中使用更優雅的 async/await 解決非同步問題,這個理念和 ThinkJS 是完全一致的。藉助 Babel 在 ThinkJS 2.x 版本中就可以使用這些 ES next 語法功能。隨著 Node 8.x LTS 的即將釋出, async/await 被原生支援後我們就可以不用藉助 Babel 轉譯直接在生產環境中使用了。

精簡核心,支援擴充套件和介面卡

ThinkJS 2.x 版本內建了很多功能,這些功能基本上是很多專案的最佳實踐,但並不一是每個專案都需要這些所有的功能,但基於 2.x 的架構要實現這個需求就非常困難。所以 ThinkJS 3.0 版本基於 Koa 重構後在這塊做了精簡,不再提供豐富的功能,而是提供一個最基本的核心,然後通過擴充套件滿足更多的需求。

多程式模型

ThinkJS 2.x 單程式是可選配置,且框架設計較為簡單,很多功能需要開發者手動處理。我們在 3.0 中開發了 think-cluster 模組直接內建了多程式模型,最大限度的利用多核 CPU 提高響應速度。 同時,提供一套程式之間通訊的方式,如::通知其他程式執行某個任務,程式碼線上更新後重啟所有的子程式。

智慧的錯誤提示

Node.js 開發中一個比較頭疼的問題就是錯誤處理問題,遇到問題後查錯和定位問題後比較麻煩,尤其是使用了 Babel 轉譯之後,為此我們專門開發了 think-trace 模組用來跟蹤錯誤問題,能夠更加友好的捕捉顯示錯誤堆疊資訊。

還有!

除了剛才說的一些功能,我們還有一些其它的更新要告訴大家:

感謝

最後感謝所有使用 ThinkJS 框架的使用者,感謝你們多年來的支援,是你們的存在讓我們有了更進一步的勇氣。當然還需要感謝所有為 ThinkJS 專案做過貢獻的貢獻者,包括程式碼貢獻和文件貢獻,你們的努力讓 ThinkJS 變的越來越棒!如果沒時間幫助貢獻程式碼想用其它方式支援我們也可以通過捐贈的方式支援我們,你們的捐贈會用來幫助 ThinkJS 推廣。感謝你們所有人,讓我們一起擁抱 ThinkJS,期待更美好的未來吧!

相關文章