具体描述
工程师︰我已经拜读了《Clean Code》,还有必要读《Clean Architecture》吗?
架构师︰喔,你会做砖头,那你会盖房子吗?
将近10年的等待,全球知名作家Uncle Bob终于推出新作品《Clean Architecture》,由书名很容易就能猜到,这本书和《Clean Code》一定有关。没错,这两本书是有些相同,但又有很大的不同。相同之处在于,这两本书都是在教导软体工程师如何正确开发出好的软体,甚至两本书提到的原则名称有些还是相同的。不同之处在于,即便是相同的原则,但在不同层次上使用时,要注意的地方截然不同。
总结来说,好的软体系统始于整洁的程式码(clean code),但光是这样还不够。也就是说,如果砖块做得不好,那么建筑物的架构也就不重要了。但就另一方面来说,你也能用精心制作的砖块来制造大量的垃圾,这本书就是要避免你制造垃圾。
因此,除了阅读《Clean Code》之外,你还需要阅读《Clean Architecture》!
再次地,Robert C. Martin以大师强而有力的口吻,极具说服力的文字来撰写这本书,透过这本书教您如何建构好软体的架构,釐清什么是架构,以及认清独立部署和独立开发的重要性。如果您想开发的是企业级的软体,那就千万不可错过这本书。
本书将彻底颠覆您的许多观点,例如微服务是个架构吗?C语言没有多型吗(多型是物件导向发明的吗)?C语言和C++的封装相比,谁比较完美?软体是数学还是科学?什么是测试的本质?你应该使用框架吗?关联式资料库为何会流行,是否已日暮途穷了呢?你可以先试着回答这些问题,然后在阅读本书之后,再次审思这些问题,相信大多数的人,要答对一半都很困难。
如果您自许成为一位专业的软体工程师,强烈建议您,一定要好好详读这本书。
读者评论
架构代表了塑造系统的「重要」设计决策,有多「重要」则是由因应变化的成本来衡量的。
Grady Booch ──《Object-Oriented Analysis and Design with Applications》作者
如果你认为好架构的代价是昂贵的,那不妨试试糟糕的架构。
Brian Foote and Joseph Yoder ──《Pattern Languages of Program Design 4》作者
架构是你希望在专案早期就能得到的决定,但你并不一定能比其他任何时候更容易得到它们。
Ralph Johnson ──《Design Patterns: Elements of Reusable Object-Oriented Software》作者
架构是一个假设,需要透过实作和度量来证明。
Tom Gilb ──《Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, and Software Engineering Using Planguag》作者
走得快的唯一方法就是走得好。
Robert C. Martin── 软体大师,《Clean Code》、《无瑕的程式码》系列书作者,
会做砖头有什么了不起,会盖房子才厉害。
《博硕文化》、《名家名着》 总编辑 ── 陈锦辉