首页 » Java程序员修炼之道 » Java程序员修炼之道全文在线阅读

《Java程序员修炼之道》13.2 选择Web框架的标准

关灯直达底部

Java这么多年的顶级编程语言地位不是白给的,Java中可供选择的Web框架有很多。最近基于其他JVM语言(比如Groovy、Scala和Clojure)的Web框架也雄起了。但不幸的是,这么多年来还没有一个能在这一领域确立自己的霸主地位,选哪个框架完全看个人偏好。

Web框架应该能提供大量帮助。必须能用一些标准进行评估,它能满足的标准越多,开发Web应用的速度可能会越快。

Matt Raible1总结出了评判Web框架的20条标准2。表13-1对这些标准作了简要介绍。

1 AppFuse(http://appfuse.org)的作者,AppFuse是一个Web开发基础平台,它集成了Java中各种流行的Web框架,并提供了所有Web系统开发过程中都需要开发的一些功能,比如登录、用户密码加密、用户管理、为不同的用户展现不同的菜单。它可以自动生成40%~60%的代码,还自带了一些默认的CSS样式,使用这些样式能快速改变整个系统的外观,还具备自动测试的能力。——译者注

2 Matt Raible, “Comparing JVM Web Frameworks” (March 2011), presentation. http://raibledesigns.com/rd/page/publications。

表13-1 Web框架的20条标准

标准示例开发人员的工作效率能用1天或5天搭出一个CRUD页面吗开发人员的看法用起来有意思吗学习曲线学了一个礼拜或一个月后能干活吗项目健康状况项目陷入绝境了吗开发人员的充足性能找到经验丰富的开发人员吗就业趋势将来能招到人吗模板化遵循DRY(不重复自己)原则吗组件自带日期选择器之类的东西吗Ajax支持客户端的异步Javascript调用吗插件或附加项能加上Facebook集成之类的功能吗扩展性默认的控制器处理的并发用户数能到500+吗测试支持能做测试驱动的开发吗I18n和l10n自带其他语种和地域的支持吗校验能轻松校验用户输入并迅速反馈吗多语言支持能同时用(比如说)Java和Groovy吗文档/教程的质量常见的用例和问题在文档中都有体现吗出版图书有没有行业专家用过它,并分享了自己的战斗事迹REST支持(服务器端和客户端)它能按HTTP的设计宗旨使用该协议吗移动支持是否很容易就能支持Android、iOS和其他移动设备风险程度是用来做“保存食谱”的应用程序或是“核电站控制器”

你看到了,这个清单很长,在做决定时,你需要想好各个标准的权重。不过Matt很勇敢3,他最近在这一领域做了一些研究,尽管其研究结果引发了激烈的争论,但真相总算是开始浮现了。如果给那些对Web快速开发最重要的标准赋予较高的权重,各种框架的得分(总分为100)如图13-2所示。这些标准应该是:开发人员的工作效率、测试支持和文档的质量。

图13-2 Matt Raible对JVM框架的加权评级

3 你应该能想象得到,人们对于自己喜爱的Web框架有多大的热情!

不同的人需求可能会不同,在http://bit.ly/jvm-frameworks-matrix上可以很容易地修改Matt的权重,运行自己的分析,产生自己的图形。

提示 在你选定框架之前,我们强烈建议你在两到三个框架上按自己的标准做一些功能原型。

现在你知道该用哪些标准进行评估了,并且还能利用Matt提供的工具,所以在选择Web快速开发框架时,你可以做出明智的选择。在我们的加权标准分析中脱颖而出的是Grails框架(Compojure没有名列前茅,但因为它还非常年轻,所以我们预计它在不久的将来能迅速蹿升到领导阵营中)。

我们来看看获胜者Grails!