This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process, and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly
##同組的斯坦福小夥大學時上過作者的課,強烈推薦瞭本書。書雖薄瞭些,但收獲不小。
##短小精悍,字字珠璣。
##微觀設計層麵講得很全麵,define errors out of existence 引人深思。宏觀架構層麵需要參考 Design Data-Intensive Applications。
##新入行的程序員應該看看,都是些老調重彈
##同組的斯坦福小夥大學時上過作者的課,強烈推薦瞭本書。書雖薄瞭些,但收獲不小。
##"The first is to describe the nature of software complexity ... The book’s second, and more challenging, goal is to present techniques you can use during the software development process to minimize complexity."/"...the increments of development should be abstraction, not features..."/這本書著重強調軟件係統設計的目標是控製住係統內部的復雜度。比較少討論功能和性能。
##復雜度
##無論是剛入行的程序員還是項目leader都非常值得讀的一本書。
##模塊劃分是一門藝術。這不是一本講述瞭嚴格規則的書,每個人看過之後可能都會有所得,但能拿走多少就看個人悟性。你可以不同意這本書的很多理念,但不能否認它的啓發性。