1. 程式人生 > >ThinkJS 3 正式版釋出,對上一版本進行全面優化

ThinkJS 3 正式版釋出,對上一版本進行全面優化

ThinkJS 是一款Node.js Web 框架,致力於整合專案最佳實踐,規範專案讓企業級團隊開發變得更加簡單,更加高效。Github 地址是:https://github.com/thinkjs/thinkjs

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

npm install -g think-cli

有哪些更新?

為了解決之前遺留的不足問題,ThinkJS推出了新版本,下圖為新版的架構圖。

圖片描述

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

基於 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 模組用來跟蹤錯誤問題,能夠更加友好的捕捉顯示錯誤堆疊資訊。

圖片描述

還有!

除了剛才說的一些功能,還有一些其它的更新:

歡迎加入“CSDN前端開發者”群,與更多專家、技術同行進行熱點、難點技術交流。請掃描以下二維碼申請入群。
圖片描述