写点什么

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

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

关注

评论

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

【Redis】数据结构

awen

redis 数据结构

妇与术(三):机器人可以没有性别,但关系技术离不开女性

脑极体

什么是数据集市

奔向架构师

数据仓库 数据架构 7月日更

React 18探秘(上)

Teobler

大前端 React

3分钟评估 你的运维监控系统是“救命稻草”还是“鸡肋”

鹿小U

运维自动化 监控系统 运维平台

网络攻防学习笔记 Day68

穿过生命散发芬芳

网络攻防 7月日更

5分钟速读之Rust权威指南(三十八)模板语法

wzx

rust

区块链时代下,企业如何打造数据要素的“新竞争力”?

CECBC

凭借这5步,我30分钟学会了Python爬虫!

Jackpop

爬虫 爬虫教程

聊聊事务与分布式系统-从零讲到通透

刘绍

sql 分布式 事务 2PC XA

模块七 - 王者荣耀商城异地多活架构设计

华仔架构训练营

公司内部使用的数仓命名规范

白程序员的自习室

大数据 数仓 数仓规范 7月日更

Python利器!Jupyter最大威胁终于来了

Jackpop

Python Jupyter Notebook

IntelliJ IDEA必备7款Python插件

Jackpop

IDEA pycharm

Flink进入大厂面试准备,收藏这一篇就够了

五分钟学大数据

flink 7月日更

为啥Java应用迁移到容器后会出现OOM?

Java架构师迁哥

CDH 的安装(四)

大数据技术指南

CDH 7月日更

北鲲云助力生命科学,高性能计算突破屏障

北鲲云

底层技术支撑智慧出行,汽车智能化发展下区块链大放异彩

CECBC

魔方、齿轮、融合剂:当新ICT技术邂逅教育产业

脑极体

Linux之find exec

入门小站

Linux

香帅:2021年财富格局新变化

石云升

读书笔记 7月日更

每天学习10个实用Javascript代码片段(三)

devpoint

JavaScript JSON格式化 7月日更

Clickhouse Projection 特性探索

GrowingIO技术专栏

数据库 大数据 数据分析 OLAP Clickhouse

百度搜索稳定性问题分析的故事(上)

百度开发者中心

百度搜索

多地“真金白银”力撑区块链,中西部欲弯道超车新赛道

CECBC

2020年的焦虑与忧伤

Emotion

疫情 考研 研究生

十二张图,一脚踹开消息队列的大门

三分恶

消息队列

领域驱动设计101 - 聚合

luojiahu

领域驱动设计 DDD

🏆 【JVM 性能调优】「对象内存分配」输出常用参数

洛神灬殇

JVM 7月日更

相约山城重庆!HarmonyOS Connect伙伴峰会将于7月16日举办

科技汇

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