知识卡片

使用结构必须是无环层次才能支持增量构建

普通读书笔记卡 · 1803.c

内容

“使用结构”描述”程序A要工作,程序B必须先存在”的依赖,有价值的使用结构应分层无环:最底层不依赖任何人,每层建立在下层之上。一旦出现环(A依赖B、B又依赖A),环内所有程序就必须整体完成,不能拆开单独构建测试,破坏了”先做子集就能跑”的能力,这是架构师主动追求无环而非放任代码自然演化的原因。

参考来源

- 位置:《架构之美》第1章《架构概述》1.3.2节《使用结构》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0097.xhtml) - 结论依据:原文明确"在软件系统的使用结构中,期望的属性是它定义了一种层次结构,这意味着其中不出现环。如果在使用关系中出现环,那么环中所有程序都必须存在且正常工作,才能让其他的程序正常工作……子集必须要么包含全部程序,要么都不包含"。 - 原始内容:在软件系统的使用结构中,期望的属性是它定义了一种层次结构,这意味着其中不出现环。如果在使用关系中出现环,那么环中所有程序都必须存在且正常工作……子集必须要么包含全部程序,要么都不包含。