Ade*_*ros 10 java coding-style
我们与同事讨论内部任务,例如:
return result = myObject.doSomething();
Run Code Online (Sandbox Code Playgroud)
要么
if ( null == (point = field.getPoint()) )
Run Code Online (Sandbox Code Playgroud)
这些是可以接受的,还是应该用以下内容代替?为什么?
int result = myObject.doSomething();
return result;
Run Code Online (Sandbox Code Playgroud)
要么
Point point = field.getPoint();
if ( null == point)
Run Code Online (Sandbox Code Playgroud)
Mat*_*tzi 20
内部任务更难阅读,更容易错过.在复杂的情况下,它甚至可能被遗漏,并可能导致错误.
例如.如果条件评估阻止为变量赋值,则这将是一个很难找到的错误:
if (i == 2 && null == (point = field.getPoint())) ...
Run Code Online (Sandbox Code Playgroud)
如果i == 2为false,则稍后的点变量将不具有值.
if ( null == (point = field.getPoint()) )
优点:
缺点:
point语句及其代码块的范围.缺点超过专业4/1,所以我会避免它.
他们应该避免.减少每行标识符/操作的数量将提高可读性并提高内部代码质量.这是一个关于这个主题的有趣研究:http://dl.acm.org/citation.cfm?id = 1390647
如此底线,分裂
return result = myObject.doSomething();
Run Code Online (Sandbox Code Playgroud)
成
result = myObject.doSomething();
return result;
Run Code Online (Sandbox Code Playgroud)
将使其他人更容易理解和使用您的代码.与此同时,如果在整个代码库中分散了几个内部任务,只要它们在其上下文中易于理解,那么它就不会是世界末日.
| 归档时间: |
|
| 查看次数: |
7763 次 |
| 最近记录: |