Golang goland idea+golint+go fmt+goimports+gometalinter+go vet+GoReporter 代碼優(yōu)化及質(zhì)量檢測

一蜒秤、Go的相關(guān)插件工具簡介

  • golint 代碼的風(fēng)格檢測
  • go fmt 重新格式化Go源代碼
  • goimports 引用包的優(yōu)化
  • gometalinter 同時(shí)運(yùn)行Go lint工具并規(guī)范化其輸出
  • go vet 代碼的語法檢查
  • GoReporter 用于執(zhí)行靜態(tài)分析秉扑,單元測試甥雕,代碼審查和生成代碼質(zhì)量報(bào)告农尖。

二朱躺、插件工具使用

1鲤桥、golint

  • 安裝golint
#下載源碼
> go get github.com/golang/lint/
#編譯包并生產(chǎn)可執(zhí)行文件到bin目錄下($GOPATH/bin)
> go install github.com/golang/lint/golint
  • 打開goland進(jìn)行設(shè)置卑吭,點(diǎn)擊Settings
    打開設(shè)置
  • 選擇External Tools并新建+
    選擇External Tools并新建+
  • 參數(shù)說明:
Name : golint  #Tool名稱
Description: golint  #Tool描述
Program : $GOPATH\bin\golint.exe #選擇golint可執(zhí)行文件的位置
Atguments: $FilePath$ #魔法變量(執(zhí)行當(dāng)前go文件的路徑)
Working directory: $ProjectFileDir$ #魔法變量(當(dāng)前項(xiàng)目的路徑)
  • 設(shè)置快捷鍵Keymap -> External Tools -> External Tools -> golint -> Add Keyboard Shortcut(右鍵)


    新增快捷鍵
  • 連續(xù)按著鍵盤進(jìn)行設(shè)置


    設(shè)置快捷鍵
  • 選擇項(xiàng)目中的一個(gè)go文件進(jìn)行【快捷鍵測試】


    測試結(jié)果
  • git commit 提交代碼測試

    提交代碼測試

    注意:這是 commit 提交之后才進(jìn)行代碼檢測

2、gofmt+goimports+gometalinter

  • 打開goland進(jìn)行設(shè)置丙躏,點(diǎn)擊Settings
    打開設(shè)置
  • goland 設(shè)置插件择示,File Watchers -> + -> 分別點(diǎn)擊安裝go fmtgoimports晒旅、gometalinter
    image.png
  • 修改代碼后按住Ctrl+S就可以看到效果了
    gofmt 栅盲、 goimports直接就可以看見代碼修改的效果
    gometalinter的效果
    gometalinter

3、go tool vet

  • 使用go tool vet針對單個(gè)文件進(jìn)行代碼檢查
> go tool vet global/init.go

測試結(jié)果


go vet
  • 使用go tool vet針對整個(gè)項(xiàng)目進(jìn)行代碼檢查
> go tool vet ../zlsc_image

測試結(jié)果

>go tool vet ../zlsc_image
..\zlsc_image\global\init.go:144: struct field c_ip has json tag but is not exported
..\zlsc_image\global\init.go:145: struct field college_id has json tag but is not exported
..\zlsc_image\global\init.go:146: struct field status has json tag but is not exported
..\zlsc_image\global\init.go:147: struct field camera_status has json tag but is not exported
..\zlsc_image\global\init.go:148: struct field sign_status has json tag but is not exported
..\zlsc_image\utils\file.go:160: Println call has possible formatting directive %s
..\zlsc_image\utils\file.go:172: Println call has possible formatting directive %s
..\zlsc_image\utils\file.go:184: Println call has possible formatting directive %s
..\zlsc_image\utils\image.go:89: unreachable code
..\zlsc_image\utils\image.go:79: image/jpeg.Options composite literal uses unkeyed fields
..\zlsc_image\utils\pic.go:388: unreachable code
..\zlsc_image\utils\uid.go:57: result of fmt.Sprintf call not used
..\zlsc_image\utils\uid.go:61: result of fmt.Sprintf call not used
..\zlsc_image\utils\uid.go:70: result of fmt.Sprintf call not used
..\zlsc_image\utils\uid.go:98: result of fmt.Sprintf call not used
..\zlsc_image\utils\convert\map.go:182: unreachable code
..\zlsc_image\utils\convert\map.go:196: unreachable code
..\zlsc_image\utils\convert\map.go:210: unreachable code
..\zlsc_image\utils\convert\map.go:224: unreachable code

4废恋、GoReporter

執(zhí)行格式:

> $ goreporter -p [projectRelativePath] -r [reportPath] -e [exceptPackagesName] -f [json/html]  {-t templatePathIfHtml}

-p 有效的相對路徑
-r 報(bào)告保存的地址
-e 例外的包谈秫,多個(gè)包使用逗號分隔。例如: "linters/aligncheck,linters/cyclo" ).
-f 生成報(bào)告的格式
-t 模版路徑鱼鼓,不設(shè)置會使用默認(rèn)模版
默認(rèn)會生出HTML格式的報(bào)告

運(yùn)行測試:

> goreporter -p ../falcon-plus -r ../falcon-plus -t ./templates/template.html

生成結(jié)果文件:


生成結(jié)果文件

報(bào)告預(yù)覽:


首頁

單元測試

代碼風(fēng)格

代碼優(yōu)化

代碼統(tǒng)計(jì)

可維護(hù)性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末孝常,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蚓哩,更是在濱河造成了極大的恐慌构灸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異喜颁,居然都是意外死亡稠氮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門半开,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隔披,“玉大人,你說我怎么就攤上這事寂拆∩菝祝” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵纠永,是天一觀的道長鬓长。 經(jīng)常有香客問我,道長尝江,這世上最難降的妖魔是什么涉波? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮炭序,結(jié)果婚禮上啤覆,老公的妹妹穿的比我還像新娘。我一直安慰自己惭聂,他們只是感情好窗声,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辜纲,像睡著了一般笨觅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侨歉,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音揩魂,去河邊找鬼幽邓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛火脉,可吹牛的內(nèi)容都是我干的牵舵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倦挂,長吁一口氣:“原來是場噩夢啊……” “哼畸颅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起方援,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤没炒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后犯戏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體送火,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拳话,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了种吸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弃衍。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坚俗,靈堂內(nèi)的尸體忽然破棺而出镜盯,到底是詐尸還是另有隱情,我是刑警寧澤猖败,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布速缆,位于F島的核電站,受9級特大地震影響辙浑,放射性物質(zhì)發(fā)生泄漏激涤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一判呕、第九天 我趴在偏房一處隱蔽的房頂上張望倦踢。 院中可真熱鬧,春花似錦侠草、人聲如沸辱挥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晤碘。三九已至,卻和暖如春功蜓,著一層夾襖步出監(jiān)牢的瞬間园爷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工式撼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留童社,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓著隆,卻偏偏與公主長得像扰楼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子美浦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容