本書深入探討了軟件設計中的核心問題:如何將復雜的軟件系統(tǒng)分解為可以相對獨立實現的模塊(例如類和方法),從而降低其復雜性并提高開發(fā)效率。本書首先介紹了軟件設計中的基本問題,即復雜性的本質。其次,討論了有關如何處理軟件設計過程的“哲學”問題,如通用設計的重要性、與《代碼整潔之道》中設計哲學的對比,以及如何將重要的東西和不重要的東西區(qū)分開等內容。最后,總結了在軟件設計過程中應遵循的一系列設計原則,以及一系列識別設計問題的警示信號。本書適合軟件工程師、計算機科學專業(yè)的學生、教育者、對軟件設計和開發(fā)感興趣的自學者和技術管理者閱讀。通過應用本書中的思想,讀者可以最大限度地降低大型軟件系統(tǒng)的復雜性,從而更快地以更低的成本編寫軟件,并構建更易于維護和增強的系統(tǒng)。