1. 软件架构师自身需要是程序员,并且必须一直坚持做一线的程序员,绝对不应该听那些让架构师从代码里解放出来专心解决高阶问题的伪建议
2. 如果不亲身承受因系统设计而带来的麻烦,就体会不到设计不佳所带来的痛苦,接着就会逐渐迷失正确的设计方向
3. 软件架构这项工作实质上就是规划如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间相互通信的方式
4. 软件架构的目的,就是为了在工作中更好地对这些组件进行研发,部署,运行以及维护
5. 如果想设计一个便于推进各项工作的系统,其策略就是要在设计中尽可能长时间地保留尽可能多的可选项
6. 设计良好的架构可以让系统便于理解、易于修改、方便维护、并且能轻松部署
7. 基本上,所有的软件系统都可以降解为策略与细节这两种主要元素,策略体现的是软件所有业务规则与操作过程,因此它是系统真正的价值所在
8. 架构师的目标是创建一种系统形态,该形态会以策略为最基本元素,并让细节与策略脱落关系,以允许在具体决策过程中推迟或延迟与细节相关的内容
9. 一个优秀的架构师应该致力于最大化可选项数量
10. 如果有两段看起来重复的代码,它们走的是不同的演进路径,也就是说他们有着不同的变更速率和变更缘由,那么他们就不是真正的重复
11. 一个系统最消耗人力资源的是什么?系统中存在的耦合,尤其是那些过早做出的,不成熟的决策导致的耦合
12. 通过划清边界,我们可以推迟和延后一些细节性的决策,这最终会我们节省大量的时间,避免大量的问题
13. 边界应该花在那些不相关的事情中间,
14. 业务逻辑唯一需要知道的就是有一组可以用来查询和保存数据的函数,这样一来,我们才可以将数据库隐藏在接口后面
15. 我们不希望系统中某一部分发生的变更会导致其他不相关的部分出现问题,系统不应该这么脆弱
16. 依赖箭头应该由上层具体实现细节指向下层抽象的方向
17. 一个系统的架构是由一系列组件和他们之间的边界共同定义的
18. 所谓划分边界就是在这些模块之间建立针对变更的防火墙
2. 如果不亲身承受因系统设计而带来的麻烦,就体会不到设计不佳所带来的痛苦,接着就会逐渐迷失正确的设计方向
3. 软件架构这项工作实质上就是规划如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间相互通信的方式
4. 软件架构的目的,就是为了在工作中更好地对这些组件进行研发,部署,运行以及维护
5. 如果想设计一个便于推进各项工作的系统,其策略就是要在设计中尽可能长时间地保留尽可能多的可选项
6. 设计良好的架构可以让系统便于理解、易于修改、方便维护、并且能轻松部署
7. 基本上,所有的软件系统都可以降解为策略与细节这两种主要元素,策略体现的是软件所有业务规则与操作过程,因此它是系统真正的价值所在
8. 架构师的目标是创建一种系统形态,该形态会以策略为最基本元素,并让细节与策略脱落关系,以允许在具体决策过程中推迟或延迟与细节相关的内容
9. 一个优秀的架构师应该致力于最大化可选项数量
10. 如果有两段看起来重复的代码,它们走的是不同的演进路径,也就是说他们有着不同的变更速率和变更缘由,那么他们就不是真正的重复
11. 一个系统最消耗人力资源的是什么?系统中存在的耦合,尤其是那些过早做出的,不成熟的决策导致的耦合
12. 通过划清边界,我们可以推迟和延后一些细节性的决策,这最终会我们节省大量的时间,避免大量的问题
13. 边界应该花在那些不相关的事情中间,
14. 业务逻辑唯一需要知道的就是有一组可以用来查询和保存数据的函数,这样一来,我们才可以将数据库隐藏在接口后面
15. 我们不希望系统中某一部分发生的变更会导致其他不相关的部分出现问题,系统不应该这么脆弱
16. 依赖箭头应该由上层具体实现细节指向下层抽象的方向
17. 一个系统的架构是由一系列组件和他们之间的边界共同定义的
18. 所谓划分边界就是在这些模块之间建立针对变更的防火墙