黃金法則:始終採用 MVC 架構
MVC 將業務邏輯(Model)、控制流程(Controller)、展示邏輯(View)徹底分離。違背 MVC 的典型後果:JSP 混入資料庫存取、流程控制,導致難以維護;Servlet 處理業務邏輯;業務層綁定特定視圖資料格式。嚴格分層是 J2EE 專案成功的基石。
核心實踐清單
- 全層自動化單元測試:利用 JUnit、Cactus 對 EJB、JSP、Servlet 獨立測試,MVC 分層天然支援可測試性。
- 依規範開發,而非依應用伺服器:避免廠商鎖定,確保可移植性。
- 從一開始規劃 J2EE 安全性:整合 JAAS、角色基礎存取控制(RBAC)。
- 創建你了解的:避免過度設計,優先實現核心業務價值。
- EJB 必用 Session Facade:封裝實體 Bean 操作,降低網路往返,提供統一事務邊界。
- 優先無狀態 Session Bean:可伸縮性優於有狀態 Bean,減少伺服器資源佔用。
- 採用容器管理事務(CMT):透過部署描述符宣告式管理,減少樣板代碼與錯誤。
- JSP 作為首選視圖技術:搭配標籤庫(JSTL)、EL 表達式,避免 Scriptlet。
- HttpSession 精簡原則:僅存放當前業務必要狀態,避免大型物件塞入 Session 造成記憶體壓力與叢集同步開銷。
- WebSphere 動態快取:啟用 Servlet 快取機制,大幅提升靜態/半動態頁面效能。
- CMP Entity Bean 作為首選 O/R 映射:容器管理持久化,開發效率最高,適用多數業務場景。
測試驅動開發(TDD)與敏捷方法論
現代敏捷流程(Scrum、XP)核心主張:自動化回歸測試、測試優先開發。MVC 組件化架構使單元測試極其便利——每層可獨立驗證,無需啟動完整容器。