通读完《架构整洁之道》全书,回过头再来写总结和感想,真不是一件容易的事。之前在《禅与摩托车维修艺术再探》里我说,写这类文字是一个合上书又翻开书的过程,合上书回想主要收获,翻开书做有重点的二次阅读。这篇就是翻开书。
#组件耦合
这一章节除了已经广泛应用的每日构建外,主要讲了三个原则:无依赖环原则、稳定依赖原则、稳定抽象原则。
到这里我想到这些原则、规则、law与程序员之间的关系。作为一名程序员,这些原则应该要内化掉,了解原则之后至少要指导一次编码实践,在实际需求中这些原则应该共同组成程序员的良质(《禅与摩托车维修艺术》),指导程序员追求更加有序、节省人力的设计方法。作为一名TL、SE或者架构师,我逐渐意识到,这些原则是需要有意识地收集、整理、举证、实践的,因为这类角色经常需要去给别人讲东西,经常需要推动一些改革,工作重点中有一大部分都是与人打交道,已经不止是应用,更多地变成了一本行走的书,我想架构师团队应该至少把不同方面不同角度的原则整理出来,将零碎的知识点归纳出来,作为指导设计和健康度评估的checklist。
组件依赖关系图中不应该出现环。组件间难道不是通过接口通信的吗?怎么会出现环呢?我意识到我认为的“组件”和这里说的“组件”出现了不一致。《组件》一章说“组件是软件的部署单元”,可以独立部署,也可以做成插件进行动态加载。我想《组件耦合》一章里说的组件,应该是插件,只有插件才会出现互相依赖的情况,可独立部署和发布的组件一般都是依赖于接口的。自然也就不会出现依赖环。依赖关系图可以通过structure 101或者understand这类软件自动获取,用以评估当前组件间依赖关系