Ответ
В Go есть несколько встроенных и сторонних инструментов для выявления ошибок:
-
go vet – статический анализатор, проверяет код на распространённые ошибки (например, неправильный формат строки в Printf).
-
staticcheck – более мощный статический анализатор, выявляет неиспользуемый код, возможные nil-паники и другие проблемы.
-
race detector (
-race) – детектор гонок данных при работе с горутинами. -
pprof – профилировщик для поиска утечек памяти и узких мест в производительности.
-
errcheck – проверяет, что возвращаемые ошибки обрабатываются.
Пример использования go vet:
package main
import "fmt"
func main() {
fmt.Printf("%s", 42) // vet обнаружит несоответствие типа
}