【问题标题】:Is there a purpose why (Java) developers are doing this?(Java)开发人员这样做是否有目的?
【发布时间】:2017-09-08 05:33:47
【问题描述】:

我参与过由其他人发起的多个项目,但有一件事我仍然不太明白..

1) 有时我会看到这样的代码-sn-p:

public String retrieveSomething(){
  String result;
  result = doSomethingAndReturnTheResult();
  return result;
}

2) 我个人已经习惯了:

public String retrieveSomething(){
  return doSomethingAndReturnTheResult();
}

3) 但我从一位开发人员那里听说,在调试/断点方面最好这样做,我认为这确实是一个公平的观点:

public String retrieveSomething(){
  String result = doSomethingAndReturnTheResult();
  return result;
}

我可以理解第三个选项,但是我经常从多个开发人员那里看到第一个选项,但我就是不明白.. :S 我能想到的唯一原因是 IDE 中的对齐,它是:

String result = 
  doSomethingAndReturnTheResult();

对比:

String result;
result = doSomethingAndReturnTheResult();

但除此之外,我看不到目的。其他人是否按照第一个示例中显示的那样做,如果是:为什么?或者你有一个合理的理由为什么开发人员可能会这样做?就我个人而言,我认为它只会让人分心,并且比第三个示例更不可读,但这可能只是我个人..


我知道这可能相当基于意见/引发讨论,但您基本上可以将问题翻译为:使用示例 1 而不是示例 3(如果有)的额外目的是什么?

在 SO 上也没有真正合适的标签。

【问题讨论】:

  • 也许他们以前是 C 开发人员?我看不出第一个有什么好处。我使用第三个,以防需要快速检查值,或者稍后添加另一个计算步骤。
  • 我只能假设这是具有语言背景的人所做的事情,在这些语言中,最好的做法是分别进行声明和初始化(C,也许?)
  • 我个人的看法:为了提高可调试性而使代码更复杂或更难阅读,只是意味着要调试更多的错误。先让代码尽可能简单,再考虑调试。
  • 另外,请检查:stackoverflow.com/questions/31733811/…“避免不必要地创建局部变量。”
  • 您是否询问过与您合作的开发人员之一他们为什么这样做?

标签: java


【解决方案1】:

我很确定这些“模式”不仅存在于 java 代码中;D

1) 和 3) 不是必需的。我认为大多数开发人员不遵循这些模式。我也使用过这些结构,但不是故意的,我只是“结束”了这些结构。例如,在 3) 中,可能有另一个方法调用您使用了结果,可能只是一个日志语句,稍后将其删除。在示例 1) 中,可能有一个 if-else 块,并且结果会从两个不同的方法分配,但已被删除或移至单独的方法。所以基本上,我只是没有麻烦。

代码审查非常棒,可以摆脱那些丑陋的小细节。即使只是想到有人会看它也会减少开发人员的懒惰;D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2020-11-28
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多