【问题标题】:Function name in comment注释中的函数名
【发布时间】:2016-02-24 10:26:11
【问题描述】:

为什么 Go 程序员把函数名作为函数注释的第一个单词?这是一个技术问题,请不要是宗教问题。

举个例子

// addOptions adds options s to opt
func addOptions(s string, opt interface{}) (string, error) {
....

这不违反 SPOT(单点真相)原则吗?

我问是因为我确信有一个很好的理由。

这就是“GO 编程语言”(Alan A. A. Donovan 和 Brian W. Kernighan)中的做法。早在 1988 年的“C 编程语言”(Dennis M. Ritchie 和 Brian W. Kernighan)中也是这样做的。如果它持续了这么长时间,似乎一定有充分的理由?

SPOT 原理归功于 Eric S. Raymond 在“UNIX 编程的艺术”中的 Kernighan。

【问题讨论】:

标签: go


【解决方案1】:

TL;DR 它使 grepping 更容易。

引用@twotwotwo 引用的https://golang.org/doc/effective_go.html#commentary

Doc cmets 最适合作为完整的句子,它允许广泛的 各种自动化演示。第一句话应该是 以所声明的名称开头的一句话摘要。

...

如果名称总是以注释开头,那么 godoc 的输出可以 有用地通过 grep 运行。想象一下你记不起名字 “编译”但正在寻找常规的解析功能 表达式,所以你运行了命令,

$ godoc regexp | grep parse

如果包中的所有 doc cmets 开始,“这个函数......”,grep 不会帮助你记住这个名字。 但是因为包以名称开始每个文档注释,所以你会 看到类似这样的东西,它会让人想起你正在寻找的词。

$ godoc regexp | grep parse
    Compile parses a regular expression and returns, if successful, a Regexp
    parsed. It simplifies safe initialization of global variables holding
    cannot be parsed. It simplifies safe initialization of global variables $

【讨论】:

  • golint 还可以帮助检查文档样式。
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 2016-07-20
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多