我的架构思想(十七):你所关注的系统——最初的事实(反思那些事实与问题)

阅读数:22 2019 年 10 月 12 日 16:58

我的架构思想(十七):你所关注的系统——最初的事实(反思那些事实与问题)

在此前的讨论中,除了对基本的事实与真相的识别之外,大概涉及三种思维方法:设定、试探和归纳。而本质上来说,这三种思维的过程也是模型与概念抽取的过程。由此所得的,是一个可以用来作为基础并进一步讨论的现实系统的映像:软件系统的架构。

但这个映像不是解,而是讨论解的一个工具。

我们讨论过“路人甲过河”的问题16。我们说,在路人甲过河之后留下了“船”,如果能复制“船和行船的方法”这些知识,那么我们可以用相同的方法过河。

16 这是在《程序原本》“第 8 章 执行体与它在执行过程中的环境”中提出的问题。

但是,有一些问题被这一过程给掩盖了。其一,甲如何造船?其二,甲在面临问题时,是如何得到“造船”这个解的?第一个问题中所包含的知识可能已经佚失了——当我们已然面临“一艘船”这个事物时,这是相当有可能的;而第二个问题中的知识则是不可复制的。

大多数情况下,我们并不去追究这两个问题。这是因为当有一艘船在我们面前时,这两个问题就显得与“过河”无关了。而这也是典型的程序员思维17:关注工具之用。

17 在《大道至简》中我将之称为“工匠思维”,那是更为确切和形象的。

架构师所面临的往往是“河”这个事实,以及“过河”这个问题。架构师的思维应当是基于对事实与问题的思考,而非基于可能既有的、已得的“船”18的应用与设问。

18 仅以架构的实作而论,我们是有许多这样的船的,如三层架构、COM 架构、数据流架构等。

有了船,我们的衣服不会再湿;但如果我们愿意湿掉衣服,我们仍然可以过得河去。

河其实未必很深。

知道“河其实未必很深”,是大智慧。

评论

发布