GolangCI Lint 패키지로 Go 프로그램 Lint

GolangCI Lint 패키지로 Go 프로그램 Lint
당신과 같은 독자는 MUO를 지원하는 데 도움이 됩니다. 귀하가 당사 사이트의 링크를 사용하여 구매하면 당사는 제휴 수수료를 받을 수 있습니다. 자세히 알아보기

Linting은 잠재적인 코드베이스 오류를 식별하기 위한 정적 코드 분석 유형입니다. Linter는 코드에서 구문 오류 및 스타일 문제를 분석합니다. 이 프로세스는 버그를 방지하고, 가독성을 개선하고, 모범 사례를 적용하고, 시간을 절약하는 데 도움이 될 수 있습니다.





Linting은 소프트웨어 개발의 표준 관행입니다. Go의 표준 라이브러리에는 린터가 내장되어 있지 않지만 Go 생태계에는 많은 타사 린트 도구가 있습니다. 여기에는 GolangCI Lint, Go Meta Linter 및 Staticcheck 패키지가 포함됩니다.





오늘의 메이크업 비디오

GolangCI 린트 패키지

  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 설치 사용 가능한 다른 설치 방법은 페이지를 참조하십시오.

이 명령은 CLI 도구로 시스템에 GolangCI를 설치합니다. 다음 명령으로 설치를 확인할 수 있습니다.





 golangci-lint --version 

이 명령은 설치한 golangci-lint의 버전을 표시해야 합니다.

린터 구성

린터는 매우 다재다능합니다. , 따라서 린터를 설치하려면 프로젝트에 대한 린터를 구성해야 합니다.





그만큼 golangci-린트 도구 사용 구성을 위한 YAML 파일 . 패키지가 읽을 수 있도록 YAML 파일에 린터 설정을 지정합니다.

다음 명령을 사용하여 기본 구성 파일을 만들 수 있습니다.

 golangci-lint config > .golangci.yml 

이 명령은 이름이 지정된 새 파일을 만듭니다. .golangci.yml 현재 디렉토리에서. 계속해서 이 파일을 편집하여 프로젝트에 대한 linter를 구성할 수 있습니다.

다음은 의 내용입니다. .golangci.yml 다음 명령을 실행할 때 파일:

  Golangci-lint YAML 파일 사용 지침

파일에는 다음에 대한 정보가 포함되어 있습니다. golangci-린트 목록 프로세스를 구성하는 데 사용할 수 있는 도구 및 옵션.

모든 웹사이트에서 보호된 비디오를 다운로드하는 방법

프로그램에 대한 Linting 규칙을 추가하려면 파일을 편집해야 합니다. 사용 가능한 린터의 전체 목록은 다음에서 찾을 수 있습니다. golangci-lint 린터 문서 페이지. 또는 다음을 실행할 수 있습니다. 도움 린터 명령줄에서 린터를 보려면 다음 명령을 사용하십시오.

 golangci-lint help linters 

이 명령은 설치한 패키지 버전에 사용할 수 있는 모든 린터를 출력합니다.

  Golangci-lint에서 help 명령을 실행한 결과

린터 실행

다음은 'Hello, World!'를 린팅하는 데모입니다. 를 사용하는 프로그램 넷/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)
}

이 프로그램은 매니저 작가에서 가져오고 인스턴스를 요청하는 기능 http 패키지의 ResponseWriter 그리고 요구 구조체 유형. 그만큼 매니저 함수는 'Hello, World!'를 작성합니다. 요청시 클라이언트에게.

그만큼 기본 함수는 / 경로 매니저 기능 및 듣고 봉사 함수는 localhost 포트에서 서버를 시작합니다. 8080 .

그만큼 듣고 봉사 함수는 오류를 반환하지만 프로그램은 이를 무시합니다. 이 구성은 린터가 문제를 강조 표시하도록 합니다.

 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를 실행한 결과입니다.

  http 프로그램에서 린터를 실행한 결과

그만큼 golangci-린트 도구는 다목적이며 구성은 프로젝트에 따라 달라집니다.

ESLint로 JavaScript 프로젝트를 Lint할 수 있습니다.

린팅은 널리 사용되는 소프트웨어 개발 작업이며 대부분의 프로그래밍 언어와 IDE는 프로그램 린팅을 위한 도구를 제공합니다. JavaScript의 경우 ESLint가 가장 많이 사용되는 린터입니다.

Eslint는 CLI, IDE 및 텍스트 편집기 도구에서 업계 표준을 따르는 여러 린팅 규칙을 제공하므로 린팅 도구는 JavaScript 개발자에게 탁월한 선택입니다.