架构整洁之道

【美】Robert C. Martin(罗伯特 C. 马丁)

出版时间

2018-09-01

ISBN

9787121347962

评分

★★★★★
书籍介绍

《架构整洁之道》是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。《架构整洁之道》分为6部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、降低成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证《架构整洁之道》的观点。

对于每一位软件研发从业人员——无论从事的是具体编码实现、架构设计,还是软件研发管理,《架构整洁之道》都是不可或缺的。

AI导读
核心看点
  • 阐述架构终极目标:以最小人力成本满足构建与维护需求
  • 系统剖析结构化、面向对象及函数式编程范式对架构的影响
  • 详解SOLID原则与组件构建,强调依赖方向与边界隔离
适合谁读
  • 寻求提升代码质量与架构设计能力的软件研发人员
  • 希望深入理解SOLID原则及整洁架构理念的中高级开发者
  • 关注软件长期可维护性与降低技术债务的架构设计师
读前提醒
  • 本书侧重架构理念与原则,非具体技术框架的操作手册
  • 建议结合《代码整洁之道》阅读,以建立完整的质量观
  • 需具备一定编程经验,否则可能觉得理论抽象难落地
读者共识
  • Bob大叔经验之谈,大道至简,对架构边界与依赖讲解透彻
  • 部分读者认为内容偏向理论,实战派觉得不如重构类书籍实用
  • 虽被指有炒冷饭嫌疑,但体系化梳理对理解设计决策逻辑有益

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "人渐渐地发现,这个世界上有很多问题就像翘翘板一样,只能要一边,这一边上去了,另边就下来了。就像要么用空间换时间,要么用时间换空间一样,你很难同时满足空间和时间要求的“双利解”;就像CAP的三选二的理论一样,这个世界不存在完美的解方案无论什么方案都有好的一面和不好的一面。而且这些工程师还还渐渐发现,每当引入一个新的技术来解決一个已有的问题时,这个新的技术就会带来更多的问题,问题就像有一个生命体一样,它们会不断地繁殖和进化。"
  • "《架构整洁之道》孙宇聪译,软件架构参考书籍。 第一章 软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。 软件开发的核心特点:要想跑得快,先要跑得稳。 过度自信只会使得重构设计陷入和原项目一样的困局中。 研发团队最好的选择是清晰地认识并避开工程师们过度自信的特点,开始认真地对待自己的代码架构,对其质量负责。 要想提高自己软件架构的质量,就需要先知道什么是优秀的软件架构。而为了在系统构建过程中采用好的设计和架构以便减少构建成本,提高生产力,又需要先了解系统架构的各种属性与成本和生产力的关系。 第二章 软件系统两个价值维度-----行为价值和架构价值。 软件架构师这一职责本身就应"
  • "软件架构师可以根据相关函数被修改的原因、修改的方式及修改的时间来进行分组隔离,并将这些相互隔离的函数分组整理成组件结构,使得高阶组件不会因低阶组件被修改而收到影响"
  • "这些工程师们普遍用一句话来欺骗自己:“我们可以未来再重构代码,产品上线最重要!”但是结果大家都知道,产品上线以后重构工作就再没人提起了。市场的压力永远也不会消退,作为首先上市的产品,后面有无数的竞争对手追赶,必须要比他们跑得更快才能保持领先。 所以,重构的时机永远不会再有了。工程师们忙于完成新功能,新功能做不完,哪有时间重构老的代码?循环往复,系统成了一团乱麻,生产效率持续直线下降直至为零。"
  • "这就是科学理论和科学定律的特点:它们可以被证伪,但是没有办法被证明。 但是我们仍然每天都在依赖这些定律生活。开车的时候,我们就等于是在用性命担保F=ma是对世界运转方式的一个可靠的描述。每当我们迈出一步的时候,就等于在亲身证明F=Gm1m2/r2是正确的。 科学方法论不需要证明某条结论是正确的,只需要想办法证明它是错误的。如果某个结论经过一定的努力无法证伪,我们则认为它在当下是足够正确的。 当然,不是所有的结论都可以被证明或者证伪的。举一个最简单的不可证明的例子:“这句话是假的”,非真也非伪。 最终,我们可以说数学是要将可证明的结论证明,而与之相反,科学研究则是要将可证明的结论证伪。"
  • "根据上述讨论,我们可以得出一个无法逃避的结论:组件结构图是不可能自上而下被设计出来的。它必须随着软件系统的变化而变化和扩张,而不可能在系统构建的最初就被完美设计出来。"
  • "首先,软件架构师自身需要是程序员,并且必须一直坚持做一线程序员,绝对不要听从那些说应该让软件架构师从代码中解放出来以专心解决高阶问题的伪建议。不是这样的!软件架构师其实应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。也许软件架构师生产的代码量不是最多的,但是他们必须不停地承接编程任务。如果不亲身承受因系统设计而带来的麻烦,就体会不到设计不佳所带来的痛苦,接着就会逐渐迷失正确的设计方向。"
  • "正如我们之前所说,架构师们所追求的目标是最大限度地降低构建和维护一个系统所需的人力资源。那么我们就需要了解一个系统最消耗人力资源的是什么?答案是系统中存在的耦合一一尤其是那些过早做出的、不成熟的决策所导致的耦合。 那么,怎样的决策会被认为是过早且不成熟的呢?答案是那些决策与系统的业务需求(也就是用例)无关。这部分决策包括我们要采用的框架、数据库、Web服务器、工具库、依赖注入等。在一个设计良好的系统架构中,这些细节性的决策都应该是辅助性的,可以被推迟的。一个设计良好的系统架构不应该依赖于这些细节,而应该尽可能地推迟这些细节性的决策,并致力于将这种推迟所产生的影响降到最低。"
