代码半衰期(2017)

2021-03-01 00:35:56

丹·诺思(Dan North)在他的《适合您的头部的软件》中将软件的半衰期定义为(I释义)"半个应用程序代码更改所需的时间,因此很多东西使它变得无法识别。"

在该演讲中,他讲述了使用高质量,非平凡的应用程序工作的故事,该应用程序的代码半衰期为6周。

我在大约一年前就看到了这个话题,从那以后,它的含义就被它分散了注意力。

短代码半衰期的好处是巨大的。想象一下,如果您的应用程序代码始终反映出对手头问题的最准确,最新的了解,您的生活将会有多好。想一想,如果您不必浏览无效代码,成本将下降多少。考虑拥有没有投机性添加的应用程序所具有的价值,这些投机性添加是为了支持永远不会到来的功能而引发的。

我想要这些东西,并且对半衰期的考虑可能会帮助我实现这些想法感到很感兴趣。

代码被读取的次数比其编写的次数多。编写代码会花费一些钱,但是随着时间的流逝,阅读的成本通常会更高。任何看过一段代码的人都必须投入脑力去弄清楚它的作用。

死代码和投机性代码使得难以破译代码的意图。因此,您可以通过优化用于读取而非编写的代码来降低总体成本。以后的读者最容易理解的代码是节俭的,即,它是简单,正确且没有修饰的。

但是,我怀疑我是在向合唱团宣道。我怀疑您已经相信上一段中所述的所有内容。这并不是说您不同意拥有节俭的代码是件好事,而是您正在开发的应用程序与理想的理想相去甚远,以至于您绝望实现它。

以我的经验,大多数应用程序都是一团糟。成功的企业依赖长期存在的应用程序,这些应用程序不断承受着新要求。通常在紧急时间压力下进行更改,这会导致应用程序混乱。随着熵的增加,添加功能变得越来越难,除非再增加一种黑客手段。累积的混乱导致黑客入侵,黑客导致更多黑客入侵,然后您陷入循环。速度逐渐变慢,每个人都讨厌应用程序,工作和生活。

如果让您感觉更好,那么有一种方法可以解决很多麻烦,这是成功的标志。您的竞争对手没有混乱的原因是他们倒闭了。您赢了,而您的奖品就是一种背叛时间破坏的应用程序。

而且,好像这还不够令人震惊,我担心导致您目前获得成功的编码文化可能会注定您将来会失败。如果您现有的应用程序阻碍了更改,那么做更多的事情将无济于事。如果这是您所处的状态,是时候更改代码编写方式了。

在这里,半衰期的概念很重要。您可以通过减少最不稳定的代码的半衰期来降低成本。

应用程序中变化最大的部分也花费最大。这些动态部分通常是您业务的基础。它们是长期的,不断发展的结果,并且遭受着永无休止的搅动。您最依赖它们,但是它们很难理解,而且只会变得更糟。

您的应用程序还有很多其他方面可能同样令人不快,但相对稳定。这种稳定性实质上使它们自由。这不是花钱的丑陋代码,而是零钱。丑陋的代码只会加剧成本。

时间简直是供不应求。不过,好消息是,您没有义务解决不花钱的事情。改善长期使用的应用程序的最有效方法是将精力集中在流失的代码上,这是您付出最大努力的地方。为了获得最大的效果,请致力于打造节俭且易于更换的解决方案。

上面的最后一项是关键。难以替换的代码不会被替换,而是会被扩展。它的条件变得更大。它知道的类名数量越来越多。这些扩展将您要更改的代码紧密地耦合到应用程序的其他部分。这种耦合使得很难在其他实现中进行交换,从而导致代码的半衰期较长。

半衰期很长的不稳定代码不可避免地会堆积下来。这使代码复杂化,程序员不愿整理自己不了解的内容。在许多更改过程中保持节俭的诀窍是坚持使用易于替换的代码。要获得可替换的代码,就必须发展一种重视多态对象和松散耦合代码的文化。

您将与其他程序员就如何编写代码进行讨价还价。您当前的应用程序是此交易清单。如果您发现原始协议已失效,那么改善生活的第一步就是开始就您希望如何编写代码进行讨论。 Dan的演讲以及代码半衰期的想法可以激发这种讨论。

我的下一个公共面向对象设计实用课程将于2018年5月2日至4日在北卡罗来纳州达勒姆举行。是的,该是另一个POODNC的时候了。这是您与志趣相投的同伴一起度过三天的机会。加入我们,改变您对物体的看法。

99瓶的OOP已完成,并且现在提供版本1.0.1。这本书是由卡特里娜·欧文(Katrina Owen)合着的,历经数年的艰辛和艰辛。了解有关它的更多信息,阅读扩展样本,仔细阅读独立评论,或立即购买。