《代码整洁之道》笔记——第十一章:系统
1、软件系统应将启始过程和启始过程之后的运行时逻辑分离开,在启始过程中构建应用对象,也会存在互相缠结的依赖关系。
2、将构造与使用分开的方法之一是将全部构造过程搬迁到一个专门的模块中,设计系统的其余部分时,假设所有对象都已正确构造和设置。
3、有时应用程序也要负责确定何时创建对象,在这种情况下,可以使用抽象工厂模式让应用自行控制何时创建对象。
4、在依赖管理情景中,对象不应负责实体化对自身的依赖。可使用依赖注入解决。
5、“一开始就做对系统”纯属神话。反之,我们应该只去实现今天的用户故事,然后重构,明天再扩展系统、实现新的用户故事。
6、在代码层面与架构关注面分离开。
7、没必要先做大设计(Big Design Up Front, BDUF)。实际上,BDUF甚至是有害的,它阻碍改进,因为心理上会抵制丢弃既成之事,也因为架构上的方案选择影响到后续的设计思路。
8、模块化和关注面切分成就了分散化管理和决策。
9、明智使用添加了可论证价值的标准。创立标准的过程有时漫长到行业等不及的程度,有些标准没能与它要服务的采用者的真实需求相结合。
10、系统需要领域特定语言(Domain-Specific Language, DSL)。
p.s. 这一章的术语有点多,快速浏览一遍看得我有点懵,以后有空再重新看一下这章吧。