很棒的Go Linters
精心策劃的Go Linter的清單。
由Golangci贊助:SaaS服務用於在GitHub拉的請求上運行襯裡。免費提供開源。

內容
- 雲襯裡
- 襯裡
- 代碼格式
- 代碼複雜性
- 樣式和圖案檢查
- 錯誤
- 未使用的代碼
- 表現
- 報告
- 雜項
- Linters助手工具
雲襯裡
集中精力
- Golangci-用於在GitHub拉的請求上運行Linters的開源SaaS服務。免費提供開源。
- Golint Online-使用Golint軟件包,在GitHub,Bitbucket和Google Project託管的GoTe Online Go源文件。
- Gopherci -Gopherci通過檢查每個GitHub拉力請求,向後不兼容的更改以及其他測試套件來幫助您維護高質量的GO項目。
- GO報告卡 - GO回購報告卡。
通用目的
- 編碼氣候 - 開放且可擴展的靜態分析平台。
- CodeFactor-在GitHub或Bitbucket上存儲的自動代碼分析。
- Houndci- github拉請求的代碼審核工具
- 量化碼 - 自動代碼審查和維修
- 審查器 - 可以與github集成的專有代碼質量檢查器
- Sideci-自動代碼審核工具。提高開發人員的生產率。
襯裡
代碼格式
- DEDUPIMPORT-修復具有相同導入路徑但導入名稱不同的重複導入。
- GOFMT -GOFMT格式GO程序。必須有每個項目。不要忘記使用-s標誌。
- GoFumpt-該工具是GOFMT的修改後叉,在向後兼容的同時,比GOFMT執行更嚴格的格式。
- Goimports -Goimports完成了GOFMT所做的一切。此外,它檢查未使用的導入。
- 不明智的 - 報告代碼,不必要地縮進
代碼複雜性
- ABCGO -ABC指標用於GO源代碼。
- 深度 - 計算GO函數的最大值。出於可讀性目的,查看是否需要將功能拆分為幾個較小的功能是有幫助的。
- funlen-檢查長功能的襯裡。它可以檢查行的數量和語句的數量。
- GoCyclo-計算並檢查功能的環境複雜性。
- Nakedret -Nakedret是GO靜態分析工具,可在功能中找到大於指定功能長度的裸返回。
- 夾板 - 它發現任何函數太長或參數過多或結果。
樣式和圖案檢查
- 狗狗 - 找到空白標識符太多的作業/聲明。
- DUPL-代碼克隆檢測的工具。
- Go -CheckCtyle- CheckStyle是Java CheckStyle等樣式檢查工具。該工具靈感來自Java CheckStyle,Golint。樣式指的是GO代碼評論評論中的某些點。
- Go-Cleanarch-GO-Cleanarch的創建是為了驗證清潔體系結構規則,例如依賴關係規則和go項目中的軟件包之間的互動。
- GO一致 - 源代碼分析儀,可幫助您使GO程序更加一致。
- Go -NemeCheck-源代碼分析儀,可幫助您維護項目內部的變量/字段命名約定。
- go-printf-func-name-檢查末尾用
f
命名的printf樣函數。 - Go-Ruleguard-定義和運行基於模式的自定義鱗片規則。
- gochecknoinits-查找初始化功能,以減少代碼中的副作用。
- gochecknoglobals-查找全局var,以減少代碼中的副作用。
- GoConst-在Go重複的字符串中找到可以用常數代替的字符串。
- Golint -Golint是GO源代碼的襯裡。
- Gosimple -Gosimple是專門從事簡化代碼的GO源代碼的襯裡。
- IMPI-驗證進口分組和訂購。
- InterFacer-建議較窄的接口類型。
- lll-線長襯裡,用於在文件中執行線長度。
- 拼寫錯誤 - 發現通常拼寫錯誤的英語單詞
- nofuncflags-禁止布爾參數到函數(標誌)。
- 預定 - 找到Shadows Go的內置標識符(例如,
append
, copy
, int
)的代碼。 - 復活-〜6倍更快,更嚴格,可配置,可擴展和美麗的GOLINT替代品
- Unconvert-從GO源中刪除不必要的類型轉換。
- USEDEXPORTS - 在GO導出的變量中查找可能無法說明的變量。
- 空格 - 在功能的開頭和結束時檢查不必要的新線
錯誤
- APICompat-檢查GO項目的最新更改,以使向後不兼容的更改。
- 糟糕的時間 - 糟糕的時間是一個golang linter,可檢測到時間結構的不適當用法。
- Bodyclose-檢查HTTP響應主體是否關閉,並重複使用TCP連接
- Durcheck -Durcheck是一個非常簡單的Linter,可以通過時間來檢測潛在的錯誤。
- ENUMCASE- ENUMCASE檢查每個開關語句處理類型的所有const值。
- Enumlinter- GO中的枚舉類型的Enum Linter。
- Errcheck -Errcheck是一個程序,用於檢查GO程序中未檢查的錯誤。
- GAS-通過掃描GO AST檢查源代碼是否有安全問題。
- Go Vet -VET檢查GO源代碼並報告可疑構造,例如其參數與格式字符串不一致的printf調用。可以檢查變量的陰影,但必須明確啟用。
- GoSumcheck-檢查所有可能的類型開關情況。
- go-sumtype-處理所有可能的類型開關情況。
- Mulint- GO Go Lint檢測到遞歸鎖,這可能會導致死鎖。
- SAFESQL- golang的靜態分析工具,可預防SQL注射。
- scopelint -scopelint檢查GO程序中未鎖定變量。
- sqlrows-檢查是否在sql.rows上進行關閉。
- 靜態檢查 - 在類固醇上進行
go vet
,應用大量的靜態分析檢查,您可能會從諸如C#的Resharper之類的工具中使用大量靜態分析檢查。
未使用的代碼
- dead代碼 - 找到未使用的代碼。
- 效率調節 - 檢測何時不使用對現有變量的分配。
- 結構檢查 - 找到未使用的全局變量和常數。
- UNPARAM-報告未使用的功能參數。
- 未使用的 - 未使用的檢查GO代碼,適用於未使用的常數,變量,功能和類型。
- Varcheck-找到未使用的全局變量和常數。
表現
- AlignCheck-警告不合時宜的結構。
- 模仿者 - 靜態分析GO代碼和報告按值傳遞大結構的功能。
- 損害 - 檢測GO結構的工具,如果將其字段分類,將減少內存。
- PREALLOC-查找可能會預先分配的切片聲明。
- rangerdanger-檢測範圍語句迭代在可尋址數組上的工具
報告
- FLEN-獲取GO軟件包中功能長度的信息。
- Goreporter-一種Golang工具,可以進行靜態分析,單位測試,代碼審查和生成代碼質量報告。
- Golinters -Golinters生成有關GO Linters的HTML報告。
雜項
- 更新的 - 顯示過時的軟件包的控制台應用程序。
- Go-Template-lint-Go-Template-lint是GO文本/模板(和HTML/Template)模板文件的Linter。
- Godox-查找所有待辦事項/FixMe的評論。
- 術語 - 一組特定的檢查。
- Megacheck- Megacheck運行靜態,Gosimple,並且一次未使用。因為它能夠重複使用工作,所以它比單獨運行每個工具的速度更快。
- Go -Critic -source Code Linter帶來了當前未在其他襯里中實現的檢查。
- TARP- TARP在GO源代碼中找到沒有直接單位測試的功能和方法。
- GO -MND- GO的魔術數字檢測器。
- GoCheckit-一個GO工具,可幫助識別折衷的GO模塊。
Linters助手工具
- Golangci -lint- GO的林格跑者。比Gometalinter快5倍。不錯的彩色輸出。只能報告新問題。較少的假陽性。 YAML/TOML配置。
- Gometalinter-金屬因素是一種自動應用所有靜態分析工具並以歸一化形式報告其輸出的工具。
- 絨毛 - 運行襯裡作為GO測試的一部分。
- REVGREP-靜態分析工具的過濾輸出,僅顯示最近更改的代碼行
- ReviewDog-“ ReviewDog”提供了一種將評論評論發佈到代碼託管服務(例如GitHub)通過輕鬆與任何Linter工具集成在一起的方法。
- ZB-通過緩存GomeTalinter結果加速覆蓋。
- Golintui-一個簡單的GO Linter端子UI。