写点什么

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

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

关注

评论

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

观测云产品更新 | 场景、管理、监控、AI 错误分析、AI 智能助手等

观测云

产品迭代

高并发场景下的Java性能优化

飞算JavaAI开发助手

IntelliJ IDEA 中安装和使用通义灵码 AI 编程助手教程

阿里巴巴云原生

IDEA

IntelliJ IDEA 中安装和使用通义灵码 AI 编程助手教程

阿里云云效

云计算 AI IDEA

深入研究:淘宝天猫图片搜索商品 API 接口详解

tbapi

淘宝图片搜索接口 淘宝拍立淘接口 淘宝图搜API

Web3 项目开发的技术难点

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

如何在Mac上查找、打开和检查活动监视器,教你轻松管理你的Mac任务进程

阿拉灯神丁

CleanMyMac 设计软件 mac系统维护 Mac任务管理器 系统优化软件

区块链智能合约的开发架构

北京木奇移动技术有限公司

区块链技术 智能合约开发 软件外包公司

为什么我需要AI助手辅助学习python

阿里云云效

Python

AI 重构 Java 遗留系统:从静态方法到 Spring Bean 注入的自动化升级

飞算JavaAI开发助手

复杂业务逻辑的AI生成代码调试技巧

飞算JavaAI开发助手

一文弄懂用Go实现MCP服务

王中阳Go

Go MCP

AI代码生成工具如何突破Java单元测试效能天花板?

飞算JavaAI开发助手

人工智能如何重塑软件测试开发?这几个方向将决定你的职业天花板

测试人

人工智能

【重磅来袭】DeepSeek-R1昇腾满血版入驻华为开发者空间!互动体验,瓜分福利!

华为云开发者联盟

昇腾 DeepSeek 华为开发者空间

为什么我需要AI助手辅助学习python

阿里巴巴云原生

Python

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

esxi

DPP推荐引擎架构升级演进之路|得物技术

得物技术

算法 Java Agent AB

Web3项目的技术架构

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

AI生成高并发Java代码实战:秒杀系统优化方案

飞算JavaAI开发助手

从片段到完整逻辑:AI生成Spring Boot微服务代码的深度对比

飞算JavaAI开发助手

TimechoDB v2.0.1/2.0.2 发布 | 支持时序表模型,表模型中新增嵌套查询、权限管理、UDF 等功能

Apache IoTDB

夏日炎炎,透明屏如何散热“冷静”?

Dylan

电子 LED display LED显示屏 夏令营 LED屏幕

Proxmox VE 8.4 发布 - 开源虚拟化管理平台

sysin

PVE

喜讯!白鲸开源入选智联联盟2024年度软件研发优秀案例

白鲸开源

白鲸开源

远程控制软件怎么选?简单分析四款国产远控软件长短

科技热闻

「DeepSeek-V3 技术解析」:多词元预测技术(Multi-Token Prediction, MTP)

Baihai IDP

AI LLMs DeepSeek MTP

如何使用AI辅助开发HTML5 - 通义灵码功能全解析

阿里云云效

html5 AI

vivo Trace 监控追求极致的建设历程

vivo互联网技术

Profile Skywalking Dynatrace Datadog profiling

大模型如何辅助软件测试与质量体系?

思码逸研发效能

软件测试 研发效能 软件质量 智能化测试 思码逸

如何使用AI辅助开发HTML5 - 通义灵码功能全解析

阿里巴巴云原生

html5

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