重點摘要#
- 每個專業都有其術語(jargon),軟體架構也不例外
- 架構與設計模式是架構師之間有效溝通的關鍵手段
- 模式可分為四大類:企業架構模式、應用架構模式、整合模式、設計模式
- 了解反模式(anti-patterns)同樣重要,能幫助你避開常見陷阱
詳細內容#
就像律師談論人身保護令(habeas corpus),木匠談論對接接頭(butt joints),軟體架構師也需要用共同的語言來溝通。這種語言的核心就是架構與設計模式。
四大模式分類#
- Enterprise Architecture Patterns:定義高層架構框架,例如 Event Driven Architecture (EDA)、Service Oriented Architecture (SOA)、Resource Oriented Architecture (ROA)、Pipeline Architecture
- Application Architecture Patterns:規範應用程式或子系統的設計方式,如 J2EE 設計模式(Session Facade、Transfer Object)和 Martin Fowler 的《Patterns of Enterprise Application Architecture》中的模式
- Integration Patterns:設計元件間的資訊共享與功能互通,包含檔案共享、遠端程序呼叫、訊息傳遞模式等
- Design Patterns:Gang of Four 的基礎設計模式,雖然看似太底層,但它們構成了架構師與開發者之間的標準詞彙
反模式的重要性#
反模式(Anti-patterns)是可重複但會產生無效結果的流程。常見的反模式包括:
- Analysis Paralysis(分析癱瘓)
- Design By Committee(委員會設計)
- Mushroom Management(蘑菇管理)
- Death March(死亡行軍)
了解這些模式能幫助你避開許多常見的陷阱。模式就在那裡,身為軟體架構師,我們的責任是學習並理解這些模式,才能真正做到「walk the walk and talk the talk」。
— By Mark Richards