《Big Ball of Mud》阅读总结

大泥球(Big Ball of Mud)

1. 定义:

  大泥球是指一个随意化的杂乱的结构化系统,只是代码的堆砌和拼凑,往往会导致很多错误或者缺陷。

2. 缺点:

  无法使得系统内的信息得到更好的控制和共享,使得信息失去了应有的价值。大泥球般的系统的整体结构没有得到很好的界定,也就使得大泥球越发的复杂和杂乱无章。最终会使得这个系统的代码不被程序员理解,更无法对其修复,无法满足用户的需求变化。

3. 产生的原因:

  首先,程序员在编写程序或是系统时遇到问题后的解决方法,往往不是合适的或者最优的解法,而是方便修改的,变动最小的,这就为以后的系统架构的混乱甚至整个系统的奔溃埋下了隐患。其次,用户的需求或者编程的要求是在不断地变化的,任何一个已有的系统都随之会产生重大的变化,使得系统越来越复杂化,维护也越来越昂贵,另外编写人员的变动等等因素都会导致系统的退化,一步步变为大泥球。

  所以,可以将其产生的原因归结为:一次性代码,碎片式增长,缺少前期设计,应对需求和架构变化过晚,程序员的经验,技巧,眼界的限制。

4.避免或者修改大泥球的方法:

  首先,程序员或者设计师为了在预算中并按时交付高质量的软件,就需要关注软件的特性和功能,然后集中在架构和性能,使得软件设计初步就避免产生小的问题或者方向的偏差。其次,程序员在编写软件时要及时的解决出现的小问题或者原型概念等等,这样不会使得问题堆积导致后期的无法修改。另外,应当及时处理用户需求的变化,由于需求往往会随着时间的推移而变化,所以应当逐步的解决,并且鼓励和积极面对变化而不是掩盖问题。另外,要保持一直工作的状态,不断地维护需求和系统。但不应当进行一次彻底的检查,这样很可能会破坏系统。当然,软件系统也是在变化的,但是不同的部分会以不同的速度变化,所以应当使得它们的变化率一致。最坏的结果就是代码已经下降到了无法修复甚至理解的地步,那么就扔掉,重新开始。

posted @ 2012-11-11 22:57  LuffyWX  阅读(997)  评论(0编辑  收藏  举报