干净的代码,省钱还是艺术?

发布于:2021-01-27 10:58:27

1

481

0

代码 单元测试 重构代码 开发人员

最近,人们一直在谈论编写干净的代码是否真的可以省钱,还是更多关于艺术,即使事情变得漂亮。

好吧,正如森林阿甘(Forest Gump)所说,“也许两者都有。”

怎么可能两者都有呢?

我认为总体来说,编写干净的代码可以为您节省构建软件的资金(除非您花在维护软件上的时间很少或根本不存在)。

它省钱的原因是两者都起作用的地方。

如果我们仅仅从编写干净代码的实践中提取出金钱的部分,我们就可以得出一个非常可靠的论点,即通过查看在软件开发中花费的时间和金钱最多的是什么,总体上它节省了金钱。

猜猜看。你觉得是什么?

没错。修复生产缺陷。编写单元测试可能需要一段时间。重构代码以使其“干净”可能需要一段时间。但是,如果在3小时的编码任务上花费额外的3小时,最终只为您节省了1个生产问题,那么您就把时间花回去了,然后又节省了一些时间。

从项目经理到QA,再到程序员,再到QA,再到部署,一个生产问题的实际时间开销,很容易每一个问题花费10个或更多小时。

很难反驳这种逻辑本身,但这里还有另一个因素在起作用。那就是人的因素。

你看,这不全是关于金钱和金钱,也不全是关于当你把人类投入其中时,什么是合乎逻辑或实际的,我相信,如果非人类的利益写干净的代码没有为你节省任何金钱,总的来说,它仍然会为你节省金钱。

没人会以废话为傲

我不在乎这个软件是否能工作,也不在乎它看起来是否漂亮,维护代码的人会对它有不同的看法。

如果内部代码是垃圾,如果没有什么好感觉,如果它是一大堆意大利面代码,它将严重降低开发人员的积极性。

缺乏动力的开发人员会做什么?

各种可怕的事情。他们寻找新的工作。他们写更多的垃圾代码。他们浪费时间和拖延时间。他们做他们必须做的事情,直到他们能摆脱这个愚蠢的职业,或者梦想的工作出现在他们能写的地方ASP.NET使用自动模拟容器和BDD的MVC代码。

有时你不得不问自己,维护现有的VB6应用程序是否真的比将其转换为C#要困难得多?好像不应该,对吧?当然,维护一个构建良好的C应用程序更容易,但是为什么这些应用程序最终会被重写有一个令人信服的原因,即使它们确实不需要重写。

开发旧的硬性应用程序的开发人员并没有动力这样做。开发人员喜欢新的闪亮技术。他们喜欢感觉自己正在学习和扩展技能,而不仅仅是维持现状。

因此,即使重写VB6应用程序没有实际意义…即使你的度量和图表告诉你不应该这样做…当你重写应用程序时,你会发现这种神奇的隐藏成本节约,因为突然间,开发人员就不会拖着脚去修复一个bug,或者给“那个蹩脚的老VB6应用程序”添加一个功能了。对客户来说,这个应用程序甚至可能看起来一模一样,但对开发人员来说,它将是一个全新的闪亮玩具。

编写干净的代码不仅仅是为了省钱

所以你看,在理论上,有一个关于重构代码实际上是一个正的投资回报还是负的争论。我每次都会在纯实用和图表理论上为正的,但是当你加入人类艺术元素时,这是没有争议的。

如果您的代码库是您的开发人员引以为豪的东西,那么您将看到时间上的巨大节省,因为您的开发人员将被极大地激励着使它变得更好。

干净的代码产生干净的代码。

因此,当我说这两者时,我不仅对这个话题不置可否或不热心。人为因素使得干净的代码对于节省金钱至关重要。