@Rays
2016-12-25T20:06:40.000000Z
字数 1346
阅读 1702
未分类
摘要: Bitovi发布了JavaScript框架CanJS的3.0版。该项目做了很大的改进,这使得Can-connect模型层Observable对象更强大和易用,框架也做了更细粒度的模块划分。
作者: James Chesters
正文:
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-stream和Can-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