大泥球 (编程)

大泥球（Big ball of mud）是指一个缺少可认知架构的软件系统。这种系统往往是在业务压力、、增加等情况下开发所致。是一种反模式。

定义
Brian Foote与的1997年的同名论文，给出定义如下：

Foote 与 Yoder认为Brian Marick最早提出了大泥球这个软件架构术语。

根源
程序员在编写程序或是系统时遇到问题后的解决方法，往往缺少前期设计，不是合适的或者最优的解法，而是方便修改的，变动最小的、碎片式增长，这就为以后的系统架构的混乱甚至整个系统的崩溃埋下了隐患。
用户的需求或者编程的要求是在不断地变化的，应对需求和架构变化过晚，使得系统越来越复杂化，维护也越来越昂贵。
程序员的经验，技巧，眼界的限制。

解决方法
多种OOP指导方法，比如SOLID、GRASP和KISS
其他诸多年代久远的、提倡高内聚、低耦合的方法一起出现。 
函数的第一规则是要短小，第二条规则是要更短小。《代码整洁之道》

 参见 
設計模式 (計算機) 
技术债务

参考文献

外部链接
 Guy L. Steele, Jr. & Richard P. Gabriel The Evolution of Lisp , note on reference 128
 Brian Foote and Joseph Yoder,  Big Ball of Mud Fourth Conference on Patterns Languages of Programs (PLoP '97/EuroPLoP '97) Monticello, Illinois, September 1997

Category:反模式
Category:计算机编程