我们一起来读书吧 关注:152贴子:2,614
  • 0回复贴,共1

《架构整洁之道》26-29章读书笔记

只看楼主收藏回复

1. 所有系统重都至少有一个组件,main组件,负责创建、协调、监督其他组件的运转
2. main组件是最细节化的部分,即最上层的策略、逻辑,是整个系统的初始点,除了系统不会再有其他组件依赖它
3. main组件的任务是创建所有的工厂类、策略类以及其他全局设施,并最终将系统的控制权转交给最高抽象层代码处理
4. main组件也可以视为应用程序的插件,负责设置起始状态、配置信息、加载外部资源,最后转交控制权,因此可以为一个系统设计多个main组件,让他们对应不用的配置
5. 架构设计的任务就是找到高层策略与低层细节之间的架构边界,同时保证边界遵守依赖关系规则
6. 所谓服务本身只是一种比函数调用方式成本稍高,分割应用程序行为的一种方式,与系统架构无关
7. 按功能切分服务的方式,在跨系统的功能变更时是最脆弱的!
8. 应该一开始就设计一些列多态化的类,以应对将来新功能的扩展
9. 服务边界并不能代表系统的架构边界,服务内部的组件边界才是
10. 系统架构是由系统内部的架构边界及边界间的依赖关系所定义的,与各组件间调用和通信方式无关
11. 架构=组件+边界+依赖关系
12. 测试组件也要遵守依赖关系原则,他们始终向内依赖,且系统中没有其他组件依赖他们
13. 测试组件存在是为了支持开发过程,而不是运行过程
14. 修改一个通用的系统组件可能会导致成千上百个测试出问题,我们通常将这类问题成为脆弱的测试问题
15. 软件设计第一原则,是不变的,就不要依赖于多变的东西
16. 软件应该是一种使用周期很长的东西,固件则会随着硬件演进而淘汰过时
17. 让我们的代码活的更久一点!
18. 软件构建过程的三个阶段:1 先让代码工作起来 2 然后再试图将它变好 3 最后再试着让它运行的更快
19. 在实践中学习正确的工作方法,然后再重写一个更好的版本
20. 是修改一堆复杂的现有代码?还是按照接口和行为定义写一套新代码?
21. 拒绝条件性编译语句,拒绝if else


IP属地:北京1楼2023-01-08 18:24回复