我的架构思想(三十):架构是过程,而非结果——架构的表达与逻辑(从暗示、隐喻,到抽象概念的表达)

阅读数:17 2019 年 10 月 12 日 17:05

我的架构思想(三十):架构是过程,而非结果——架构的表达与逻辑(从暗示、隐喻,到抽象概念的表达)

在与朋友的饭局中,我常常被问道:你能吃辣椒吗?我的回答一般是:我是四川人。我从来没有因为这样的问答而在饭局中遇到尴尬——朋友们都能欣然选择一些口味偏辣的食物,毫不犹豫。

好吧,我承认我很喜欢辛辣食物。

但是我很多次反思过这个问题,即:“我是四川人”这个答案到底表明我是能吃辣椒呢,还是表明我不能吃?就其逻辑来说,这个答案并不能表达我的饮食偏好;然而就彼时彼事的实效而言,却没有人误解。

可见所谓“暗示”,在日常生活中常常是有效的。但是这首先应当基于双方有类似的阅历背景,例如:

  • “能吃辣椒吗”这个提问在饭局中通常并不是询问你能否直接食用单个辣椒,而是询问你对辛辣食物的接受程度。
  • “能吃”对程度的表达是很模糊的。能吃多少,以什么样的形式吃,这些信息都不能在设问中得到。通常,如果当时是在川菜馆,那么回答“能”的人心里多少要犹豫一下;而如果吃的是杭帮菜,作这样回答的人就多了些底气。
  • “我是四川人”这个回答是说给了解四川人的普遍饮食习惯的人听的。如果面前有几位外国朋友,那么他们通常会对上述的问答茫然无解。
  • 问答双方其实都了解这样的一些事实,即“我是四川人”这个回答是在暗示“我与大多数四川人一样”,而非陈述我的籍贯;并且,结合当前的环境,所谓“与大多数四川人一样”的性质是针对辛辣食物而言的;最后,就这一性质而言,普遍性的情况,亦即是事实是:偏好辛辣食物。

如果上述是一个推理过程,那么整个过程包含了许多背景知识和事实推定。其中最重要的一项假设是:我认为提问者与我有相同的知识背景,以及能够做出相同的事实推定。另外,也正如这个例子所提及的,我们在某些情况下其实可以接受一些“程度模糊的”信息。在上面的问答中,最终辣一点或淡一点,都无妨整个饭局的质量;问答者之间,本身也都没有对“何种程度的辣”有一个同一的标准。

与此类似的,我们的架构过程中也有一些信息很模糊。例如,我们前面在讨论“办公系统是一个什么样的系统”时说:

……我们需要更深层次地设定“被规则化的”的这个系统本身。总结我对这一设定的考虑,它将会是:

  • 与现实系统看起来类似的、
  • 具有同等的组织容量的、
  • 基本符合现实系统的运作逻辑的
    一个软件系统。

注意,在这里用到的类似、同等与基本(符合),都是很模糊的程度用词。

所以,总的来说,我承认架构过程中存在大量的背景知识和推定事实,并且信息表现得可能会模糊而含混。这是因为架构过程本身就是对目标系统中一些不太明晰的概念(边界、联接关系等)渐次清晰的过程,所以架构过程中的模糊信息是必然存在的,否则根本不必去架构它。

但是这并不妨碍我们要求对架构的表达必须清晰准确1。因为实施过程必将依赖架构的结果,亦即是架构的最终表达与决策。架构表达是在架构过程的阶段性成果的基础上所进行的、尽可能准确而清晰的叙述。如果它不能尽量准确地反映架构过程的阶段性成果,那么它也就不能作为下一个阶段(无论是实施还是新的架构迭代)的有效依据。换言之,如果对架构结果的表达是模糊的,则该结果是无意义的。

1 《人月神话》对这一问题也有过充分的讨论,其基本观点是“由于精确性的考虑,我们需要形式化的设计定义,同样,我们需要记叙性定义来加深理解”。

那么,让我们从一个最简单的表达开始。请问:在白纸上画下一条线,意味着什么?

评论

发布