NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Box 发布 T3 JavaScript 框架

  • 2015-04-28
  • 本文字数:1165 字

    阅读完需:约 4 分钟

在线存储与内容平台 Box 最近推出了一个开源的前端 JavaScript 框架,名为 T3 。这个框架的目标是通过将代码分解为小型的独立片段,从而解决在大型应用程序开发中所遇到的各种问题。

Box 的首席架构师 Nicholas Zakas在一篇介绍 T3 的博客帖子中说道,他的团队中有多个开发者共同在一个巨型的代码库中工作,因此最初开发这个框架的目的是解决开发过程中的一些内部问题。在 InfoQ 与 Zakas 进行的一次访谈中,他表示:“现有的任何选择都无法实现我们的需求”。

现有的大多数解决方案都是面向基于 MVC 的架构所创建的,而我们打算走一条不同方向的路。虽然市面上也有产品使用不同的抽象概念,但它们都不足以实现我们在 T3 中所包含的功能。

T3 中的组件共包括以下三种类型:

  • 服务
  • 模块
  • 行为

在使用 T3 所编写的一个典型的 ToDo 列表示例中,该项目不仅展示了示例的源代码,同时也详细解释了每一段代码的功能。举例来说,在一段关于维护列表项状态的代码中,其描述是这样写的:

虽然所有的模块都是独立的,但每个模块都会与一个维护着 todo 状态的服务进行交互。todos-db 这个服务将负责在整个应用的生命周期中管理任务的添加、删除和标记为完成等工作。

T3 中服务的概念与 Angular 中的概念非常接近,比方说,开发者可以以这种方式在 Application 中注册某个服务:

复制代码
Application.addService('router', function(application) {
return {
route: function(url, state) {
history.pushState(state, '', url);
}
};
});

但与 Angular 中使用的依赖注入方式不同,在 T3 中的服务是通过对全局 Application 对象的请求获得的:

复制代码
var router = Application.getService('router');
router.route('/home', {});

与 React 类似,T3 并不排除与其它框架共同使用的可能性。Zakas 说道:“T3 完全能够与 Backbone、React 或任何框架一起使用,它只是帮助我们更好地组织个别的代码片段,并且允许工程师们以他们所希望的任意一种方式将这些片段拼接在一起,成为一个完整的客户端功能。”

Hacker News 上的某个讨论中,开发者们普遍表示了对该团队工作成果的赞誉,但同时也对 T3 的组件和 Ember、Angular 和 Meteor 中的组件进行了对比。用户 DigitalSea 对此抱怨说,T3 中并没有提供任何具有新意的东西:

我实在看不出为什么 Box 需要开发一套新的 JavaScript 框架,是不是我漏掉了些什么?作为一个前端开发者,我确实对 T3 这个产品感到兴奋,但我实在看不出 T3 到底实现了哪些其它框架中缺少了的东西。

Zakas 表示,T3 尤其适合于某种类型的应用。“T3 当然也能够用于其它途径,包括 MVC 架构以及单一页面应用,但它的长处特别体现在于渐进式增强这一点上。”Box 在它们的桌面应用与移动 Web 应用中都使用了 T3 进行开发。

可以在 GitHub 上找到 T3 项目的详细信息。

查看英文原文: Box Releases T3 JavaScript Framework

2015-04-28 07:211711
用户头像

发布了 428 篇内容, 共 172.1 次阅读, 收获喜欢 38 次。

关注

评论

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

TiCDC 源码阅读(三)TiCDC 集群工作过程解析

PingCAP

TiDB 源码解读

从做技术到做技术管理

石云升

极客时间 技术管理 1月月更 技术领导力实战笔记

推荐一款较好的小程序管理平台

FinFish

小程序 小程序管理平台 小程序管理

ZBC即将登录Coinbase Institutional,2023年以全新姿态出发

BlockChain先知

标准发布 |《企业数字化成熟度模型IOMM》(中小企业)发布

信通院IOMM数字化转型团队

数字化转型 IOMM ICT深度观察

华为云服务治理 — 隔离仓的作用

秃头也爱科技

2022年度 FinClip 扩展SDK推荐!

FinClip

Linux Radix Tree详解

Linux内核拾遗

数据结构 Linux内核 Radix Tree

ZBC即将登录Coinbase Institutional,生态开年迎新利好

鳄鱼视界

「Go框架」剖析iris中错误码路由的运行机制

Go学堂

golang 开源 个人成长 签约计划第三季

“会说话”的产品包装?“码”上查看!

旺链科技

区块链 区块链技术 区块链溯源

【新春特惠周末班】2月4-5日在线CSPO“价值交付课程” | 全国招生

ShineScrum捷行

产品负责人 CSPO认证 CSPO

简述JavaScript键盘事件

devpoint

JavaScript 事件监听 事件冒泡 键盘事件

2022 年行摄回忆录

穿过生命散发芬芳

盘点2022 行摄回忆录

一种面向业务配置基于JSF广播定时生效的工具

京东科技开发者

jdk 后段技术 企业号 1 月 PK 榜 ducc jsf

采购LED显示屏要注意的五大技术参数

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

业务-研发一体化管理平台,存在吗?

FinFish

小程序 小程序管理平台 小程序技术

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解

一颗小树

机器学习 机器学习笔记

大型软件通过“云应用”即点即用,能解决元宇宙的开发之难吗?

B Impact

2022年度回顾|龙蜥这一年:协同开放 众行致远

OpenAnolis小助手

开源社区 龙蜥 贡献 协同开放

ZBC即将登录Coinbase Institutional,生态开年迎新利好

西柚子

ZBC即将登录Coinbase Institutional,生态开年迎新利好

EOSdreamer111

也谈证券行业数字化转型中的业务与IT融合(上)

三少爷的见

敏捷 需求管理 需求 数字化转型 需求分析

代码影响范围工具探索

京东科技开发者

测试 源代码 企业号 1 月 PK 榜 代码影响范围

揭开华为云CodeArts TestPlan启发式测试设计神秘面纱!

科技怪授

华为云

ZBC即将登录Coinbase Institutional,生态开年迎新利好

股市老人

软件测试/测试开发 | 接口自动化测试之JSON Schema模式该如何使用?

测试人

软件测试 接口测试 测试开发 JSON Schema 测试开发自动化测试

一份价格,双份收货,彻底搞定 PPT,兔年解放你自己

博文视点Broadview

DCS分布式缓存服务实例类型介绍

秃头也爱科技

华为云发布CodeArts Req需求管理工具,让需求管理化繁为简

科技怪授

华为云

“零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍

OneFlow

人工智能 深度学习

Box发布T3 JavaScript框架_JavaScript_David Iffland_InfoQ精选文章