【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

极客时间运维进阶训练营第十周作业

老曹

追求技术极致 探索落地先机 毫末智行城市NOH公布未来产品规划

科技大数据

新能源汽车

用 SwiftUI 实现 AI 聊天对话 app - iChatGPT

37手游iOS技术运营团队

ios SwiftUI openai ChatGPT

【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)

洛神灬殇

redis 数据同步 1月日更 数据同步工具 RedisShake

选购LED显示屏时需要注意8个技术参数

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

使用 App Store Connect API 批量创建内购商品

37手游iOS技术运营团队

AppleParty 苹果派 App Store Connect API 批量创建内购IAP 批量上传 IAP

线上压测

agnostic

三年成功实现7次OTA升级!MANA六大闭环成毫末产品迭代强大助力

科技大数据

怎么用vscode创建工程

eng八戒

ide vscode koa

HAOMO AI DAY速递:六大闭环、MANA五大模型助力毫末智能驾驶产品快速迭代

科技大数据

OpenTelemetry日志体系

骑牛上青山

Java 日志 log 调用链 OpenTelemetry

Guitar Pro2024最新免费版吉他打谱软件下载

茶色酒

Guitar Pro Guitar Pro8 guitar pro2023

直播交友一对一视频语音APP项目系统架构和模式分析(成品1对1源码)

山东布谷科技胡月

视频语音直播app开发 语音直播交友系统搭建 社交app开发 1v1语音系统搭建 视频社交APP开发

如何让你的架构设计应用做到高内聚、低耦合?

风铃架构日知录

Java 程序人生 后端 架构设计 后端开发

TSDB助力井下位置服务

CnosDB

数据库 IoT 时序数据库 开源社区 infra

2023-01-07:hyper/docker-registry-web是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

福大大架构师每日一题

云原生 k8s k3s 福大大

运维训练营第十一课作业

好吃不贵

元器件温度系数(ppm/℃)是什么?

不脱发的程序猿

元器件温度系数

VSCODE 配置远程调试环境

eng八戒

ide vscode 服务器

无线配置多一个路由器作为家庭wifi的无线热点?

eng八戒

家庭网络 热点

MySQL字符集和排序规则详解

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

Button(按钮)与ImageButton(图像按钮)

攻城狮Wayne

Android Studio button imagebutton

盘点毫末智行AI DAY:智算中心成立、六大闭环、MANA五大模型...助力毫末智能驾驶产品快速迭代

科技大数据

尝试阅读理解一份linux shell脚本

eng八戒

bash Shell Linux Kenel 脚本

分享 7 个不错的 AI 工具

devpoint

人工智能 AI openai

8 个很酷的 GitHub 技巧

devpoint

GitHub vscode 开发技巧

《零基础学 Python(2023 版)》学习笔记 Day0

IT蜗壳-Tango

Python编程 IT蜗壳教学

多位AI学者、行业大牛、企业家齐聚2023 HAOMO AI DAY分享自动驾驶行业前沿洞见

科技大数据

社交视频直播一对一交友APP源码之Android如何打包APP

山东布谷科技胡月

语音直播app开发

中国自动驾驶行业最大智算中心亮相 毫末顾维灏:毫末车端感知架构实现跨代升级

科技大数据

汽车

毫末智行稳健收官2022“三大战役” 火力全开打响2023“四大战役”

科技大数据

智能汽车

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