Redundant Variables Are Pure Evil

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

冗余变量是仅用于解释其值的变量。我坚信这样的变量不仅仅是纯噪音,而且是邪恶的,对代码的可读性有非常负面的影响。当我们引入冗余变量时,我们的目的是使我们的代码更清晰、更易读。然而,在现实中,我们使它变得更冗长和难以理解。毫无例外,任何只使用一次的变量都是冗余的,必须用一个值来替代。

在这里,变量fileName是冗余的:

这段代码必须看起来不同:

这个例子非常简单,但我相信你肯定见过这些多余的变量很多次了。我们使用它们来“解释”代码—它不再只是一个字符串字面值"test.txt",而是一个fileName。代码看起来更容易理解,对吗?实际上并不是这样。

让我们首先深入了解代码的“可读性”是什么。我认为这种质量可以通过我需要理解正在查看的代码所需的时间来衡量。时间越长,可读性越低。理想情况下,我希望能在几秒钟内理解任何一段代码。如果不能,那是编写者的失败。

记住,如果我不理解你,那是你的错。

代码的长度增加会降低可读性。因此,当我阅读代码时,我需要记住的变量名越多,消化代码并得出关于其目的和效果的结论所需的时间就越长。我认为,在不考虑辞职的情况下,我最多可以舒服地记住四个变量。

新变量使代码变得更长,因为它们需要额外的行来声明。而且,它们使代码变得更复杂,因为读者需要记住更多的名称。

因此,当你想要引入一个新变量来解释你的代码在做什么时,停下来思考一下。你的代码本来就太复杂和冗长了!使用新的对象或方法重构它,而不是使用变量。通过将代码的一部分移到新的类或私有方法中,使你的代码变得更短。

此外,我认为在完美设计的方法中,你不需要除了方法参数之外的任何变量。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-28 at 15:43

sixnines availability badge   GitHub stars