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

阅读数:854 2017 年 1 月 3 日

话题:JavaScript语言 & 开发

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)关注我们。