go命令行工具
go help
代碼格式化
代碼質量分析與修復
單元測試與性能分析
工程構建
代碼文檔的提取和展示
依賴包管理
執行其他的包含命令,比如6g等
代碼風格
代碼必須是本着寫給人閱讀的原則來編寫,只不過順便給機器執行而已
go語言將代碼分割強制統一,風格不符,編譯器會認爲是編譯錯誤
命名
涉及變量、常量、全局函數、結構、接口、方法等命名。任何需要對外暴露的名字必須以大寫字母開頭,否則以小寫字母開頭
go語言使用駱駝命名法,不使用下劃線
排列
左花括號的位置不能另起一行
else跟在右花括號後,不能另起一行
非強制建議:
以製表符縮進
添加空格
使用go fmt格式化代碼文件,不指定文件則格式當前目錄所有.go文件
遠程import
可以import遠程包
import (
"githup.com/myteam/exp/crc32"
)
但是在go build和go install之前需要執行
go get githup.com/myteam/exp/crc32
go get自動獲取遠程包源碼,隨後編譯成.a
工程組織
GOPATH 多個路徑以冒號分割
目錄規範
<proj>
|---README
|---AUTHORS
|---<bin>
|---calc
|---<pkg>
|-<linux_amd64>
|---simplemath.a
|---<src>
|---<calc>
|---calc.go
|---<simplemath>
|---add.go
|---add_test.go
|---sqrt.go
|---sqrt_test.go
可以使用Markdown的語法來寫純文本文檔,這樣可以顯示有格式的內容
一個標準工程包含以下目錄:src、pkg和bin。src包含所有源代碼是一個強制規則,pkg和bin則無需手動創建
增加名字空間只要在src下增加對應的目錄
文檔管理
程序員所謂的文檔更多是指注視、函數、接口的輸入、輸出、功能和參數說明。
javadoc工具可以直接將注視提取並生成HTML格式的文檔
使用go doc命令提取文檔,需要滿足如下基本規則:
註釋需要緊貼對應的包聲明和函數之前,不能有空行
註釋如果需要新起一個段落,應該用一個空白註釋行隔開,因爲直接換行會被認爲是正常段內換行
開發者可以直接用//BUG(author): 方式記錄代碼遺留問題
工程構建
go build 可執行程序會生成在當前目錄,所以應該在bin目錄下執行
go install 構建在bin目錄下,如果是包則在pkg目錄下
跨平臺開發
交叉編譯
安卓支持
adb 調試等等
單元測試
單元測試源文件的命名規則如下:需要測試的包下面創建以“_test”結尾的go文件,形如[^.]*_test.go
分爲功能測試函數和性能測試函數,分別以Test和Benchmark爲函數名前綴並以*testing.T爲單一參數
func TestAdd1(t *testing.T)
func BenchmarkAdd1(t *testing.T)
t.Errorf()函數打印錯誤語句後終止測試
使用命令go test
性能測試函數內部使用for循環,可以設置定時關閉開啓,消除準備工作對測試的影響
使用go test-test.bench命令
打包分發
go語言對兼容性控制非常嚴格,任何一個版本號不同將無法連接包
庫的最佳分發方式是分發源碼自己編譯
可執行程序則沒有這個問題,爲了避免包連接問題,考慮將核心功能以二進制服務器程序提供,並輔以開源客戶端SDK