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