InfoQ 编辑部出品——2021年度技术盘点与展望 了解详情
写点什么

T3:为创建大型 JavaScript 应用而打造的开源前端库

  • 2015 年 4 月 22 日
  • 本文字数:979 字

    阅读完需:约 3 分钟

T3 是一个为创建大型 JavaScript 应用而打造的前端库,它由前 Yahoo! 首席前端工程师和 YUI 代码贡献者 Nicholas C. Zakas 加入安全内容平台 Box 后与团队成员一起创建,并基于 Apache License 2.0 许可协议开源。T3 的设计完全遵循可扩展JavaScript 应用体系结构相关原则,尤其是组件间强调松耦合、依赖透明化、为不明确的需求留有扩展点以备扩展、抽象出共同点等原则。T3 的创建目的是鼓励开发者编写一些小且用途单一的组件,继而创建出扩展性比较强的客户端代码。T3 依赖jQuery 1.8 或更高版本, 目前支持的浏览器包括Internet Explorer 8 及以上和最新版本的Firefox、Chrome 、Safari。

与MVC 框架大不同,T3 允许开发者决定自己所创建的组件类型,且这些组件具有松耦合、少模型的特征。T3 又可以同其它框架如 Backbone 或者 React 配合使用,以使得开发者根据自己的需要组成一个完成的客户端开发栈。组件类型分为以下三种:

  • 服务(Service):为应用提供额外工具的库,例如 Cookie 工具、URL 转码和解码、弹出菜单等;
  • 模块(Module):模块可以使用服务来完成任务,但模块不能直接引用其他模块;
  • 行为(Behavior):混合模块,旨在允许连接由多个模块共享的事件,如拦截链接点击来执行 Ajax 导航事件。行为可以使用服务来完成任务,但是不能直接引用模块或其他行为。

Nicholas 指出他们所创建的组件都符合以上三种类型,并且开发者混合使用这些类型足以创建出许多不同类型的用户体验。组件间以及同其他框架间的通信示意图如下:

在经过数月的使用后,T3 已经获得了如下成就:

  • T3 组件代码测试覆盖率为 80%,其组件非常易于测试,开发者可以根据需要进行各种测试;
  • 能够根据反馈以更快的速度实现新特性
  • 消除了“what goes where”问题,所以当需要做一个改变时,开发者很容易知道在哪实现;
  • 逐步改造和测试页面部分,自从 T3 可以与其他框架一起工作后,创建和转换组件变得很容易,而不用停止重新编写整个客户端。

在 Box,T3 已经有了 18 个月的使用历史,且今年 Box 的所有 Web 应用已经完全改造为由 T3 实现。更多有关 T3 的信息,请开发者参考 GitHub 其官网


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015 年 4 月 22 日 08:252611
用户头像

发布了 46 篇内容, 共 48.0 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

数据服务基础能力之元数据管理

知了一笑

数据分析 数据 元数据 数据管理 业务数据

四、StringRedisTemplate 和RedisTemlate有什么不同

Java 程序员 后端

可以回答一下:Redis和mysql数据是怎么保持数据一致的嘛?(1)

Java 程序员 后端

图像处理网站

Java 程序员 后端

双非本科毕业的我,为何能在金九银十期间斩获京东、字节、快手的offer

Java 程序员 后端

Apache Pulsar 在 BIGO 的性能调优实战(下)

Apache Pulsar

分布式 中间件 BIGO Apache Pulsar 消息系统 Apache BookKeeper

哪有什么中年危机,不过是把定目标当成了有计划

Java 程序员 后端

基于 ElasticSearch 实现站内全文搜索(1)

Java 程序员 后端

可以回答一下:Redis和mysql数据是怎么保持数据一致的嘛?

Java 程序员 后端

吐血总结——90%程序员面试都用得上的索引优化手册

Java 程序员 后端

工作五年之后,对技术和业务的思考

知了一笑

程序员 技术 职场 互联网人 业务

推荐你一个正则表达式网站

卢卡多多

正则表达式 11月日更

企业数字化转型的起手式是什么?

百度大脑

人工智能 百度

吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?

Java 程序员 后端

【Redis源码分析专题】(1)从本质分析你写入Redis中的数据为什么不见了?

浩宇天尚

redis Redis 核心技术与实战 11月日更 缓存驱逐

同事问我如何Java实现,搞定分析栈和队列数据结构的实现过程不就好了

Java 程序员 后端

国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer

Java 程序员 后端

基于 ElasticSearch 实现站内全文搜索

Java 程序员 后端

基于iscsi存储的kvm动态迁移(V2V)

Java 程序员 后端

发量能决定一个程序员的水平吗

Java 程序员 后端

【高并发】SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)

冰河

Java 并发编程 多线程 高并发 异步编程

同一个Spring-AOP的坑,我一天踩了两次,深坑啊

Java 程序员 后端

同程内网流传的分布式凤凰缓存系统手册,竟遭GitHub强行开源下载

Java 程序员 后端

听我讲完GET、POST原理,面试官给我倒了杯卡布奇诺

Java 程序员 后端

万文讲解知乎实时数仓架构演进

大数据老哥

同一份数据,Redis为什么要存两次

Java 程序员 后端

哭了,我居然回答不出来女同事的问题:索引为什么能提供查询性能---

Java 程序员 后端

因为一次 Kafka 宕机,我明白了 Kafka 高可用原理!

Java 程序员 后端

史上最全Java面试266题:算法+缓存+TCP+JVM

Java 程序员 后端

网络安全漏洞复现与分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

喝了杯咖啡,我突然对MySQL锁、事务、MVCC-有了新的认识!

Java 程序员 后端

T3:为创建大型JavaScript应用而打造的开源前端库-InfoQ