BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Box发布T3 JavaScript框架

| 作者 David Iffland 关注 4 他的粉丝 ,译者 邵思华 关注 3 他的粉丝 发布于 2015年4月29日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

在线存储与内容平台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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

这是给不会写js但又不得不写js的java码农用的 by wen bob

正常人不会喜欢这么脑残的设计。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT