GitHub Resources 刊出一篇科普文章,解釋什麼是軟體架構。文章將軟體架構定義為開發人員在規劃與建置軟體解決方案時使用的一組基礎結構,作用是作為視覺指南,確保專案能同時達成技術與商業目標,適合剛接觸系統設計概念的讀者閱讀。
文章指出軟體架構由三個核心要素組成:可互換的「軟體元件」(以套件、應用或服務的形式存在)、讓元件之間互相連接與通訊的「程式介面」,以及定義系統如何組織與協同運作的「架構風格」。文章接著列出五種常見架構風格:單體式、微服務、用戶端—伺服器、分層式(N 層,文章稱為目前最廣泛使用的風格),以及事件驅動架構,並簡述各自適用的情境。
文章也整理出好的架構帶來的具體好處,包括更靈活的擴展能力、提高代碼品質並減少錯誤、讓舊系統現代化以降低成本、透過元件可重用性提升生產力,以及優化系統效能。在設計原則方面,文章特別提到由 Robert C. Martin 提出的 SOLID 五大原則(單一責任、開放封閉、Liskov 替換、介面隔離、相依倒置),以及關注點分離、模組化與封裝等實務做法,還提到 UML 與版本控制工具是常用的輔助工具。
這篇文章屬於 GitHub 官方知識庫的基礎概念系列,比較像是給工程師與學生的入門教材,不涉及特定新產品或新聞事件。對正在學程式的孩子來說,架構風格、SOLID 原則這些名詞一開始可能聽起來抽象,但背後的想法其實很生活化:先把系統拆成小塊、讓小塊之間用清楚的介面溝通、每塊各司其職,這和整理房間、分工做家事的邏輯很接近,是未來寫比較大型專案時會慢慢用到的概念。
軟體架構程式教育開發工具