2017-04-12 46 views
-1

我已经由其他人启动的多个项目的工作,并有一件事我还没有真正理解..(Java)开发人员为什么会这样做?

1)有时我看到一个代码片段是这样的:

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上也没有合适的标签。

+3

也许他们是前C开发人员?第一个我没有看到任何优势。我使用第三种情况需要快速检查值,或者稍后添加另一个计算步骤。 – Carcigenicate

+0

我只能假设这是人们做的事情,他们有语言背景,被认为是分别进行声明和初始化的最佳做法(C,也许?) – domsson

+4

我个人认为:使代码更加复杂或难以按顺序阅读以帮助调试只是意味着更多的错误来调试。首先尽可能简化代码,然后担心调试。 – Brandon

回答

1

我敢肯定,这些“模式”不仅在Java代码中发现; d

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

代码评论真棒,摆脱那些小丑的细节。即使只是这个想法,有人会看着它会减少开发者的懒惰; D

相关问题