Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Linting е вид анализ на статичен код за идентифициране на потенциални грешки в кодовата база. Linters анализират кода за синтактични грешки и стилови проблеми. Процесът може да помогне за предотвратяване на грешки, да подобри четливостта, да наложи най-добрите практики и да спести време.

Linting е стандартна практика в разработката на софтуер. Въпреки че няма вграден линтер в стандартната библиотека на 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, която сте инсталирали.

Конфигуриране на Linter

Linters са много гъвкави, така че за да инсталирате линтер, ще трябва да конфигурирате линтера за вашия проект.

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

Можете да създадете конфигурационен файл по подразбиране, като използвате тази команда:

golangci-lint config > .golangci.yml

Командата създава нов файл с име .golangci.yml в текущата ви директория. Можете да продължите да редактирате този файл, за да конфигурирате linter за вашия проект.

Ето съдържанието на .golangci.yml файл, когато изпълните командата:

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

Ще трябва да редактирате файла, за да добавите правилата за linting за вашата програма. Можете да намерите пълния списък на наличните линтери на golangci-lint Linters страница с документация. Или можете да стартирате помогнете на линтерите команда за преглед на линтерите на вашия команден ред:

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

Командата извежда всички Linters, налични за версията на пакета, който сте инсталирали.

Изпълнение на Linter

Ето демонстрация на писане на следното „Hello, World!“ програма, която използва net/http пакет:

пакет основен

импортиране (
"fmt"
"net/http"
)

функманипулатор(w http. ResponseWriter, r *http. Заявка) {
fmt. Fprintf (w, "Здравей свят!")
}

функосновен() {
http. HandleFunc("/", манипулатор)
http. ListenAndServe(":8080", нула)
}

Тази програма определя a манипулатор функция, която приема екземпляри на писател и заявка от http пакети ResponseWriter и Заявка типове структури. The манипулатор функция пише „Здравей, свят!“ на клиента по заявка.

The основен функцията монтира / маршрут до манипулатор функция и ListenAndServe функцията стартира сървъра на локален хост порт 8080.

The ListenAndServe функцията връща грешка, но програмата я игнорира. Тази конфигурация ще гарантира, че линтерът подчертава проблема:

линтърс-настройки:
мъртъв код:
# игнорирайте всички тестови файлове
пропуснати файлове: "_test\\.go$"
говет:
# деактивиране на проверката за засенчване
проверка на засенчване: невярно
Голинт:
# игнориране на грешки относно имена на експортирани функции
изключване-използване-по подразбиране-изнесени: вярно

# игнориране на грешки относно долната черта в пакет имена
изключване-безполезно-именуване: вярно
госец:
# деактивирайте gosec тестовете, тъй като те са бавни и могат да произвеждат невярно позитиви
тестове: невярно
неизползван:
# докладва неизползваните аргументи на функцията, но не и неизползваните променливи
чек-експортиран: вярно
празен чек: вярно
контролни тестове: вярно

След като зададете тази конфигурация на linter, можете да стартирате linter с тичам команда:

golangci-lint run

# еквивалентен, изпълнява всички програми
golangci-lint run ./...

Като алтернатива можете да линтирате конкретни файлове, като посочите името на файла или пътя след тичам команда:

 golangci-lint стартирайте dir1 dir2/... dir3/file1.go

Ето резултата от стартирането на linter срещу програмата:

The golangci-lint инструментът е многофункционален и вашата конфигурация ще варира в зависимост от вашия проект.

Можете да линтирате вашите JavaScript проекти с ESLint

Linting е популярна задача за разработка на софтуер и повечето езици за програмиране и IDE предоставят инструменти за програми за linting. За JavaScript, ESLint е най-популярният линтер.

Eslint предоставя множество правила за линтинг, които следват индустриалните стандарти в CLI, IDE и инструментите за текстов редактор, което прави инструмента за линтинг чудесен избор за разработчиците на JavaScript.