fbpx
维基百科

大泥球 (编程)

大泥球(Big ball of mud)是指一个缺少可认知架构的软件系统英语Software system。这种系统往往是在业务压力、人员变动英语Turnover (employment)软件熵英语Software entropy增加等情况下开发所致。是一种反模式

定义 编辑

Brian Foote与约瑟夫·约德英语Joseph Yoder (computer scientist)的1997年的同名论文,给出定义如下:

所谓的大泥球就是一个随意结构化、蔓延的、不经心的、意大利面条式代码的乱七八糟混合。系统展现了无可争议的表象:不受管制的增长、重复、权宜之计的修补。信息被系统中相距很远的模块杂乱地共享,重要信息常变为全局的或者重复的。

系统总体架构可能从未良好定义。

其损害往往超过上述认知。稍有架构敏感性的程序员避开了这些泥潭。只有那些对架构不感兴趣的人,也许对修补这些失败的堤坝上的漏洞的日常琐事的惰性感到习惯的人,才愿意在这样的系统上工作。


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

根源 编辑

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

解决方法 编辑

  • 多种OOP指导方法,比如SOLIDGRASPKISS
  • 其他诸多年代久远的、提倡高内聚、低耦合的方法一起出现。
  • 函数的第一规则是要短小,第二条规则是要更短小。[2]

参见 编辑

参考文献 编辑

  1. ^ 存档副本. [2019-02-20]. (原始内容于2019-02-20). 
  2. ^ 《代码整洁之道》

外部链接 编辑

  • Guy L. Steele, Jr. & Richard P. Gabriel The Evolution of Lisp [1](页面存档备份,存于互联网档案馆), 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

大泥球, 编程, 条目單純列出網址作為參考来源, 缺乏更詳盡的信息, 當链接失效時將難以查证, 維基百科不建議只單純列出網址作來源, 请协助為這些來源和文獻補充標題, 作者, 出版社和日期等信息來改善这篇条目, 大泥球, ball, 是指一个缺少可认知架构的软件系统, 英语, software, system, 这种系统往往是在业务压力, 人员变动, 英语, turnover, employment, 软件熵, 英语, software, entropy, 增加等情况下开发所致, 是一种反模式, 目录, 定义, 根. 条目單純列出網址作為參考来源 缺乏更詳盡的信息 當链接失效時將難以查证 維基百科不建議只單純列出網址作來源 请协助為這些來源和文獻補充標題 作者 出版社和日期等信息來改善这篇条目 大泥球 Big ball of mud 是指一个缺少可认知架构的软件系统 英语 Software system 这种系统往往是在业务压力 人员变动 英语 Turnover employment 软件熵 英语 Software entropy 增加等情况下开发所致 是一种反模式 目录 1 定义 2 根源 3 解决方法 4 参见 5 参考文献 6 外部链接定义 编辑Brian Foote与约瑟夫 约德 英语 Joseph Yoder computer scientist 的1997年的同名论文 给出定义如下 所谓的大泥球就是一个随意结构化 蔓延的 不经心的 意大利面条式代码的乱七八糟混合 系统展现了无可争议的表象 不受管制的增长 重复 权宜之计的修补 信息被系统中相距很远的模块杂乱地共享 重要信息常变为全局的或者重复的 系统总体架构可能从未良好定义 其损害往往超过上述认知 稍有架构敏感性的程序员避开了这些泥潭 只有那些对架构不感兴趣的人 也许对修补这些失败的堤坝上的漏洞的日常琐事的惰性感到习惯的人 才愿意在这样的系统上工作 Foote 与 Yoder认为Brian Marick最早提出了大泥球这个软件架构术语 1 根源 编辑程序员在编写程序或是系统时遇到问题后的解决方法 往往缺少前期设计 不是合适的或者最优的解法 而是方便修改的 变动最小的 碎片式增长 这就为以后的系统架构的混乱甚至整个系统的崩溃埋下了隐患 用户的需求或者编程的要求是在不断地变化的 应对需求和架构变化过晚 使得系统越来越复杂化 维护也越来越昂贵 程序员的经验 技巧 眼界的限制 解决方法 编辑多种OOP指导方法 比如SOLID GRASP和KISS 其他诸多年代久远的 提倡高内聚 低耦合的方法一起出现 函数的第一规则是要短小 第二条规则是要更短小 2 参见 编辑設計模式 計算機 技术债务参考文献 编辑 存档副本 2019 02 20 原始内容存档于2019 02 20 代码整洁之道 外部链接 编辑Guy L Steele Jr amp Richard P Gabriel The Evolution of Lisp 1 页面存档备份 存于互联网档案馆 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 取自 https zh wikipedia org w index php title 大泥球 编程 amp oldid 67463427, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。