《架构整洁之道》读后笔记

书封面.jpg
1.软件架构的职责:创建出一个可以功能实现起来容易,修改起来简单,扩展起来轻松的软件架构
2.面向对象编程就是以多态为手段来对源代码中的依赖关系进行控制的能力,这种能力让软件架构师可以构建出插件式架构,让高层策略性组件与底层实现性组件相分离,底层组件可以被编译成插件,实现独立于高层组件的开发与部署
3.开闭原则主要目标:让系统容易扩展,同时限制其每次被修改影响的范围;实现方式是通过将系统划分为一系列组件,并且将这些组件间的依赖关系按层次结构进行组织,使得高阶组价不会因为低阶组件(例如view)被修改而受到影响
4.依赖反转原则告诉我们在源代码层次的依赖关系中就应该多引用抽象类型,而非具体的实现;我们修改抽象接口的时候,一定也会修改对应的具体的实现,但反过来,当我们修改具体的实现时却很少需要去修改相应的抽象接口,所以我们认为接口比实现更稳定
5.接口隔离规则告诉我们任何层次的软件设计如果依赖了它并不需要的东西就会带来意外的麻烦,解决方法:将不同的操作隔离成接口来解决
6.组件构建原则:复用/发布原则;共同闭包原则(将同时修改且相同目的而修改的类放到同一个组件中),共同复用原则(将经常共同复用的类或模块放到同一个组件中);
7.组件之间要打破循环依赖关系:可以使用依赖反转原则;创建一个新的组件
8.架构师普遍利用的设计原则:将软件的高层策略与其底层实现隔离开,并尽可能推迟与实现细节相关的决策,越晚越好,这样可以有更多可选项
9.离输入输出距离最远的组件作为高层组件,底层组件应该依赖高层组件,底层组件应该成为高层组件的插件
10.业务逻辑应该保持纯净,不要参杂用户界面,或者使用数据库相关的东西;业务逻辑是整个系统的核心,其他底层的实现应该以插件的形式接入系统
11.一个良好的架构设计应该围绕用例展开,这样的架构设计可以脱离框架工具,使用环境的情况下完整描述用例,好比一个建筑设计的目标首先满足住宅的使用需求,而不是确保用什么砖建这个房子,良好的架构设计尽可能的允许用户推迟延后用什么框架,数据库,web服务以及其他与环境相关的工具
12.强大的可测试行是一个架构的设计是否优秀显著衡量标准之一,将系统的架构划分边界,划分容易测试的部分,难以测试部分,可以大幅提高系统的可测试性
13.架构设计的任务就是找到高层策略与底层细节之间的架构边界,同时保证这些边界遵守依赖关系规则
14.如果一个系统的代码只能在目标硬件上测试,那么它的开发过程会变得非常艰难,别让你的代码变为固件(随硬件的改变而改变)

你可能感兴趣的:(《架构整洁之道》读后笔记)