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
##提供了一些新的视角,有借鉴意义。
##A clean, simple, and obvious design is a beautiful thing
##提供了一些新的视角,有借鉴意义。
##神书,开发人员必读书籍,尤其是前半本,字字珠玑。9.5
##同组的斯坦福小伙大学时上过作者的课,强烈推荐了本书。书虽薄了些,但收获不小。
##前半本有些观点跟我的观点不一致,但却很有启发,值五星。后半本更多的是工程角度,在别的书中见过类似观点。
##同组的斯坦福小伙大学时上过作者的课,强烈推荐了本书。书虽薄了些,但收获不小。
##微观设计层面讲得很全面,define errors out of existence 引人深思。宏观架构层面需要参考 Design Data-Intensive Applications。
##看完我想到一个词,“斟酌”。在软件设置的每个阶段都要反复去斟酌,架构设计、数据结构、接口、实现、方法的定义与实现,一段业务逻辑一行注释一个变量都要反复斟酌。总之就是要把软件当成一件艺术品一般去雕刻,一切的一切为了控制软件的复杂性。虽然对于大部分CRUD boy来说都是需求驱动、工期驱动。但请切记,写代码要反复斟酌,这一定可以让你在CRUD boys里面脱颖而出。