2016-02-24 100 views
0

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年的'The C Programming Language'(Dennis M. Ritchie和Brian W. Kernighan)那樣完成的。如果持續了這麼長時間,似乎必須有一個很好的理由?

SPOT原理是由Eric S. Raymond在「UNIX編程藝術」中將Kernighan歸咎於Kernighan。

+3

它的建議,並在這裏討論:https://golang.org/doc/effective_go.html#commentary – twotwotwo

+0

S /理論/真理/? –

+0

正確。 https://en.wikipedia.org/wiki/Single_source_of_truth – Tobin

回答

3

TL; DR使問題變得更容易。

https://golang.org/doc/effective_go.html#commentary通過@twotwotwo簡稱報價:

文檔註釋工作表現最佳,完整的句子,它允許廣泛 各種自動演示。第一句話應該是一個 單句總結,以宣佈的名字開頭。

...

如果名字總是開始評論,godoc的輸出可以 用地通過grep的運行。想象一下,你可以不記得名字 「編譯」,但在尋找正規表達式 解析功能,讓你運行的命令,

$ godoc regexp | grep parse 

如果包 的所有文檔註釋開始,「這個功能......」,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 $ 
+0

'golint'也可以幫助檢查文檔樣式。 – elithrar