格式化块注释

时间:2010-09-24 13:06:22

标签: coding-style

第一种格式似乎比第二种更受欢迎。那是为什么?


第一个(每行上的星号)

/*
 * line 1
 * line 2
 * line 3
 */

第二个(最小星号)

/*
line 1
line 2
line 3
*/

6 个答案:

答案 0 :(得分:10)

可能是因为它更具可读性,如果评论有很多行,即使你没有看到结尾,你也知道你正在阅读评论。

答案 1 :(得分:4)

主要原因是因为PHP文档管理员。

构建PHPDoc等文档管理器来解析该表单中的注释块,可解析注释块的示例如下:

/**
 * Page-Level DocBlock
 * @package MyPackage
 * @category mycategory
 */

正如您所看到的那样,星号位于每一行,而某些行包含@符号,这就是您所谓的标记标记符,它告诉解析器应该处理此行并将该文件放在该类别下文件的价值。

另外看一下Zend Coding Standards - Inline Documentation这也说明你应该对这种解析器和可读性使用这种类型的评论。

答案 2 :(得分:2)

更容易看到评论的开始和结束位置。

只需扫描左栏,直到星号“用尽”,找到下一段代码。

第一种方法失败的地方是重写评论的时候。现在它需要重新格式化线条以使星号排成一行。除非你有自动为你做这件事的工具,否则这是禁忌。

在McConnell的“Code Complete”(第二版),第790页,他说:

  

对于更长的注释,创建长双列斜线,手动分隔行之间的文本行以及类似活动的任务不是很有意义,因此/ * ... * /语法更适合多行注释

     

关键是你应该注意你如何度过你的时间。如果你花了很多时间输入和删除[text]以使[星号]排成一行,你就不会编程;你在浪费时间。找到更有效的风格。

答案 3 :(得分:1)

我个人使用//表示每个评论,并保留/* */用于临时用法,例如在重构时注释掉许多函数。使用/* */进行块注释会阻止我快速评论大量代码。

所以我的块评论看起来像这样:

//*****************************
//  Some 
//  Comments
//  Here
//*****************************

答案 4 :(得分:0)

它(可以说)更具可读性或更好看。人们已经使用了ASCII艺术很长一段时间了,例如。

/*********************
 * here is the doc   *
 *********************/

或其他什么。

答案 5 :(得分:0)

我喜欢它,因为它在视觉上区分了块注释掉的代码和文档。

如果我要评论一堆代码,请:

/*
int i;
someCode(i);
print i;
*/

更好,因为我可以移动开始/结束部分以启用它的一部分,或者只删除两行来启用它。使用其他格式我不能这样做。因此,文档具有其他样式更好,因为您从不尝试“取消注释”文档。

现在,使用丰富的编辑器,我更喜欢使用行注释来注释掉代码,但这是另一个论点。

注释掉代码的在线评论

我更喜欢这个注释掉的代码:

//   int i;
//   someCode(i);
//   print i;

这有很多原因。首先,只需一行就可以轻松取消注释(启用)。其次,它提供了一个更好的视觉指示,它被注释掉然后你得到一个块注释(它依赖于语法突出显示,正如其他人提到的那样)。

但第三,也是最重要的,它允许您安全地在您评论的内容中包含块评论。

当我注释掉这个时,观察SO语法突出显示的区别:

/**
 * Does something to i and then prints i
 */
public void messWithI() {
    int i;
    someCode(i);
    print i;
}

使用块注释:

/*/**
 * Does something to i and then prints i
 */
public void messWithI() {
    int i;
    someCode(i);
    print i;
}*/

使用行注释:

//   /**
//    * Does something to i and then prints i
//    */
//   public void messWithI() {
//       int i;
//       someCode(i);
//       print i;
//   } 

你需要一个丰富的编辑器的原因是,如果你以这种方式手动应用/删除注释,那将是大量的击键。 IDE具有为您执行此操作的实用程序(Eclipse CTRL - / ),高级文本编辑器具有宏或至少垂直选择。