斯威夫特:没人犯的常见错误-布尔斯

您好,我亲爱的开发人员,

有时您可以编写一个代码,该代码在语法级别上不是重复的,但是在逻辑上是重复的。 让我们看一个简单的例子:

最终,这段代码说:“如果是,则返回是,否则,则返回否”。 我可以说一个奇怪的口音。 让我们以更好的方式重写它:

您可以说,没有人会在现实生活中犯这样的错误,上帝,您错了。 让我们稍微扩展一下代码:

是的,我敢肯定,您已经看到了这样的代码。 我已经在不同的版本中看过很多次了,我无法一一列举。 更好的解决方案:

但是最好的解决方案实际上是以一种不同的方式分解任务,似乎函数可以完成更多工作。 但是我无法粘贴真实的生活代码(NDA处于最糟糕的状态),由于其明显的简单性,尝试重新分解didProcessEqual毫无意义。 但是我会尽力的。 分解的一种明显方法是将处理移出函数,但让我们假设,对于两种相等情况,处理的一部分是相似的:

是的,你猜对了。 该解决方案为我们带来了重复。 并且我们尝试避免它。 此外,在学校中我们了解到2 * a + 2 * b = 2 *(a + b) 。 但是,当我们开始编码时,我们似乎忘记了这个简单的原理。 让我们尝试将其应用于faultyProcess

这些只是简单的基础知识,但是我已经看到了这样的代码,这些代码是由经验不足1年的年轻开发人员以及具有8年经验的开发人员制作的。

作为后记,请干燥并检查您的代码是否存在此类错误。 如果您没有这样做,或者至少将来会避免这样做,那么请打招呼。

就是这样,伙计们。 祝您有美好的一天,无论您身在何处,都要保持干燥。