jMaki 项目近日发布了 1.0 版本。jMaki 是用于创建 Web 2.0 应用的 C/S 结构框架。它通过提供各种 Widget 的方式抽象了 JavaScript 和 CSS,同时 JavaScript 与 CSS 被设计得易于界面开发人员访问并进行修改。不久之前 InfoQ 对 jMaki 的主要开发者 Greg Murray 进行了采访并就即将发布的 1.0 版本进行了讨论。在讨论之前 Murry 对 jMaki 的背景进行了简要的介绍。
大约在两年前,一个以 jMaki 命名的项目在日本诞生了。简单来说,jMaki 就是一个用于开发 AJAX 应用的 C/S 框架,它的主要关注对象已经转变成一般公司中的开发人员,虽然这些开发人员一直在致力于拓展他们的知识领域。jMaki 团队的最终目标是:
[……] 希望 jMaki 成为进行 Ajax 功能开发的 WordPress。
Murray 解释道:
在开发的初期 jMaki 主要用于描述可移植及可复用的 JavaScript。不久,我们发现将不断增长的 JavaScript 工具箱包装起来是非常有用的。通过设计这样一个 C/S 结构的框架,我们可以通过服务器来加速 Widgets 以及其依赖的 JavaScript、CSS 和 HTML 模板文本的定义过程。
他继续解释到,jMaki 项目的总体目标是:
从根本上说,我们希望开发者通过使用 jMaki,可以创建出基于标准的应用,将自己的代码和目前可用到的精巧绝伦的工具包以及功能黏合在一起。这些工具包和功能包括了 Dojo 或者 Yahoo Widgets,使用 Google Gears 进行本地存储,Scriptataculus/Protoscript 进行效果展现,并且有能力调用 Yahoo 或者 Google 地图之类的服务。
此外,Murray 特别强调了 jMaki 并非一个排它性的平台:
不论是单独作为 Widget 还是作为应用,jMaki 都是一个有良好表现的平台。我们在设计框架的时候就非常注意让它能拥有良好的性能,包含全部核心功能的客户端脚本仅仅 18k 大小,而且,下载文件的尺寸根据你所需要的功能决定的,我们在确保所用的工具包能够良好表现上作了很多努力。
InfoQ 提出这样一个问题:“如果你有机会指导一位开发者开发新的 Web 项目,你认为 jMaki 可以提供的最重要的的 5 个特性或者功能是什么?”Murray 回答到,jMaki 1.0 版本向开发者提供了丰富的功能,其中包括:
- Widget 或者扩展组件可以提供缺省配置 > jMaki 遵循习惯优于配置(Convention over Configuration)的原则。Widgets 和组件扩展都位于易于寻找的位置。特别是当你使用 IDE 时,将 Widget 拖拽至页面就可以正常工作。我们所使用的模板都带有内建数据(数据也可以在使用 Ajax 调用的时候加载)。
- 工具支持 > 我们提供了 NetBeans/Eclipse 插件以及用于构建 Web 项目的 Ant 脚本。
- 标准化的事件以及数据模型 > 用于描述 Widget 和描述多个 Widget 之间交互的方式是一致的,这样开发者可以仅学习一种模型并轻易的将其应用于各种工具包。我们在 Widget 包装器这一层屏蔽了种种的不一致。
- 一致的编程模型 > 在不同的工具包中,与 Widget 进行交互的方法是一致的。例如, Actions 就是一个通过声明进行事件处理的简单方式。jMaki 同样支持使用编程的方式在 Widget 或扩展组件上,或者响应用户行为进行事件处理。
- 可移植的Widget/ 扩展组件库 > jMaki 的 Widgets 是可移植的,并且它们也可以被包装在各个库中,每个库包含它们所需要的资源。这使得用户具备可以以 zip 压缩文件的格式来分享一组 Widget。
- 扩展组件 > jMaki 不再仅仅意味着 Widget,你也可以将 Google Gears、Protoscript、JavaScript 或者任何其他 JavaScript 可以访问的功能包装为一个可移植的库。
- 平台无关 > jMaki 完全支持 Java(JSP/JSF 1.1-2/Facelets/Portlets)、PHP 5.x、 Phobos 以及时下最流行的 Ruby(不过我们还没有实现代理,因为目前还没有标准的 XSLT 处理器)。
jMaki1.0 的发布是社区花费了大量时间和精力的巅峰之作。然而,随着 9 月 25 日的发布,Murray 以及团队的其他成员已经开始讨论 jMaki 1.1 版本。未来的方向包括了通过服务器组件改进客户端事件总线连接的一致性,扩展 Widget 的种类(即 jQuery 或者 Prototype)以及充分利用服务器端应用缩短响应时间。
查看英文原文: jMaki Ajax Framework Releases 1.0 with Support for Java, PHP, and Ruby - - - - - -
译者简介:胡凯,2006 年加入 ThoughtWorks ,通过在 ThoughtWorks 多个国家和多个项目的敏捷实践,坚定地站在了敏捷阵营中,目前在进行 CruiseControl 相关的敏捷开源项目。他和许多敏捷开发者一样活跃在敏捷中国和 CruiseControl-China 社区中。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com 。
评论