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

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

Ответ

В Go для валидации кода чаще всего используют:

  1. go vet — встроенный статический анализатор, ищет подозрительные конструкции (например, неправиное использование printf).

  2. staticcheck — мощный линтер, выявляет ошибки, неиспользуемый код и антипаттерны.

  3. golangci-lint — агрегатор линтеров (включает staticcheck, errcheck и др.), удобен для CI/CD.

  4. errcheck — проверяет, что ошибки не игнорируются.

Пример использования golangci-lint:

golangci-lint run ./...

Для валидации структур часто используют библиотеки:

  • validator (на основе тегов)
  • go-playground/validate (более гибкий)

Пример с validator:

type User struct {
    Email string `validate:"required,email"`
    Age   int    `validate:"min=18"`
}