知识卡片

架构第四原则:过程之于结果,并没有必然性

结构图卡

内容

丰田模式的核心原则之一是”正确的步骤会产生正确的结果”,可以用逻辑表达:把正确记为1、错误记为0,一种模式是”1 and 1 and 1…=1”——只有所有步骤都正确,结果才正确;另一种是”1 and 1 and (0 xor !0)…=1”——通过对错误的逆向补偿也能得到正确结果。丰田模式表面否定后一种模式,但实际上恰恰是通过”修正错误”这一机制去构筑前一种模式的:传统生产过程要求检测与生产同属一个阶段的两个子过程,错误修正也应处于同一个子过程内完成,否则修正的时间成本会取决于差次品流入后续工序的时间点。生产过程中修正过多会导致周期变长、品质下降,所以传统生产型企业专门设立允许大量试错的”产品研制”阶段,从而交付一个真正”正确的步骤”用于后续生产。但架构领域目前还不存在真正意义上的”生产过程”:形成论只约定了架构形成的阶段性以及前一阶段对后续阶段的影响(”映射”与”约束”),却始终没有一套可供检测的自我检验标准,也就是说架构目前缺乏”正确的步骤”赖以成立的检测机制这个前提。组成论可以在一定程度上弥补这一点——严格形式化的架构语言原则上可以建立错误检测与修正机制(比如层次架构里”不允许向上依赖”这条规则本身就是一种可检测的语法约束),当把架构视为静态映像时,这个映像的正确性是可以被验证的;但这种可验证性只属于组成论视角下的静态架构,形成论视角下的过程实施仍然缺少相应的保障。因此,即便通过正确的方法、过程和工具产出了一个组成论意义上正确的架构,也无法据此反过来证明形成论意义上的过程正确性——”正确形成+正确组成”并不等于正确的架构。

结构图

flowchart TB
  A["丰田模式:正确的步骤产生正确结果<br/>但实际靠'修正错误'机制去构筑这一结果"]
  A --> B["传统生产:检测与生产同阶段<br/>修正在产品研制阶段完成,交付'正确步骤'"]
  B -.类比失效.-> C["架构领域:形成论只有'映射与约束'<br/>缺少可检测的自我检验标准"]
  D["组成论:静态架构语言<br/>可建立错误检测机制(如'禁止向上依赖')"]
  D --> E["组成论意义上的架构正确性可验证"]
  E -.无法反推.-> F["形成论意义上的过程正确性仍无保障<br/>→正确形成+正确组成≠正确的架构"]

参考来源

- 位置:《我的架构思想:基本模型、理论与原则》第7章《架构原则》之"7.4 架构第四原则:过程之于结果,并没有必然性"(源文件:_epub-src/ch018.xhtml) - 结论依据:原文说明丰田模式"事实上是通过后一种模式来构筑前一种模式的,亦即是说,'修正错误'是获得一个正确的过程所必需的步骤……我们所讨论的形成论事实上只约定了形成的阶段性……但未能得到阶段下自我检测的标准……即使我们能够通过正确的方法、过程与工具,去生产出一个正确的、组成论视角下架构,也不能以此为据来证明形成论下的方法正确性", 直接支撑本卡关于过程与结果无必然性的结构图。 - 原始内容:我们尚未能找到过程正确性之于结果的必然关系,因此"正确形成+正确组成"并不等于正确的架构。