Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Линтинг — это тип статического анализа кода для выявления потенциальных ошибок кодовой базы. Линтеры анализируют код на наличие синтаксических ошибок и проблем со стилем. Этот процесс может помочь предотвратить ошибки, улучшить читаемость, внедрить лучшие практики и сэкономить время.

Линтинг — стандартная практика в разработке программного обеспечения. Хотя в стандартной библиотеке Go нет встроенного линтера, в экосистеме Go существует множество сторонних инструментов линтинга. К ним относятся пакеты GolangCI Lint, Go Meta Linter и Staticcheck.

Пакет GolangCI Lint

Пакет golangci-lint — это мощный и гибкий линтер для Go, который может помочь вам найти и исправить ошибки в коде. Простота использования пакета, расширяемость и полный набор встроенных линтеров делают его популярным выбором для многих разработчиков Go.

GolangCI Lint анализирует исходный код Go и предоставляет отзывы о потенциальных ошибках, проблемах безопасности и нарушения стиля кодирования с функциями высокопроизводительного анализа и непрерывной интеграции (CI) поддерживать.

instagram viewer

Запустите эту команду терминала в рабочем каталоге вашего проекта, чтобы установить пакет Golangci-lint:

установить github.com/golangci/golangci-lint/cmd/[email protected]

Ваша версия Go должна быть 1.19 или более поздней, чтобы команда могла установить пакет. Вы также можете проверить установки golangci-lint страницу для других доступных методов установки.

Команда установит GolangCI в вашей системе как инструмент CLI. Вы можете проверить установку с помощью этой команды:

golangci-lint --версия

Команда должна отображать установленную вами версию golangci-lint.

Настройка линтера

Линтеры очень универсальны, поэтому для установки линтера вам нужно настроить линтер для вашего проекта.

golangci-lint инструмент использует YAML-файлы для конфигурации. Вы укажете настройки вашего линтера в файле YAML, чтобы пакет мог его прочитать.

Вы можете создать файл конфигурации по умолчанию с помощью этой команды:

Конфигурация golangci-lint > .golangci.yml

Команда создает новый файл с именем .golangci.yml в вашем текущем каталоге. Вы можете приступить к редактированию этого файла, чтобы настроить линтер для вашего проекта.

Вот содержимое .golangci.yml файл при запуске команды:

Файл содержит информацию о golangci-lint инструмент и параметры, которые вы можете использовать для настройки процесса листинга.

Вам нужно будет отредактировать файл, чтобы добавить правила линтинга для вашей программы. Вы можете найти полный список доступных линтеров на golangci-lint Линтеры страница документации. Или вы можете запустить помощь линтеру команда для просмотра линтеров в вашей командной строке:

golangci-lint помогает линтерам

Команда выводит все линтеры, доступные для версии установленного вами пакета.

Запуск Линтера

Вот демонстрация линтинга следующего «Hello, World!» программа, использующая сеть/http упаковка:

упаковка основной

Импортировать (
"ФМТ"
"сеть/http"
)

функцияобработчик(с http. ResponseWriter, r *http. Запрос) {
ФМТ. Fprintf(w, "Привет, мир!")
}

функцияосновной() {
http. Функция HandleFunc("/", обработчик)
http. слушать и обслуживать(":8080", ноль)
}

Эта программа определяет обработчик функция, которая принимает экземпляры записи и запроса из http пакет ResponseWriter и Запрос типы структур. обработчик Функция пишет «Hello, World!» клиенту по запросу.

основной функция монтирует / маршрут к обработчик функция, и слушать и обслуживать функция запускает сервер на локальном порту 8080.

слушать и обслуживать функция возвращает ошибку, но программа ее игнорирует. Эта конфигурация гарантирует, что линтер выделит проблему:

linters-настройки:
мертвый код:
# игнорировать все тестовые файлы
пропустить файлы: "_тест\\.го$"
говет:
# отключаем проверку слежки
проверка-затенение: ЛОЖЬ
голинт:
# игнорировать ошибки, связанные с экспортируемыми именами функций
исключить-использовать-по умолчанию-экспорт: истинный

# игнорировать ошибки, связанные с символами подчеркивания в упаковка имена
исключить-бесполезное-именование: истинный
госсек:
# отключаем тесты gosec, так как они медленные и могут выдавать ЛОЖЬ плюсы
тесты: ЛОЖЬ
неиспользованный:
# сообщать о неиспользуемых аргументах функции, но не о неиспользуемых переменных
чек-экспорт: истинный
галочка-пусто: истинный
чек-тесты: истинный

После настройки этой конфигурации линтера вы можете запустить линтер с бегать команда:

golangci-lint запустить

# эквивалент, запускает все программы
golangci-lint запустить ./...

Кроме того, вы можете анализировать определенные файлы, указав имя файла или путь после бегать команда:

 golangci-lint запустить dir1 dir2/... каталог3/file1.go

Вот результат запуска линтера против программы:

golangci-lint инструмент универсален, и ваша конфигурация будет варьироваться в зависимости от вашего проекта.

Вы можете анализировать свои проекты JavaScript с помощью ESLint

Линтинг — популярная задача разработки программного обеспечения, и большинство языков программирования и IDE предоставляют инструменты для линтинга программ. Для JavaScript наиболее популярным линтером является ESLint.

Eslint предоставляет несколько правил анализа, соответствующих отраслевым стандартам в инструментах CLI, IDE и текстовых редакторах, что делает инструмент анализа отличным выбором для разработчиков JavaScript.