写点什么

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

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

关注

评论

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

大咖说·对话生态|当Confluent遇见云:实时流动的数据更有价值

大咖说

数字化转型 Confluent 大数据应用

vivo手机上的系统级消息推送平台的架构设计实践

JackJiang

网络编程 架构设计 消息推送 即时通讯 即时通讯IM

从函数计算到 Serverless 架构

hum建应用专家

云计算 Serverless

看得见风和日丽,看不见风起“云”涌

天翼云开发者社区

云计算 大数据

开源星「001 号」落地 FlyFish,欢迎登陆赢神秘大礼包!

云智慧AIOps社区

大前端 低代码 开源项目 数据可视化 大屏可视化

太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)

冉然学Java

Java MySQL 编程 架构 微服务

6大论坛,30+技术干货议题,2022首届阿里巴巴开源开放周来了!

阿里技术

数据库 云计算 大数据 #开源

防汛添利器,数字技术筑起抗洪“大堤”

天翼云开发者社区

云计算 大数据

暴雨天,看天翼云如何“快准稳”防涝

天翼云开发者社区

云计算 大数据 云平台

玩转云端 | 天翼云电脑的百变玩法

天翼云开发者社区

云平台 云电脑

Github爆火!程序员疯抢的Java面试宝典(PDF版)限时开源

Java工程师

Java 面试 大厂

【超级账本开发者系列】专访——肖慧 : 不忘初心,方得始终

旺链科技

区块链 技术 超级账本

SpringBatch入门

五毛

sping ETL

开源一夏 | 使用 HTML、CSS 和 JS 制作一个中国象棋

海拥(haiyong.site)

开源 前端 8月月更

现在,怎么挑选舞台租赁LED显示屏?

Dylan

LED LED显示屏

Dapp系统开发及智能合约部署技术

薇電13242772558

智能合约 dapp

深入理解Linux I/O系统

C++后台开发

性能优化 Linux内核 网络io C/C++后台开发 C/C++开发

走得通,看得见!你的交通“好帮手”

天翼云开发者社区

云计算 大数据 AI

架构实战营第九模块作业-毕业项目

Geek_53787a

视频聊天源码——一对一直播如何提高直播质量?

开源直播系统源码

软件开发 直播系统源码 开源源码 语音聊天 视频聊天源码

真香现场!全网首发Spring5秘籍手册+架构导图,我爱了.

冉然学Java

Spring5 技术栈 笔记 java 日志 构架

6大论坛,30+技术干货议题,2022首届阿里巴巴开源开放周来了!

阿里云数据库开源

阿里巴巴 开源 开源数据库 阿里巴巴开源开放周 阿里技术

Python零基础入门的第一天——开发环境的搭建

北极的三哈

学习 后端 开发语言 Python.

为什么我要迁移 SpringBoot 到函数计算

阿里巴巴云原生

阿里云 云原生 springboot 函数计算

Python语言基本语法元素

北极的三哈

Python 学习 开发语言

MySQL 原理与优化:Limit 查询优化

老崔说架构

九章云极DataCanvas APS机器学习平台获得中国信通院“领先级”评级

九章云极DataCanvas

人工智能 机器学习 大数据 数据分析 数据智能

新思科技推动产业革新 为智能网联车系好“安全带”

InfoQ_434670063458

软件 车联网 新思科技

.NET现代应用的产品设计 - DDD实践

MASA技术团队

.net DDD 实战 MASA Framewrok

2022年中国第三方证券APP创新专题分析

易观分析

App 金融 证券

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