作者简介
Robert C. Martin,Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域的资深顾问。他是Designing Object-Oriented C++ Applications Using the Booch Method 以及 Jolt 获奖图书 Agile Software Development, Principles,Palterns,and Practices(中译版《敏捷软件开发:原则、模式与实践》)《代码整洁之道》等畅销书作者。 译者简介 孙宇聪:曾在谷歌工作多年,任谷歌高级SRE(Senior Site Reliblity Engineer),前Coding.net 技术负责人。
目录
第1部分 概述
第1章 设计与架构究竟是什么 3
目标是什么 4
案例分析 5
本章小结 11

显示全部
用户评论
我现在非常不喜欢看这种“理论”书,包括重构这类的,主要有几点:阐述的都是一些实验室的理念和玩具型的代码、国内互联网实战派遥遥领先这些理论知识,加上自己入行8年几乎已经不需要这种书籍对我产生什么波澜了
控制反转、控制反转、以及为啥一个叫Robert C Martin的人老被人叫Bob大叔?
翻过一座山,看它,此中有真意
整体上作者是用简单、一致的原则来描述系统架构从底层代码到高层设计的方法。
是也乎,( ̄▽ ̄) 没有隔壁代码简洁之道有用... 架构整洁, 其实, 多数情况, 和开发无关... 社会学的权力 PK 太多了... 所有构想好的架构, 都将在产品的无限肿胀下完全崩溃... 所以, 有 OOP/ODD/DDD/... 各种流派... 其实, 都不过是借口. 将产品功能边界夯死, 一切都将不同.
介绍了一些编程范式:设计原则以及软件架构,里面说的组件、边界以及弱化一些实现细节,确实是架构应该考虑的,而不是一开始就想如何实现。
从第 4 部分-组件构建原则一节就开始看不太懂了,工作中慢慢体会,再回头重看这本书。
幽默
架构最重要的边界、依赖,讲的清晰透彻。架构设计必读,推荐!
疫情居家期间看完的第二本技术书籍。
下载
收藏