อีกเรื่องที่น่าสนใจในการเขียน code ด้วยภาษา Go คือ Static Code Analysis
ซึ่งมีเครื่องมือให้ใช้เพียบเลย
แต่มีอีกตัวที่เพิ่มเห็นเลยขอลองสักหน่อย
นั่นคือ Golang CI Lint

การใช้งานก็ไม่ยาก

ทำการติดตั้งดังนี้ ซึ่งผมใช้งานบน Mac OS

$brew install golangci/tap/golangci-lint
$brew upgrade golangci/tap/golangci-lint
$golangci-lint version

โดยปกติแล้ว Golang CI Lint จะทำการตรวจสอบ

สิ่งต่าง ๆ เหล่านี้ให้เลย

  • govet
  • errcheck
  • staticcheck
  • unused
  • gosimple
  • structcheck
  • varcheck
  • ineffassign
  • deadcode
  • typecheck

แต่เราสามารถเปลี่ยนแปลงตามที่ต้องการได้ผ่านไฟล์ชื่อว่า  .golangci.yml
ยกตัวอย่างเช่น เปิดเฉพาะ golint เท่านั้น

เพิ่มเติมคือ อยากให้ทำการคอยตรวจสอบทุกครั้งที่มีการเปลี่ยน code

ซึ่งจะใช้เครื่องมือเดียวกับ บทความเรื่องการทดสอบแบบอัตโนมัติ
สามารถเขียนได้ดังนี้

จากนั้นทำการ run ไฟล์นี้ทิ้งไว้ 

ก็จะทำการแจ้งให้เรารู้ว่า code มีอะไรที่ผิดปกติบ้าง
ยกตัวอย่างเช่น ประกาศตัวแปรไว้ แต่ไม่ได้ใช้ ดังรูป

เท่านี้ก็ใช้งานได้แล้ว สบายขึ้นเยอะ