Какие знаешь инструменты для выявления ошибок

«Какие знаешь инструменты для выявления ошибок» — вопрос из категории Тестирование, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go есть несколько встроенных и сторонних инструментов для выявления ошибок:

  1. go vet – статический анализатор, проверяет код на распространённые ошибки (например, неправильный формат строки в Printf).

  2. staticcheck – более мощный статический анализатор, выявляет неиспользуемый код, возможные nil-паники и другие проблемы.

  3. race detector (-race) – детектор гонок данных при работе с горутинами.

  4. pprof – профилировщик для поиска утечек памяти и узких мест в производительности.

  5. errcheck – проверяет, что возвращаемые ошибки обрабатываются.

Пример использования go vet:

package main
import "fmt"
func main() {
    fmt.Printf("%s", 42) // vet обнаружит несоответствие типа
}