欢迎访问程序人生,本站为你提供各类IT资讯与开发中各类问题的解决方案!
 找回密码
 立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
码途山海.智隐长卷 IT资讯 查看内容

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

2015-4-17 08:44| 发布者: lzg| 查看: 533| 评论: 0|来自: CSDN

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

【编者按】原文作者Nicholas C. Zakas是前Yahoo!首页首席前端工程师和YUI代码贡献者,目前在Box公司任职。在这篇文章中,介绍了他们团队所创建的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

路过
路过
雷人
雷人
握手
握手
鲜花
鲜花
鸡蛋
鸡蛋

相关阅读

最新评论

相关分类

友情链接