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!