Найти в Дзене
В Дзене применяются
рекомендательные технологии
Golang

Улучшаем код с помощью линтеров Golang — Golangci-lint

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

На самом деле Golang уже предоставляет некоторые базовые инструменты, такие как gofmt, который занимается форматированием кода Go, и govet, который проверяет исходный код и помогает найти ошибки в коде.

Существует большое количество доступных линтеров, которые были созданы и поддерживаются сообществом GO. Давайте посмотрим на некоторые полезные линтеры:

  • fieldaligment — хороший функционал для поиска утечки пмяти.
  • unused — модуль помогаает проверять код Go на наличие неиспользуемых констант, переменных, функций и типов.
  • gofumpt — инструмент представляет собой модифицированный форк gofmt начиная для Go 1.18.
  • goconst — пакет находит повторяющиеся строки, которые можно заменить константой.
  • gocyclo — вычисляет и проверяет цикломатическую сложность функций.
  • goreporter — инструмент Golang, который выполняет статический анализ, модульное тестирование, проверку кода и создает отчет о качестве кода. Это инструмент, который одновременно запускает целую кучу линтеров и формирует их вывод в отчет.
  • errcheck — обнаружение непроверенных ошибок в программах Go.

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

Golangci-lint 🤓

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

golangci-lint— это ⚡ Очень быстрая ⚙️ конфигурация на основе Yaml, с множеством 🖥 интеграций и 🔥красивым выводом с цветами. Имеет 🥇 Много линтеров в комплекте, которые не нужно их отдельно устанавливать 😀

Установка

-2

Запуск

Я намерен импортировать пакет, который я не использую, и надеюсь, что golangci-lint укажет мне на это.

-3

Давайте запустим линтер

-4

Скрипт автоматически обнаружил ошибку ( go в любом случае вывел бы ее на этапе сборки), однако вы можете видеть, что программа выполнила проверку, которую сделал бы другой линтер под названием goimport. Здесь мы используем агрегатор golangci-lint, который объединил большую часть функционала линтера.В golangci-lint доступно огромное количество линтеров, более 100, вот полный список.

Примечание. По умолчанию активируется только часть линтеров, большая их часть по умолчанию деактивирована, они могут быть включены по вами при еобходимости.

Если вы хотите увидеть доступный функционал, вы можете ввести:

-5

Чтобы включить/отключить линтер

-6

Инструкции по интеграции доступны здесь

Примеры конфигурации доступны здесь

Хотя большинство линтеров доступны, в пакетн недоступен литер fieldalignment, и на это есть веские причины.

Fieldalignment используется для определения того, правильно ли построена ваша структура с точки зрения памяти. Давайте посмотрим, как fieldalignment помогает в выявлении утечки памяти в Golang.

-7

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

Удачного кодинга!

Golang
Go tests

Что-то пошло не так, и нам не удалось загрузить комментарии. Попробуйте ещё раз
Рекомендуем почитать
9 Операционных систем с открытым исходным кодом, которые не связаны с Linux — откройте для себя настоящие альтернативы!
Когда слышишь словосочетание «открытый исходный код», сразу вспоминаешь Linux. Но это далеко не единственная ОС с открытым кодом. Сегодня существует множество других проектов, некоторые из которых появились задолго до Linux. Plan 9 от Bell Labs — название отсылает к культовому научно-фантастическому фильму Plan 9 From Outer Space. Эта ОС стала попыткой переосмыслить, какой может быть операционная система. Руководил проектом Роб Пайк вместе с другими членами первой команды Unix. В основе Plan 9 лежала...
🐍📋 F-строки в Python для интерполяции и форматирования строк
Из этой статьи вы узнаете, как использовать f-строки — инструмент для быстрой интерполяции и форматирования строк, который превосходит по эффективности и читабельности классические подходы с применением оператора % и метода .format(). Данная статья является переводом. Ссылка на оригинал. К концу этого руководства вы поймете, почему f-строки – это мощный инструмент, которым необходимо овладеть разработчику на Python. В этом самоучителе вы узнаете, как: Для извлечения максимальной пользы от этого руководства, вы должны быть знакомы с типом данных строк Python...
СЕКРЕТНЫЕ КОДЫ ChatGPT: Как сэкономить время и обойти 99% пользователей
Хотите выжать из ChatGPT максимум? Забудьте про скучные и длинные промпты! Есть несколько простых "секретных кодов", которые превратят ваш опыт работы с ИИ в настоящую магию. Эти пять команд помогут вам быстрее получать понятные, профессиональные или живые ответы, а также глубже разбираться в сложных темах. Погнали! Бывает, что тема кажется настоящим космосом, а времени вникать нет. Просто добавьте в запрос ELI5 (Explain Like I'm 5), и ChatGPT объяснит всё так просто, как будто вы ребёнок. Это идеально для сложных технических штук, научных концепций или запутанных инструкций...
Следующая статья
Документы, вакансии и контакты