大括号/块末尾的Java注释

ecb*_*die 32 java comments curly-braces

Java编程语言中的公认实践是结束带有注释的代码块的括号,该注释简要说明了括号关闭的代码块?我个人认为它们是无用的评论,这些评论会破坏代码的可读性,但也许我可能是错的.例如:

public void myMethod(int foo) {    
    // some code
    if (foo == 2) {
        for (int i = 0; i < myMax; i++) {
            while (true) {
                // some more code
            } // end while
        } // end for
    } // end if
} // end myMethod(int)
Run Code Online (Sandbox Code Playgroud)

以类似方式评论代码块的做法是否被接受?

far*_*ast 58

我对它的看法是,通常这不是一个好习惯.与规则一样,可能有例外,但非常罕见.

这不是一个好习惯,因为

  1. 当您将光标放在结束时,现代编辑器会突出显示左括号,反之亦然.
  2. 最重要的是:如果有可能看不到条款的开头,则意味着该方法很大(超过半页),这是一种不好的做法.
  3. 它会给代码增加噪音,这会使习惯于更传统的Java编码风格的读者感到困惑.
  4. 合并LordScree-Joachim Sauer评论:这些评论将是痛苦的维持.所以很可能它不会被维护,信息通常会与现实不同步.

  • @LordScree:甚至是推论:"4.它不会被维护,信息通常会与现实不同步" (7认同)
  • +1:4.维持a**会很痛苦 (5认同)

Jos*_*ter 38

这不是一个糟糕的做法,但它是一个致命的副作用,不良的面向对象编码实践!

此外,这违反了风格指南和"自我记录代码"的原则.你应该永远不要有那么多括号或方法足以让读者混淆支架位置,而是将该功能封装在另一个记录良好的方法中.

括号意味着循环或复杂的if-else逻辑链,良好的编程习惯是让方法完成一件事并做好,然后从这些较小的雾化方法构建程序.我会读巴特勒兰普森的开创性作品"计算机系统设计的提示".它介绍了如何设计优秀软件的一些细节.

基本上,不要这样评论,因为:

  1. 它违反了风格指南
  2. 它显示了糟糕的面向对象编程 - 雾化您的功能!
  3. 编码实践的致命副作用与创建Java的基本概念背道而驰 - 封装,特别是信息隐藏
  4. 它违反了自我记录代码的概念
  5. 其他程序员会取笑你.