重點摘要#

  • 每個專業都有其術語(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