速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

Linux之ack命令

入门小站

Linux

Kubernetes 集群如何做到低成本高弹性

玄月九

Kubernetes 弹性 成本 降本 低成本高弹性

透过荣耀耳机的三重“炼金术”,重识TWS行业

脑极体

易观分析:应用数字孪生低代码平台,API开放性是选型关键

易观分析

数字孪生

“易+”开源 | 网易会议开源之移动端篇

网易云信

开发

设计微博系统中”微博评论“的高性能高可用计算架构

IT屠狗辈

架构实战营 微博评论架构实战

如何设计信息安全领域的实时安全基线引擎

Apache Flink

大数据 flink 开源 编程 实时计算

一文读懂可观测性与Opentelemetry

博睿数据

2月券商App行情刷新及交易体验报告,东方与安信升至领导者象限

博睿数据

【英雄大会】之谁说站在光里的才算英雄(上篇)

Anna

经历分享 作者 简介

海量非结构化数据副本难保护,焱融科技携手英方推出联合解决方案

焱融科技

云计算 分布式 云原生 高性能 文件存储

测性能,拿周边|OceanBase 3.1.2 版邀你来玩

OceanBase 数据库

基于爬虫的测试自动化经验分享

FunTester

爬虫 性能测试 办公自动化 FunTester 测试自动化

深度强化学习的“丛林”大冒险

脑极体

discuz防止恶意注册!

喀拉峻

网络安全

如何在PC端应用中运行小程序?

FinClip

小程序 小程序框架 小程序容器

吕氏餐饮:用宜搭智能考核绩效,人事管理更高效

一只大光圈

低代码 数字化 钉钉宜搭

架构实战营:模块五作业

刘璐

在线JSON转HTML工具

入门小站

工具

在线JSON转CSV格式文件工具

入门小站

工具

架构训练营 模块五

Geek_16d2b8

架构训练营5期

Flutter仿微信价值几个亿的页面

岛上码农

flutter ios开发 Android开发 移动端开发 3月月更

模块五 评论计算架构

Geek_28cf33

Golang 1.18正式版发布,正式加入泛型语言家庭

学神来啦

Go golang Go 语言

【图解数据结构】树和二叉树全面总结

知心宝贝

二叉树 数据结构与算法 二叉树遍历 3月月更 树和二叉树

微博评论的高性能高可用计算架构设计

五月雨

架构实战营 「架构实战营」

SpringCloud-Feign

昊运

SpringCloud

“微博评论”的高性能高可用计算架构

张逃逃

高可用演练中堆叠切换失败分析

BUG侦探

高可用 堆叠 链路聚合

经验分享 | 最佳文档协作软件推荐

小炮

微博“发评论”高性能高可用计算架构

Fingal

#架构实战营

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