T3框架:簡化大型JavaScript應用創建

jopen 9年前發布 | 7K 次閱讀 JavaScript

原文作者Nicholas C. Zakas是前Yahoo!首頁首席前端工程師和YUI代碼貢獻者,目前在Box公司任職。在這篇文章中,介紹了他們團隊所創建的JavaScript框架T3,使創建大型JavaScript應用更為容易,以下為譯文。

T3框架:簡化大型JavaScript應用創建

在2013年我加入Box那會,Web應用前端是一個快速增長公司的典型狀態——由幾名工程師維護的代碼庫成長為數十名工程師維護的龐大代碼庫。這 意味著新的功能是建立在舊的之上,工程師們擔心修改代碼,因為沒有人確定這些修改會影響哪些功能。他們需要測試來幫助。然后由于代碼緊密耦合的本質讓測試 變得不可靠。

我的團隊(前端框架)著手于讓我們的JavaScript進入一個更好的狀態。

為了解決這些問題,我們創建了一個名為T3的JavaScript框架。T3為“take 3”的縮寫。與MVC框架不同,T3是建立在可伸縮JavaScript應用體系結構的概念之上來創建松耦合、少模型的系統,以此來創建大型JavaScript應用。我們的目標是鼓勵工程師去寫一些小的、用途單一的組件。我們認為這樣做會對開發的各個方面都產生積極的影響。

T3要求你決定自己所創建的組件類型,這樣一來所有的事情可以分為三類:

  1. 服務(Services):為應用提供額外工具的庫,例如cookie utility、URL encoder/decoder、popup menus
  2. 模塊(Modules):模塊可以使用服務來完成任務,但模塊不能直接引用其他模塊
  3. 行為(Behaviors):混合模塊,旨在允許連接由多個模塊共享的事件。例如,攔截鏈接點擊來執行Ajax導航。行為可以使用服務來完成任務,但是不能直接引用模塊或其他行為

我們發現,幾乎所有我們所構建的都符合這三類之一,混合和匹配它們的能力足以創建許多不同類型的用戶體驗,此外,這并不會妨礙我們使用 Backbone、React或其他框架添加到T3中,T3只是幫助個人更好的組織代碼,允許工程師根據他們所想拼出一個完成的客戶端堆棧。

在使用T3幾個月后,我們得到了這些結果:

  • T3組件代碼覆蓋率為80%,T3組件只是容易測試,工程師可以自己寫更多的測試
  • 一些團隊反饋能夠更快的實現新特性
  • 我們消除了“what goes where”問題,所以當需要做一個改變時,工程師會知道在哪實現
  • 我們逐步改造和測試頁面部分,自從T3可以與其他框架一起工作后,創建和轉換組件變得很容易,而不用停止重新編寫整個客戶端

今天,我們很樂意開源T3,這樣那些構建大型JavaScript應用的團隊就可以使用它,我們已經在過去的18個月里使用T3,并且在今年,我們的所有Web應用將完全轉換為T3,所以你可以確信T3是穩定和可靠的,更多的信息請參考我們的GitHub庫t3js.org

來自:http://geek.csdn.net/news/detail/30908

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!