Vit*_*nko 21 java eclipse coding-style
如您所知,在Eclipse中,您可以启用" 不必要的'else'语句 "检查,这将在if-then-else上触发,提前返回.而且,根据我的经验,使用此类声明时有两种最可能的情况:
1)预检:
if (!validate(arg1)) {
return false;
}
doLotOfStuff();
Run Code Online (Sandbox Code Playgroud)
2)检查后:
doLotOfStuff();
if (condition) {
return foo;
} else {
return bar;
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,如果触发器打开,Eclipse将建议您将代码更改为:
doLotOfStuff();
if (condition) {
return foo;
}
return bar;
Run Code Online (Sandbox Code Playgroud)
但是,我认为使用else语句返回更具可读性,因为它类似于业务逻辑的直接映射.如果这个"不必要的'其他'声明"代码约定很普遍,或者使用else语句的代码更优选,那么我很好奇吗?
And*_*mer 19
通常我更喜欢代码的结构遵循底层"业务"逻辑的结构.在这种情况下,我的方法将取决于condition
代表什么.如果是错误检查,例如,通常不会被命中但偶尔会被使用,那么第二种形式的不对称性与逻辑的不对称性相匹配.
doLotOfStuff();
if (condition) {
return foo;
}
return bar;
Run Code Online (Sandbox Code Playgroud)
但是,如果任何一种可能性是合理的并且它只是它们之间的选择,我将允许代码的结构显示对称性.
doLotOfStuff();
if (condition) {
return foo;
} else {
return bar;
}
Run Code Online (Sandbox Code Playgroud)
代码在那里供程序员阅读,而不是编译器.
cle*_*tus 11
曾经考虑过(并且可能仍然是某些人)函数应该有一个入口点(容易但在考虑汇编语言时是相关的)和一个出口点.
从调试的角度来看,一个退出点是很好的(因为你可以在一条线上放置一个监视/休息并且知道你会经历它),但是可能导致一些可怕的嵌套,因此更多的可读性往往会胜出.哪个产生最少的嵌套,最少的代码行和最可读的最终结果?最终,这往往比其他任何事情都重要得多.
对于它的价值,最后可以更好地表达为:
return condition ? foo : bar;
Run Code Online (Sandbox Code Playgroud)
假设condition
不是非常长.
不要过分担心所谓的代码"纯度".这是一种无关紧要的分心.使事物可读并且通常是一致的.
归档时间: |
|
查看次数: |
4674 次 |
最近记录: |