复杂系统的有界上下文和聚合结构是如何定义的?


本文是复杂性领域权威著作保罗·西利亚斯(Paul Cilliers)的《至关重要的复杂性》摘录,入门人工智能或DDD建模必读书籍!
在一个不确定非线性世界中,我们无法追踪清晰的因果链,现在看来似乎不重要的事情可能在以后变得至关重要,如蝴蝶效应。我们的模型必须以某种方式“构架”问题,而这种构架却不可避免地会引入失真。
所谓以某种方式构架实际是寻找一些约束条件,但是这些约束条件是在限制降低各种可能性,从而自身成为自己的约束约束。
如果基于这些约束构架了一个框架,使您试图围绕该框架建立对复杂系统的描述。但是,在处理真正复杂性时,这些框架却无法胜任。
复杂的系统既不是是同一种类型homogeneous的结构,但也不是混沌的。它们是以组件交互作用模式体现的结构。这些结构中的某些结构可以稳定且寿命长(因此更容易被捕获或建模),而另一些结构则可以是易变的和短暂的。
这些结构也以复杂的方式交织在一起。我们发现各种规模的结构。为了了解掌握这些结构有多么困难,有必要研究一下复杂系统的边界以及其中的层次结构的作用。
 
有界上下文的定义
边界:处理边界问题的一种方法是引入“操作闭合”的概念。为了使系统保持其标识,它必须(在闭合内部)复制自身。这些论点通常源于Maturana和Varela关于自动生成的工作。
应该注意不要过分强调边界的闭合封闭。复杂系统的边界一旦“涌现emerged/出现”就无法明确定义。边界同时是系统本身活动的功能和所涉及描述策略的产物。
我们永远无法确保我们已经明确地“found发现”或“define定义”了它,因此闭合系统并不是可以客观描述的。(它是一种主观和客观结合处的边界)
我们经常陷入将边界视为将一件事与另一件事分开的事物的陷阱。我们应该认为边界是一种被绑定的构成或组成。这种转变有助于我们将边界视为一种赋能激活的事物,而不是被限制被局限的事物。
banq:这也是“有界上下文”与“限界上下文”两种翻译的区别(虽然它们都是Bounded Context的中文翻译),“有界”的“有”是一种有无的赋能激活概念,而“限界”是被限制被局限的概念,限界上下文是一种静态思维的名词,
原文:
We often fall into the trap of thinking of a boundary as something that separates one thing from another. We should rather think of a boundary as something that constitutes that which is bounded. This shift helps us see the boundary as something enabling rather than as confining.
在严格组织的系统中,我们永远不会远离边界。
如果系统的各个组件之间互连紧密,那么从任何组件到系统“外部”的距离总是很短。因此,没有系统“安全的内部”,边界是被折叠重叠的,或者系统可能仅由边界组成。
banq:这里类似DDD的聚合概念,聚合是一种互连紧密的动态关系,不是静态的组合关系,只有动态关系才能保证聚合内部逻辑的一致性。
一切总是与相互以及与环境互动和接口; “内部”和“外部”的概念从来都不是简单的或不受争议的。
 
层次结构与聚合
复杂的系统离不开层次结构。层次结构建立了明确的通信路径。如果系统是分层的,则可以开发一种算法来确保信息从A到B。
banq:聚合内部是有层次的,从聚合根实体到其他实体。
复杂的系统不是那种同质同源同类型(homogeneous)的东西。它们具有结构(不同类型的实体组成的结构,一个实体代表一种同种类型),而且这种结构是不对称的。有带有功能性小段落,要使它们完全存在,就必须有某种形式的层次结构。
banq:这是聚合和实体的区别所在,同一种类型(homogeneous)的东西可以使用一种实体类型来表示,但是聚合是多种不同类型的实体组成的。
但是,当这些层次结构被定义得太清晰或太永久时,就会出现问题。
与边界的概念类似,不能仅根据明确定义的层次结构来描述复杂系统的结构。这是因为复杂性的结构通常是分形的(分形理论,雪花是由类似雪花自己结构一样的分支组成的),在所有尺度上都有结构。
系统生命力的一部分在于其转换层次结构的能力。尽管层次结构对于在系统中生成有意义的框架是必不可少的,但它们不能保持不变。随着上下文的变化,层次结构也必须变化。
banq:这也是聚合结构取决于上下文的关键地方所在。

 
复杂性理论增加了我们对诸如组织之类的复杂系统的理解,但是它没有为我们提供可以准确地预测或控制特定组织的行为的工具。
本文观点获赞