BT

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

CanJS 3.0版将框架划分为更细粒度的模块

| 作者 James Chesters 关注 1 他的粉丝 ,译者 Rays 关注 3 他的粉丝 发布于 2017年1月4日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Bitovi发布了JavaScript框架CanJS的3.0版。据公司的CEO Justin Meyer介绍,该版本“最终表示了对CanJS特性的理解和接受,即要么适应要么消亡”。

CanJS最早出现于2007年,开始时是“巨无霸”JavaScript框架JavaScriptMVC的一部分,现在成为从JavaScriptMVC中独立出来的一系列项目之一。3.0版更新距最初的发布已过去了近10年,该版本为开发人员提供了新的特性。

最新版本中的技术改进使CanJS的模型层Observable对象更强大也更易用。在3.0版中还可清晰看到,框架中做了更细粒度的模块划分。

作为Bitovi公司的开发布道师,Chasen Le Hara与InfoQ进行了一次面对面的交流。Le Har诠释了CanJS所做的改进。

Le Hara说:“对项目做大规模升级是一件困难的事情,要么一步到位要么什么都不要做。开发人员必须一鼓作气完成所有大幅度变更。更糟的是,如果移除了一些所谓的旧特性,那么开发人员就必须要面对抉择,即是否应升级为新的替代特性,或是完全不升级。”

“前期在Can-ejs上我们就经历了这种事情。Can-ejs是我们曾想要推出的一种语言,几年前被我们弃用了,但是我们依然希望能为仍在使用该语言的社区成员提供支持。现在Can-ejs以独立项目形式存在,其维护并未对主项目产生任何妨碍。”

Le Hara提出,将CanJS划分为细粒度模块有助于团队和社区去试验新技术。

“在我们的生态系统中有很多的项目,这些项目无需交付到主模块中。”Le Hara说。“当你想要试验一些新特性时,通过开关模块功能就能轻松实现。对此我们正使用与Kefir集成的Can-streamCan-define-stream库实现。”这简化了函数式响应型编程。

在CanJS模型层Can-connect中的改进涉及了对特性的抽取,其中包括了内存管理、自动列表更新和fall-through缓存等。Le Hara告诉InfoQ,将这些特性包含在程序库中方便了开发人员在应用中使用它们,“避免了自己去开发这些特性”。

2017年CanJS将十岁了。Le Hara说,社区“依然在谈论”其应优先发展什么,为了与其它的项目及新技术更好地协作,CanJS团队计划对框架的模块进行改进。Can-connect模型层在设计上可与Angular和React等项目协作,并且CanJS团队在寻找熟悉相关技术的贡献者来一起找出与这些框架集成的最好方式。

CanJS是开源的,并以MIT许可发布。CanJS鼓励InfoQ读者成为项目贡献者。项目贡献者指南是最好的切入点,其中给出了如何提交软件缺陷和建议特性的信息。CanJS还具有活跃的论坛Gitter聊天室,欢迎新的项目开发人员加入。

查看英文原文:CanJS 3.0 Release Breaks Framework into Smaller Modules


感谢薛命灯对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT