Agent skill · software engineering · affaan-m

golang-patterns

견고하고 효율적이며 유지보수 가능한 Go 애플리케이션 구축을 위한 관용적 Go 패턴, 모범 사례 및 규칙.

Why this skill is useful

Provides specific idiomatic Go patterns and best practices that enhance code quality and maintainability, which the AI may not generate reliably on its own.

What it needs

About 8k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

Go 개발 패턴 견고하고 효율적이며 유지보수 가능한 애플리케이션 구축을 위한 관용적 Go 패턴과 모범 사례. 활성화 시점 새로운 Go 코드 작성 시 Go 코드 리뷰 시 기존 Go 코드 리팩토링 시 Go 패키지/모듈 설계 시 핵심 원칙 1. 단순성과 명확성 Go는 영리함보다 단순성을 선호합니다. 코드는 명확하고 읽기 쉬워야 합니다. 2. 제로 값을 유용하게 만들기 제로 값이 초기화 없이 즉시 사용 가능하도록 타입을 설계하세요. 3. 인터페이스를 받고 구조체를 반환하기 함수는 인터페이스 매개변수를 받고 구체적 타입을 반환해야 합니다. 에러 처리 패턴 컨텍스트가 있는 에러 래핑 커스텀 에러 타입 errors.Is와 errors.As를 사용한 에러 확인 에러를 절대 무시하지 말 것 동시성 패턴 워커 풀 취소 및 타임아웃을 위한 Context 우아한 종료 조율된 고루틴을 위한 errgroup 고루틴 누수 방지 인터페이스 설계 작고 집중된 인터페이스 사용되는 곳에서 인터페이스 정의 타입 어서션을 통한 선택적 동작 패키지 구성 표준 프로젝트 레이아웃 패키지 명명 패키지 수준 상태 피하기 구조체 설계 함수형 옵션 패턴 합성을 위한 임베딩 메모리 및 성능 크기를 알 때 슬라이스 미리 할당 빈번한 할당에 sync.Pool 사용 루프에서 문자열 연결 피하기 Go 도구 통합 필수 명령어 권장 린터 구성 (.golangci.yml) 빠른 참조: Go 관용구 관용구 설명 ------- ------------- Accept interfaces, return structs 함수는 인터페이스 매개변수를 받고 구체적 타입을 반환 Errors are values 에러를 예외가 아닌 일급 값으로 취급 Don't communicate by sharing memory 고루틴 간 조율에 채널 사용 Make the zero value useful 타입이 명시적 초기화 없이 작동해야 함 A little copying is better than a little dependency 불필요한 외부 의존성 피하기 Clear is better than clever 영리함보다 가독성 우선 gofmt is no one's favorite but everyone's friend 항상 gofmt/goimports로 포맷팅 Return early 에러를 먼저 처리하고 정상 경로는 들여쓰기 없이 유지 피해야 할 안티패턴 기억하세요: Go 코드는 최고의 의미에서 지루해야 합니다 - 예측 가능하고, 일관적이며, 이해하기 쉽게. 의심스러울 때는 단순하게 유지하세요.

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/golang-patterns--26a4ce

View the source on GitHub

Browse the @skills marketplace