go語言編程 要點總結(七)工程管理

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章