許多 Java 專案陷入效能低下、維護困境的根源,並非語言或框架本身,而是團隊缺乏正確的物件導向思想與架構認知。本文深度剖析四大核心誤區,並指出領域驅動設計(DDD)作為破局關鍵的實戰價值。
軟體有生命週期,靈活可擴展的基礎架構是生存根本,完整功能只是時間堆疊的結果。許多專案犧牲架構換取短期功能交付,導致後期新增需求寸步難行,最終重構成本遠超重寫。開源框架(如 OFBiz、Compiere)看似功能豐富,實則擴展性受限,切勿盲目採用。
將業務邏輯下沉到資料庫層(存儲過程、複雜 SQL)看似解決效能,實則摧毀分層架構:
正確姿勢:持久層僅負責物件持久化;業務邏輯留在領域層;適量 SQL/存儲過程作為規約(Specification)輔助,而非核心邏輯載體。
許多團隊抱怨 Hibernate 慢,實則是圍繞資料表設計物件模型導致:
lazy=false)引發級聯加載風暴DDD 破局之道:先設計高質量領域模型(遵循 DDD 原則:聚合根、值物件、領域服務),再通過 ORM 持久化。若不掌握領域建模,「No ORM」反而可能是更簡潔的選擇。
Spring 作為業務層框架卻缺乏業務層 Session 支持,導致購物車等有狀態業務邏輯被迫下沉到表現層(HttpSession),破壞分層純粹性。DDD 提出的「領域層/服務層/應用層」細分架構,能優雅解決此類跨層關注點問題。
DDD 非新理論,而是前人面向模型設計經驗的萃取。它回答了框架選型的根本標準:能否輔助實現分層架構?能否支撐領域模型自然表達? 掌握 DDD,才能在技術迷霧中守住架構選型的核心方向。