产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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:253069
用户头像

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

关注

评论

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

成都算筹科技有限公司

科技热闻

对接HiveMetaStore,拥抱开源大数据

华为云开发者联盟

大数据 华为云 华为云开发者联盟 华为云GaussDB(DWS) 企业号2024年4月PK榜

西安站开营!AI 编码助手通义灵码帮大学生“整活儿”

阿里云云效

阿里云 云原生 通义灵码

西安站开营!AI 编码助手通义灵码帮大学生“整活儿”

阿里巴巴云原生

阿里云 云原生 通义灵码

离开工位老是忘记锁屏?试着让电脑自动完成这事吧!

京东科技开发者

流水线运行出错排查难?AI 来帮你

阿里云云效

阿里云 云原生 云效

孙中亮:北斗三十周年,看北斗芯片高质量发展历程和方向

江湖老铁

Memecoin再迎爆发:是本轮牛市大反弹的开始吗?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

5月10-11日·大连线下·CSM认证【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum捷行

CSM CSM认证 cst 线下授课

信创产业发展,与开发者技术相关的有哪些

Geek_2305a8

GaussDB SQL查询语句执行过程解析

华为云开发者联盟

数据库 华为云 华为云GaussDB 华为云开发者联盟 企业号2024年4月PK榜

风险防不胜防?看YashanDB如何守护你的数据库安全(上篇)

YashanDB

指标+AI:迈向智能化,让指标应用更高效

袋鼠云数栈

指标 指标管理 指标平台 指标开发 指标+ai

HCDG北京站精彩回顾 | 鸿蒙千帆起,开启万物互联新纪元

华为云开发者联盟

鸿蒙 物联网 华为云 华为云开发者联盟 企业号2024年4月PK榜

加密世界:NFT、DeFi和游戏的热点新闻概览

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

选择合适的监控观测平台,为业务出海合规建设减负

观测云

监控 出海

高可用 - 隔离原则

京东科技开发者

IAM打通数字世界身份信息通道

芯盾时代

网络安全 iam 统一身份管理平台 最小权限管理

软件测试学习笔记丨Selenium执行JavaScript脚本

测试人

JavaScript 软件测试 自动化测试 测试开发

流水线运行出错排查难?AI 来帮你

阿里巴巴云原生

阿里云 云原生 云效

京东广告研发 —— 京东推荐广告排序机制演化

京东科技开发者

5G chip showdown: QCN6274 vs QCN6224, who is the real 5G king?

wifi6-yiyi

5G wifi iiot

拥抱AI技术:5月18-19日 全球金牌CSM认证课程 · Jim老师引导讨论AI & Agility话题

ShineScrum捷行

全国独家线下面授 | 杭州·大规模敏捷LeSS认证6月13-15日开班

ShineScrum捷行

less 大规模敏捷LeSS 吕毅老师

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