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
##短小精悍,字字珠玑。
评分##复杂度
评分##"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..."/这本书着重强调软件系统设计的目标是控制住系统内部的复杂度。比较少讨论功能和性能。
评分##神书,开发人员必读书籍,尤其是前半本,字字珠玑。9.5
评分##引用最后一章第一句话:This book is about one thing: complexity。虽然标题里带有"philosophy",但其实书里介绍的大部分内容还是挺直觉。关于异常和注释的两章反而让我收获最多
评分##微观设计层面讲得很全面,define errors out of existence 引人深思。宏观架构层面需要参考 Design Data-Intensive Applications。
评分##短小精悍,字字珠玑。
评分##无论是刚入行的程序员还是项目leader都非常值得读的一本书。
评分##神作啊。简直字字珠玑。