在 ci 過程中,經(jīng)常有一些可以通過靜態(tài)分析或者白盒檢測去避免一些問題以及規(guī)范代碼格式!使用Go語言一般是使用 golangci-line 作為代碼檢測工具!
樺甸網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),樺甸網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為樺甸近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的樺甸做網(wǎng)站的公司定做!
參考官網(wǎng):
安裝: curl-sSfL | sh -s -- -b $(go env GOPATH)/bin v1.43.0
版本信息: golangci-lint--version
目前我司是自己二開的 golangci-line,所以這里使用的開源版本,其實大同小異,就是開發(fā)了一些插件!
這個就是一個工具,集成了各類自動檢測代碼的工具,所以不需要本地安裝太多的工具,只需要這個工具即可!
由于它需要一個go的項目,這里以我自己的項目去介紹, 項目地址:,如果有同學(xué)想自己嘗試下可以直接下載我這個項目!項目也比較規(guī)范!
其實執(zhí)行 golangci-lint run-h 就可以獲取以下幫助
例如我經(jīng)常使用的: 我日常就是開啟format功能!
1、默認(rèn)使用的插件
2、默認(rèn)沒用的
3、presets 分類:
具體可以參考我的:
主要是做一些 無用代碼檢測,簡化代碼,格式化代碼!然后執(zhí)行 golangci-lint run --fix 即可
gometalinter是一個go語言linter工具集,通過靜態(tài)代碼掃描,能夠找出代碼中潛在的問題。
Go 語言和 C 語言的一個很大的區(qū)別是, Go 語言只靜態(tài)編譯,做個測試:
一方面是 Go 語言編譯后的可執(zhí)行文件大小比 C 語言的大很多,
另一方面是 C 語言的可執(zhí)行文件需要依賴 glibc 動態(tài)庫,
用 ldd 命令可以看出來:
或者直接刪除 glibc 動態(tài)庫, C 可執(zhí)行程序報錯,而 Go 的還能運行:
這時候只有內(nèi)部命令可以運行,外部命令,包括 ln 甚至最常用的 ls 命令也不能運行了:
設(shè)置好 LD_PRELOAD 環(huán)境變量之后, ln 命令可以運行,但是 sudo 仍然不能運行
只能靠 root 用戶來重新創(chuàng)建軟連接了:
所以用 sudo 來 rm 文件要小心,還是用 root 比較好。如果沒有預(yù)先留一個打開的 root 終端,登錄都登不進(jìn)去。