
元数据
元数据
[!abstract] 架构整洁之道
架构整洁之道|200 - 书名: 架构整洁之道
- 作者: 罗伯特 C. 马丁
- 简介: 《架构整洁之道》是创造“Clean神话”的Bob大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。本书分为6 部分,第1部分纲领性地提出软件架构设计的终极目标,描述软件架构设计的重点与模式;第2~4部分从软件开发中三个基础编程范式的定义和特征出发,进一步描述函数、组件、服务设计与实现的定律,以及它们是如何有效构建软件系统的整体架构的;第5部分从整洁架构的定义开始,详细阐述软件架构设计过程中涉及的方方面面,包括划分内部组件边界、应用常见设计模式、避开错误、减少成本、处理特殊情况等,并以实战案例将内容有机整合起来;第6部分讲述具体实现细节;附录则透过作者数十年的软件从业经历再次印证本书的观点。
- 出版时间: 2018-09-01 00:00:00
- ISBN: 9787121347962
- 分类: 计算机-计算机综合
- 出版社: 电子工业出版社
- PC地址:https://weread.qq.com/web/reader/480322f072021a3248038c8
高亮划线
第1部分 概述
📌 想象一下,世界上有成群的初级程序员挤在大公司的隔板间里,日复一日地用蛮力将记录在大型问题跟踪系统里的巨型需求文档一点点转化为能实际运行的代码。他们写出的代码可能不够优美,但是确实能够正常工作。因为创造一个能正常运行的系统——哪怕只成功运行一次——还真不是一件特别困难的事。
⏱ 2024-05-10 20:17:50 ^33692210-58-548-713
第1章 设计与架构究竟是什么
📌 首先我要明确地说,二者没有任何区别
⏱ 2024-05-10 20:38:08 ^33692210-59-808-825
📌 软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求
⏱ 2024-05-10 20:44:51 ^33692210-59-1663-1696
第5章 面向对象编程
📌 面向对象编程就是以多态为手段来对源代码中的依赖关系进行控制的能力,这种能力让软件架构师可以构建出某种插件式架构,让高层策略性组件与底层实现性组件相分离,底层组件可以被编译成插件,实现独立于高层组件的开发和部署。
⏱ 2021-05-29 10:54:55 ^33692210-16-10849-10954
第6章 函数式编程
📌 软件架构师应该着力于将大部分处理逻辑都归于不可变组件中,可变状态组件的逻辑应该越少越好。
⏱ 2021-05-29 12:08:07 ^33692210-17-4552-4596
第7章 SRP:单一职责原则
📌 任何一个软件模块都应该只对某一类行为者负责。 ^33692210-19-1355-1377
- 💭 单一职责原则
- ⏱ 2021-05-30 17:54:13
第8章 OCP:开闭原则
📌 设计良好的计算机软件应该易于扩展,同时抗拒修改。
换句话说,一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展
⏱ 2021-05-30 17:56:15 ^33692210-20-734-824
📌 OCP是我们进行系统架构设计的主导原则,其主要目标是让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式是通过将系统划分为一系列组件,并且将这些组件间的依赖关系按层次结构进行组织,使得高阶组件不会因低阶组件被修改而受到影响。
⏱ 2021-05-30 17:56:42 ^33692210-20-4856-4971
第9章 LSP:里氏替换原则
📌 第9章 LSP:里氏替换原则
⏱ 2021-05-30 17:58:13 ^33692210-21-427-441
📌 如果对于每个类型是S的对象o1都存在一个类型为T的对象o2,能使操作T类型的程序P在用o2替换o1时行为保持不变,我们就可以将S称为T的子类型。
⏱ 2021-05-30 17:58:38 ^33692210-21-717-809
📌 正方形/长方形问题
⏱ 2021-05-30 17:58:56 ^33692210-21-1499-1508
第10章 ISP:接口隔离原则
📌 任何层次的软件设计如果依赖了它并不需要的东西,就会带来意料之外的麻烦。
⏱ 2021-05-30 20:33:45 ^33692210-22-2769-2804
第13章 组件聚合
📌 构建组件相关的基本原则
⏱ 2021-05-30 22:14:36 ^33692210-26-772-783
第14章 组件耦合
📌 每周构建
⏱ 2021-05-30 22:34:05 ^33692210-27-1298-1302
📌 衡量抽象化程度
下面,假设A指标是对组件抽象化程度的一个衡量,它的值是组件中抽象类与接口所占的比例。那么:
Nc:组件中类的数量。
Na:组件中抽象类和接口的数量。
A:抽象程度,A=Na÷Nc。
A指标的取值范围是从0到1,值为0代表组件中没有任何抽象类,值为1就意味着组件中只有抽象类。
⏱ 2021-05-30 22:38:15 ^33692210-27-13708-13993
📌 如果我们将两个“设计良好”的组件绘制在该图上,那么最稳定的、包含了无限抽象类的组件应该位于左上角(0,1),最不稳定的、最具体的组件应该位于右下角(1,0)。

⏱ 2021-05-30 22:40:46 ^33692210-27-14119-14354
第5部分 软件架构
📌 件架构师自身需要是程序员,并且必须一直坚持做一线程序员,绝对不要听从那些说应该让软件架构师从代码中解放出来以专心解决高阶问题的伪建议。不是这样的!软件架构师其实应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进 ^33692210-28-945-1085
- 💭 坚持做一线程序员 - ⏱ 2021-06-05 07:30:29
读书笔记
第7章 SRP:单一职责原则
划线评论
📌 任何一个软件模块都应该只对某一类行为者负责。 ^37992928-7qGHPas7y
- 💭 单一职责原则
- ⏱ 2021-05-30 17:54:38
第5部分 软件架构
划线评论
📌 件架构师自身需要是程序员,并且必须一直坚持做一线程序员,绝对不要听从那些说应该让软件架构师从代码中解放出来以专心解决高阶问题的伪建议。不是这样的!软件架构师其实应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进 ^37992928-7qPaP8hx4
- 💭 坚持做一线程序员
- ⏱ 2021-06-05 07:30:48