Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:使用花括号使代码更具可读性可以吗?_Java_Coding Style - Fatal编程技术网

Java:使用花括号使代码更具可读性可以吗?

Java:使用花括号使代码更具可读性可以吗?,java,coding-style,Java,Coding Style,我试图简化一些复杂的代码块,发现用花括号分隔逻辑块很有用: { // step 1 { // step 2 { // step 3 } } } 这样做是否可以作为生产代码?将这些函数提取出来以分离函数并不被认为是一种选择,因为它需要向它们传递许多参数并开发合理的函数名——这并不值得。从技术上讲,是的,它不会破坏任何东西(范围变量除外,但它会在编译时被检测到) 从代码质量的角度来看,这听起来不像是您想要做的事情。如果你的方法那

我试图简化一些复杂的代码块,发现用花括号分隔逻辑块很有用:

{
  // step 1

  {

    // step 2

      {

      // step 3

      }
    }
}

这样做是否可以作为生产代码?将这些函数提取出来以分离函数并不被认为是一种选择,因为它需要向它们传递许多参数并开发合理的函数名——这并不值得。

从技术上讲,是的,它不会破坏任何东西(范围变量除外,但它会在编译时被检测到)

从代码质量的角度来看,这听起来不像是您想要做的事情。如果你的方法那么大,你应该试着把它分解成更小的部分。如果方法中使用的变量太多,那么这些变量应该是类的成员吗?这样您就可以更容易地拆分该方法

您应该避免使用如此大的单片代码块的原因是多方面的。对这样一个大的方法进行推理可能会更困难,对它进行单元测试可能会困难得多,调试也是如此


作为旁注,就我个人而言,我几乎从未发现自己需要一个大于20-30行代码的函数。如果发生这种情况,我开始考虑将其分解,或者甚至做一些更复杂的重构。在考虑如何分解时,一个好主意是编写两个单元测试。如果测试没有得到很好的定义,并且它们往往有多个不同的断言等等,那就是符号函数太宽了。

我认为这会导致相反的效果。括号会影响可读性,也会让读者感到困惑,因为他希望在括号之间放一些真正需要的东西。我建议使用类似于/------------的注释作为abc的逻辑部分------ 为此

使用注释比使用括号更清楚。你甚至可以描述那里发生了什么


编辑说:把巨大的方法分成较小的方法总是值得的。把他们保密。软件质量指南说:每种方法都应该只有一个任务

对我来说,代码看起来很臭……你必须小心变量的范围。块定义了范围。。除非编译器抱怨,否则我认为不会有任何问题。如果您使用的是IDE,例如Netbeans,则可以引入“代码折叠”。如果这些块是嵌套的,则不会导致任何可见性问题。在我作为开发人员的岁月中,我想我从未见过任何类似的代码。如果要传递许多参数,也许可以创建某种类型的请求对象并传递它。我强烈建议将代码拆分为单独的方法。此外,大型方法通常会破坏同样非常正确的@kocko!编写单元测试也有助于解决这一问题,它们往往会很快揭示这些问题:)好吧,我认为你的第一部分,逻辑注释,听起来像是一种反模式。正如你在编辑中所说,它们应该是方法。是的,你是对的。但是看起来作者真的不想把代码分成更小的方法。所以对我来说,要得到一个更好的解决方案,唯一的办法就是使用注释。