返回 登录
0

T3框架:简化大型JavaScript应用创建

阅读25087

【编者按】原文作者Nicholas C. Zakas是前Yahoo!首页首席前端工程师和YUI代码贡献者,目前在Box公司任职。在这篇文章中,介绍了他们团队所创建的JavaScript框架T3,使创建大型JavaScript应用更为容易,以下为译文。

http://img.my.csdn.net/uploads/201504/16/1429175150_4164.jpg

在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

极客头条正式开通了微信公众号,刊选每日精华内容和最新的资讯文章。在微信搜索“csdn_geek”或扫描下方的二维码。

http://img.my.csdn.net/uploads/201504/14/1428999730_5047.jpg

评论