代码整洁之道 读书笔记 - 第11章 系统
无论是设计系统或单独的模块,使用大概可工作的最简单方案。
将系统的构造与使用分开
1、分解main
将构造与使用分开的方法之一是将全部构造过程搬迁到main或被称之为main的模块中。
2、工厂
有时应用程序也要负责确定何时创建对象。
3、依赖注入
有一种强大的机制可以实现分离构造与使用,那就是依赖注入(Dependency Injection, DI)。
控制反转(Inversion of Contorl, IoC)在依赖管理中的一种应用手段。
控制反转将第二权责从对象中拿出来,转移到另一个专注于此的对象中,从而遵循了单一权责原则。
测试驱动系统架构
在代码层面与架构关注面分离开,就有可能真正地用测试来驱动架构。
没必要先做大设计(Big Design Up Front, BDUF)。它阻碍改进,因为心理上会抵制丢弃既成之事,也因为架构上的方案选择影响到后续的设计思路。
优化决策
延迟决策至最后一刻也是好手段。这不是懒惰或不负责;它让我们能够基于最有可能的信息做出选择。