Linting은 잠재적인 코드베이스 오류를 식별하기 위한 정적 코드 분석 유형입니다. Linter는 코드에서 구문 오류 및 스타일 문제를 분석합니다. 이 프로세스는 버그를 방지하고, 가독성을 개선하고, 모범 사례를 적용하고, 시간을 절약하는 데 도움이 될 수 있습니다.
Linting은 소프트웨어 개발의 표준 관행입니다. Go의 표준 라이브러리에는 린터가 내장되어 있지 않지만 Go 생태계에는 많은 타사 린트 도구가 있습니다. 여기에는 GolangCI Lint, Go Meta Linter 및 Staticcheck 패키지가 포함됩니다.
오늘의 메이크업 비디오
GolangCI 린트 패키지
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-린트 목록 프로세스를 구성하는 데 사용할 수 있는 도구 및 옵션.
모든 웹사이트에서 보호된 비디오를 다운로드하는 방법
프로그램에 대한 Linting 규칙을 추가하려면 파일을 편집해야 합니다. 사용 가능한 린터의 전체 목록은 다음에서 찾을 수 있습니다. golangci-lint 린터 문서 페이지. 또는 다음을 실행할 수 있습니다. 도움 린터 명령줄에서 린터를 보려면 다음 명령을 사용하십시오.
golangci-lint help linters
이 명령은 설치한 패키지 버전에 사용할 수 있는 모든 린터를 출력합니다.
린터 실행
다음은 '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를 실행한 결과입니다.
그만큼 golangci-린트 도구는 다목적이며 구성은 프로젝트에 따라 달라집니다.
ESLint로 JavaScript 프로젝트를 Lint할 수 있습니다.
린팅은 널리 사용되는 소프트웨어 개발 작업이며 대부분의 프로그래밍 언어와 IDE는 프로그램 린팅을 위한 도구를 제공합니다. JavaScript의 경우 ESLint가 가장 많이 사용되는 린터입니다.
Eslint는 CLI, IDE 및 텍스트 편집기 도구에서 업계 표준을 따르는 여러 린팅 규칙을 제공하므로 린팅 도구는 JavaScript 개발자에게 탁월한 선택입니다.