Skip to content

Latest commit

 

History

History
18 lines (8 loc) · 1.3 KB

cn_4.10_big_ball_of_mud.md

File metadata and controls

18 lines (8 loc) · 1.3 KB

大泥球 Big Ball of Mud

当我们调查现有的软件系统,试图了解不同的模型是如何在定义的边界内发挥作用时,会发现系统的某些部分,通常是大型系统,模型混杂,边界不一致。

在根本没有边界的系统中,试图描述模型的上下文边界是非常困难的。

只有经过仔细的思考,并在一定的组织因素的作用下,才会出现定义明确的上下文边界(尽管创建系统的人当时可能并没有意识到这些原因)。当这些因素不足或完全缺失时,多种概念系统就会混杂在一起,使定义和规则变得模糊不清或相互矛盾。随着功能的增加,这些系统通过偶然的逻辑得以运行。依赖关系在软件中错综复杂。因果关系越来越难以追溯。软件最终凝结成一个大泥球。

在某些情况下,大泥球实际上是很实用的(如 Foote 和 Yoder 最初的文章所述),但它几乎完全没有达到有用的模型所需的精确和细致程度。

因此:

在整个混乱的部分周围划出一个边界,将其标明为一个大泥球。不要试图在这个上下文内应用复杂的建模方法。要警惕这种系统蔓延到其他上下文的趋势。

(参考 http://www.laputan.org/mud/mud.html. Brian Foote 和 Joseph Yoder 作)