我经常看到的最令人震惊的冗余代码构造涉及使用代码序列
if (condition) return true; else return false;
而不是简单的写作
return (condition);
我已经在各种语言中看到了这个初学者错误:从Pascal和C到PHP和Java.你会在代码审查中标记出哪些其他类似的结构?
if (foo == true) { do stuff }
我一直告诉开发人员应该这样做
if ((foo == true) == true) { do stuff }
但他还没有得到这个暗示.
if (condition == true) { ... }
代替
if (condition) { ... }
编辑:
甚至更糟糕的是扭转条件测试:
if (condition == false) { ... }
很容易读作
if (condition) then ...
使用注释而不是源代码控制:
- 删除或重命名函数而不是删除它们并信任源代码控制可以在需要时为它们返回.
- 添加"RWF Change"之类的评论,而不仅仅是进行更改并让源控制分配责任.
在某处我发现了这个东西,我发现它是布尔冗余的顶峰:
return (test == 1)? ((test == 0) ? 0 : 1) : ((test == 0) ? 0 : 1);
:-)