云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

金山云_斗破苍穹小说全集百度云_新注册优惠

小七 141 0

阿米蒂维尔编程恐怖

一个老程序会如此可怕和可怕,你害怕改变它吗?

在这个晴朗的日子里,企业应用中心,我被要求为我在2000年写的一个程序添加一些新的功能。

我立刻开始尖叫,威胁要把自己从桥上扔下来,并乞求"上帝,不是我,为什么是我"。我收集了所有我能找到的理由,为什么这个程序不应该添加额外的功能,包括"它已经受够了",并建议创建一个新的程序来具体解决新的业务问题。

都没有用。

一个新的业务问题必须得到解决,目前的程序做了大部分,只是需要在程序的"杂酚油先生"中添加"一个薄晶片薄荷"的功能,我是幸运的程序员,因为我首先写了这个东西。

任何看过Monty Pythons"生命的意义"的人都会知道为什么我不想在程序中添加薄晶片薄荷。问题是——我为什么这么不安?换节目是我的工作,不是吗?我每天都换别的节目,为什么我对这个节目如此恐惧以至于我宁愿躲在床下也不愿靠近它?

而且这不是一个一次更新几十张表的交互式程序。这是一份只读的ALV报告。这有什么可怕的?

就像最初的"木偶电影"有一句口号"你会相信青蛙会骑自行车"一样,返利机器人软件,我会说"你会相信一个简单的报告可以从地狱变成恶魔"。

当然我会假装我在为弗兰肯斯坦男爵做怪物相关的程序,以此来掩饰我的日常工作,但尽管如此,这是现实生活中发生在我身上的事情。

2000年,在SAP项目开始时,我意识到没有标准的SAP报表可以显示VFKP表中的装运成本(用于运输怪物),这种方式对人类来说毫无意义。

所以我写了一个非常简单的ALV报表,在表上进行连接LIKP/LIPS/VTTK/VFKP,它非常简单,运行起来就像闪电,所有有用的信息都在那里。其中一个邪恶的科学家看了一眼报告,说"你可以用这个来经营你的生意"。我很高兴,很自豪,一切都很简单。

然后所谓的"维纳斯德米洛"问题开始了(警告-链接包含一个粗鲁的词)。

大约每半年创建一次报告后,平均会在数据检索中再添加一两个表,直到生成报告为止逐渐成为所有人的一切。当然,每增加一项,它的速度都会变慢。

大约在2001年,一位资深的疯狂科学家抱怨说,这份报告被一大堆奇怪的请求弄得臃肿不堪,他要求所有这些请求都必须先通过他审批。这并没有像他所希望的那样有多大的不同,自助建站模板,因为所有所谓的怪人请求实际上都是他一开始就提出的,他已经忘记了他已经提出了这些请求。

不管怎样,他继续前进,但随着岁月的流逝,怪人的请求从未停止过。每次更改都是由不同的程序员进行的,每次他们添加新的功能时,似乎是一个很好的地方,通常是在一个以前做完全不相关的事情的例程中。

最近有一个想法,添加了很多额外的-让我们称之为驼背-信息,服务器云服务器,而这些(驼背信息)现在占了33%的处理时间,人们在看到结果之前就开始抱怨运行时的巨大扩展。

随着时间的推移,程序逐渐失去了所有的结构——无论是在内部,还是在商业意义上,无论是在用户感知到它的用途方面——也就是说编程大师罗伯特C.马丁(Robert C.Martin)说,它已经"像一块肉一样腐烂了"。

因此,在我深入研究这个怪物以进行新的更改之前,为了在进行这些更改之前获得一个基线,我投入生产,运行报告并使用ST05进行SQL跟踪。

在惊恐地盯着结果之后,企业应用中心,我为自己的杰作变成了一个可怕的"东西"而痛哭流涕,我总结说,无论如何我都要改变它,我有一种强烈的愿望,想要清除一些正在渗出编程脓液的开放性溃疡,以抵消我正在通过增加更多功能来增加问题的事实我将能够遵循罗伯特马丁斯的另一个规则,即"童子军规则",即你离开营地时比你发现的更干净。

在随后的博客中,我将详细介绍如何一步一步地清理这个怪物。

所以请保持联系….