写点什么

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

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

关注

评论

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

NFTScan | 05.20~05.26 NFT 市场热点汇总

NFT Research

NFT NFTScan

使用 Spring Cloud Alibaba AI 构建 RAG 应用

阿里巴巴云原生

阿里云 云原生

全方位质量保障!龙蜥在内核、软件包、容器镜像、三方模块的 CI 工程实践

OpenAnolis小助手

ci 质量保证 龙蜥社区

龙蜥开发者说:夏日编码奇遇,中国科学院大学学子的开源世界探索记 | 第 27 期

OpenAnolis小助手

龙蜥开发者说

桌面云服务器是什么?有哪些操作系统

青椒云云电脑

桌面云 桌面云服务器

满帮集团 Eureka 和 ZooKeeper 的上云实践

阿里巴巴云原生

阿里云 微服务 云原生

第53期|GPTSecurity周报

云起无垠

#人工智能 LLM模型

今天!通义灵码在北京、成都、杭州三城开讲啦

阿里云云效

阿里云 云原生 通义灵码

Vue.js条件渲染与列表渲染指南 _

不在线第一只蜗牛

vue.js 前端

XSKY CTO 在英特尔存储技术峰会的演讲:LLM 存储,架构至关重要

XSKY星辰天合

分布式存储 大语言模型 XSKY 星辰天合 高带宽存储

# 使用RAG-GPT集成智谱AI、DeepSeek快速搭建OpenAI Cookbook智能客服

Geek_1ef48b

安全厂商第一站!OASA 走进绿盟科技圆满结束

OpenAnolis小助手

龙蜥社区 龙蜥社区安全联盟

检测 CSS 中的 JavaScript 支持

伤感汤姆布利柏

QAnything 1.4.1 中的文档解析

有道技术团队

rag 知识库问答

OpenHarmony开发者大会2024致谢项目群捐赠人,多家单位参与现场授牌

极客天地

精彩回顾!AI赋能下的自动化攻防分享

云起无垠

小白入门必备!计算机科学教程的Python精要参考PDF开放下载!

我再BUG界嘎嘎乱杀

Python 后端 入门 零基础

报名倒计时!「飞天技术沙龙-CentOS 迁移替换专场」参会指南

OpenAnolis小助手

操作系统 CentOS 停服 CentOS 迁移最佳选择 CentOS迁移

半导体存储品牌企业江波龙加入龙蜥社区,完成与 Anolis OS 适配

OpenAnolis小助手

龙蜥社区 龙蜥社区生态伙伴 江波龙

兼职福音!API信息录入员火热招募中

幂简集成

API 兼职 招募

云电脑对硬件配置有没有要求?

青椒云云电脑

云电脑 云电脑平台

Python 遍历字典的这6种方法,你都掌握了吗

我再BUG界嘎嘎乱杀

Python 后端 字典

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