2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 2015-04-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-04-22 08:253583
用户头像

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

关注

评论

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

融云CEO韩迎:飞信十年珍贵历练,做To B别有取巧的心思

融云 RongCloud

IM RTC 飞信

政府区块链招投标市场活跃 “区块链+警务”等多元化领域成​方向

CECBC

《经济学人》2021年3月6日刊精彩文章导读及资源下载

wbliu85

麻木得那么快应不应该——韦伯-费希纳定律

Justin

心理学 28天写作 游戏设计

mysql常用命令

Sakura

JAVA学习心得

张鹤羽

28天写作 3月日更

表达的时代

ES_her0

28天写作 3月日更

什么是开放艺术?探讨融合区块链技术的新艺术范式

CECBC

进程和nginx

一个大红包

28天写作 3月日更

LeetCode题解:309. 最佳买卖股票时机含冷冻期,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

写作对我来说是什么?

lenka

产品经理 写作 3月日更

需要对未知保持敬畏「Day 14」

道伟

VMware Workstation

梅花鹿鹿

虚拟机

单点登录(SSO)

一个大红包

SSO 28天写作 单点登录 3月日更

四、查询

Kylin

读书笔记 数据库开发 分布式数据库mongodb 读书总结 3月日更

(28DW-S8-Day14) 数据孤岛

mtfelix

28天写作 数据孤岛

进程调度算法

鲁米

算法

女神节|深情告白季,程序员和他的浪漫

InfoQ写作社区官方

热门活动

程序员成长第二十篇:刚晋升管理者,有哪些方面要注意?

石云升

程序员 28天写作 职场经验 管理经验 3月日更

用户画像实践

Jackchang234987

【回溯算法】组合总和升级版 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构和算法

震撼来袭!2021版全新版Java面试笔记现世,简直把所有Java知识面试题写出来了

Java 架构 面试

2021最新分享面试跳槽宝典:互联网大厂Java高级工程师核心面试498题(附解析)

比伯

Java 编程 程序员 架构 面试

Wireshark数据包分析学习笔记Day2

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

容器 & 服务:K8s 与 Docker 应用集群 (二)

程序员架构进阶

Docker 持续集成 kubernete 服务化 3月日更

搜狐三面:说说你是怎么解决MySQL死锁问题的!

Java架构师迁哥

翻译:《实用的Python编程》03_06_Design_discussion

codists

Python

2021最新腾讯面经分享:Java面试刷题PDF(17个专题 5000字解析)

比伯

Java 编程 程序员 架构 面试

方法论分享之:刻意练习,微小改进

boshi

方法论 经验分享 七日更

OSPF路由协议基本知识点大全

在一个操蛋(执行力极差)的团队工作是一种怎样的体验?

冰河

团队管理 程序人生 执行力 问题总结 团队成长

T3:为创建大型JavaScript应用而打造的开源前端库_JavaScript_李小兵_InfoQ精选文章