聯軸器概念 耦合性:表示一個模組了解和依賴其他模組的程度。 低耦合:一個模組的變更對其他模組的影響較小。 高耦合:一個模組中的變更可能會影響其他幾個模組。 凝聚力概念 內聚性:表示模組職責的分組程度。 高內聚:模組具有相關的職責,並且專注於執行單一任務。 低內聚力:職責相關性較低。 溝通方式 訊息通訊。 傳統通訊。 訊息通訊 非同步通訊。 模組發送和接收訊息。 透過介面定義訊息契約。 促進模組之間的解耦。 模組透過訊息匯流排進行通訊 工具:RabbitMQ、Kafka等 傳統傳播 模組之間呼叫函數。 在套件之間使用物件、結構、特徵。 一個模組呼叫另一個模組。 命名空間、包、模組的使用。 觀察結果 很難保證要完全解耦 模組之間總是存在一些依賴關係。 即使使用合約、介面和訊息傳遞,也會存在一定程度的依賴性。 一個模組與另一個模組之間存在依賴關係是正常的。 原始碼: https://github.com/ortizdavid/golang-modular-software