知识卡片
设计与架构本质上没有区别,只是同一连续体的不同层级
内容
“架构”常被理解为排除底层实现细节的高层级讨论,”设计”则指具体的底层组织结构和实现细节,但这种二分在真实工作中站不住脚:以建筑设计为例,房屋的架构图既包含形状、外观、房间布局这些”高层”信息,也同时详细标注每个插座开关的具体位置、壁炉和热水器安装点、墙体地基的建造说明——底层设计细节和顶层架构信息共同组成同一份架构文档,缺一不可。软件设计同理:所谓的底层和高层本身是一系列决策组成的连续体,并没有清晰的分界线。这个判断很重要,因为它否定了”先做高层架构决策、细节可以之后随便填”的直觉——如果底层细节和高层决策本就是同一件事的两个层级,那么把架构设计想象成一次性的顶层规划、把实现细节当作可以事后草草收尾的执行环节,本身就是一种误判问题结构的做法。发散:这也解释了为什么”先写个粗糙版本、以后重构”的承诺往往落空——如果设计和架构是连续体,”以后再做设计”这句话本身在逻辑上就说不通。
参考来源
- 位置:《架构整洁之道》第1章《设计与架构究竟是什么》(源文件:_epub-src/text/part0010_split_001.html)
- 结论依据:原文用建筑设计图既包含房屋形状布局又包含插座、壁炉、热水器等底层细节的类比,说明底层设计与顶层架构共同组成同一份文档、二者是连续体而非二分,直接支撑本卡片结论。
- 原始内容:架构图里实际上包含了所有的底层设计细节,这些细节信息共同支撑了顶层的架构设计……软件设计也是如此。底层设计细节和高层架构信息是不可分割的……所谓的底层和高层本身就是一系列决策组成的连续体,并没有清晰的分界线。