前一陣子有個好友P先生問我:「Struts跟Tapestry兩個Framework那個比較好?」像這樣類似的問題相信您也曾經遇到,後來想到有本書《Art of Java Web Development》恰好可以拿來解答!
就Java這個技術領域來說,Java Servlet、JSP及Custom Tag是最主要的Web開發技術,在MVC(Model,View,Controller)觀念不斷倡導下,許多開放源碼社群便將這樣的觀念落實到Web Framework上,像Struts就是一個典型的例子。但與Web相關的開放原碼框架(Web Framework)種類十分繁多,每個框架都有自己的特色及適用的時機,要好好發揮是需要套用合適的Web Framework,以利未來擴充及維護。
通常知名的Java Web Framework有以下共通特性:
● 採用XML為其組態檔格式,用來控制網頁流程及實作元件之宣告。
● 實作時必須繼承或實作Framework所定義的類別或介面。
● 允許透過標準介面與其他J2EE Framework輕易整合
● 可以自行改寫原始碼,做出適用於自身需求的新框架
介紹加上評估,實作參考價值高
本書內容分三大部份,第一部份先針對Java開發Web應用系統的歷史沿革進行簡要回顧,作者說明欲開發一個頂尖水準的Web應用系統應該注意的事項,強調設計模式(Design Patterns)的重要性,在架構設計時導入合適的Web框架,並遵循最佳實踐方案(Best Practices)以避免錯誤及降低風險。另外亦提到在實作時使用的相關技術,包括Java Servlet、JSP、及Custom JSP Tag,亦針對這些方式分別評估其利弊及優劣分析,最後便談論Model 2的設計方式,建議讀者以MVC架構您的Web Application。
第二部份便分別介紹時下較知名的Java Web Framework,包括Apache Jakarta專案的 Struts,Tapestry,Velocity,Cocoon,Open Symphony專案的WebWork,JBuilder中的InternetBean Express等。作者設計了一個時程表(Schedule)的範例,包括行程新增、檢視、資料驗證等功能,分別透過這些不同的Web Framework來實作,讓讀者可以方便比較彼此之間實作上的差異性。針對每個Web Framework都會提到該軟體架構,包含的主要組成元件,及作者對這些Framework的評估結果,提供讀者在使用這些框架時之參考。
在了解每個Web Framework的特性之後,相信您心裡對於採用那一個Framework應該有些眉目,但在開發過程中免不了會遭遇到一些常見的問題需要解決,像是網頁流程設計、使用者界面設計、效能調校、系統資源配置、測試及除錯等議題。第三部份便討論在建構Web應用系統時之最佳實踐方案。在這個部份作者利用電子商務網站範例(eMotherEarth.com)來說明建議的實作技巧,並搭配程式碼輔助說明。另外亦介紹了相關的Open Source工具(像是JUnit,Log4J)來輔助開發。本部份的章節相當精彩,讀者必然不可錯過!
妥善評估,選擇合適的Framework
至於您要採用那個Framework,評估的重點可以分別由架構本身的擴充性,架構本身研發的速度及維護的週期來檢視,而文件的完整性、社群參與程度亦是開發人員需要重視之處,是否提供配套的工具軟體(像是一些知名開發平台的Plug-in)對開發效率影響甚鉅;Framework本身是否遵循良好的設計原則,所採用的技術是否創新,也會是評估的重點。
導入Framework也許會比較費事,因為Framework的價值在於它已完整定義基礎框架及所需的基本元件,開發人員必須遵循它所定義的規則來實作內容。但在規模較大而且經常進行內容更新的的網站系統,導入Framework的效益就很容易被彰顯出來。
本書原則上是對每個Web Framework進行概要性介紹及適用性評估,由於篇幅有限,更細部的實作方式不會在本書過多著墨,您可以參考對應的專書或技術文件,Manning的《In Action》系列書籍即可以提供您滿意的答案。
《作者簡介》陳宏一
交通大學資訊管理研究所碩士,現任億訊國際資深顧問。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、WAP/3G行動加值服務、CTI/CRM客服系統架構規劃設計等。他的電子信箱是:aone.tw@gmail.com。
熱門新聞
2026-01-16
2026-01-16
2026-01-18
2026-01-16
2026-01-16
2026-01-18
2026-01-16