[Architecture] 軟體產品架構設計常見問題

摘要:[Architecture] 軟體產品架構設計常見問題

[Architecture] 軟體產品架構設計常見問題

戰略目標

問題情景

以專案的方式來開發產品,整體戰略目標不明、欠缺方向性,容易讓開發人員迷失在錯誤的枝微末節中,浪費大量開發成本。

解決方案

重新定義產品戰略目標,並且依照戰略目標調整開發方向,提高開發人員工作產出的價值。

軟體架構

問題情景

軟體架構混沌不明,欠缺基本的抽換資料庫、重用服務等等功能。

解決方案

導入三層式架構設計並落實開發,讓產品可以依需求執行在不同資料庫上,並且提供升級為SOA(服務導向架構)的能力,大幅提高產品存活壽命。

功能模組

問題情景

功能模組邊界模糊、程式碼交雜混亂,大幅提高後續維護成本。

解決方案

導入DDD分析設計方式,真實萃取Domain Knowhow並且封裝為各自獨立的功能模組、Context,將軟體模組化降低維護成本。

插件框架

問題情景

修改原始專案內容來提供插件功能,除了容易因為誤改核心邏輯而增加開發成本之外,也大幅提高原始碼的版本控管複雜度。

解決方案

將系統拆解為Core與Service,並引入MEF、Spring等等DI Framework,使用Plugin的方式來掛載Service。核心程式不外流,除了提高產品價值之外,也讓Service開發人員減少出錯的機會,降低開發成本。

期許自己
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。