Програми Lint Your Go с пакета GolangCI Lint

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

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





Linting е стандартна практика в разработката на софтуер. Въпреки че няма вграден линтер в стандартната библиотека на Go, в екосистемата Go съществуват много инструменти за линтинг на трети страни. Те включват пакетите GolangCI Lint, Go Meta Linter и Staticcheck.





MAKEUSEOF ВИДЕО НА ДЕНЯ

Пакетът GolangCI Lint

  Лого на GolangCI Lint, син гофер, който държи щит с нарисувана на него буболечка

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





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

Изпълнете тази терминална команда в работната директория на вашия проект, за да инсталирате пакета Golangci-lint:



 go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.1 

Вашата версия Go трябва да е 1.19 или по-нова за командата за инсталиране на пакета. Можете също така да проверите golangci-lint инсталации страница за други налични методи за инсталиране.

Командата ще инсталира GolangCI на вашата система като CLI инструмент. Можете да проверите инсталацията с тази команда:





 golangci-lint --version 

Командата трябва да покаже версията на golangci-lint, която сте инсталирали.

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

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





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

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

 golangci-lint config > .golangci.yml 

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

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

как да поставите лентата за гледане на ябълки
  Инструкции за използване на YAML файл Golangci-lint

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

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

 golangci-lint help linters 

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

  резултат от изпълнението на командата help на Golangci-lint

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

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

 package main 

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, world!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

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

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

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

 linters-settings: 
  deadcode:
    # ignore all test files
    skip-files: "_test\.go$"
  govet:
    # disable shadowing check
    check-shadowing: false
  golint:
    # ignore errors about exported function names
    exclude-use-default-exported: true

    # ignore errors about underscores in package names
    exclude-useless-naming: true
  gosec:
    # disable gosec tests, since they are slow and can produce false positives
    tests: false
  unused:
    # report unused function arguments, but not unused variables
    check-exported: true
    check-blank: true
    check-tests: true

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

 golangci-lint run 

# equivalent, runs all programs
golangci-lint run ./...

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

  golangci-lint run dir1 dir2/... dir3/file1.go

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

  резултат от изпълнението на linter на http програма

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

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

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

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

как да поправя skype не може да се свърже