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条标准
你看到了,这个清单很长,在做决定时,你需要想好各个标准的权重。不过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!