구글 Go 스타일

1 개요[ | ]

Go Style, Google Go Style
고 스타일, 구글 Go 스타일

2 소개[ | ]

Go 스타일 가이드 및 함께 제공되는 문서는 읽기 쉽고 관용적인 Go를 작성하기 위한 현재 최상의 접근 방식을 체계화한다. 스타일 가이드에 대한 준수는 절대적인 것이 아니며 이러한 문서는 절대 완전하지 않다. 우리의 의도는 언어를 처음 접하는 사람들이 일반적인 실수를 피할 수 있도록 읽기 쉬운 Go를 작성하는 추측을 최소화하는 것이다. 스타일 가이드는 Google에서 Go 코드를 검토하는 모든 사람이 제공하는 스타일 가이드를 통합하는 역할도 한다.

문서 링크 주요 청중 규범적(normative) 정식표준(canonical)
스타일 가이드 https://google.github.io/styleguide/go/guide 모두 Yes Yes
스타일 의사결정 https://google.github.io/styleguide/go/decisions 가독성 멘토 Yes No
베스트 프랙티스 https://google.github.io/styleguide/go/best-practices 관심 있는 누구나 No No

3 문서화[ | ]

  1. 스타일 가이드는 Google에서 Go 스타일의 기초 윤곽을 잡는다. 이 문서는 확고하며, 스타일 의사결정 및 모범사례의 권장사항에 대한 기초로 사용한다.
  2. 스타일 의사결정은 특정 스타일 포인트에 대한 의사결정을 요약하고 적절한 경우 의사결정 이면의 추론을 논의하는, 보다 상세한 문서이다.
    이러한 의사결정은 때로 새로운 데이터, 새로운 언어 기능, 새로운 라이브러리, 새로운 패턴에 따라 변경될 수 있지만 Google의 개별 Go 프로그래머가 이 문서를 최신 상태로 유지해야 하는 것은 아니다.
  3. 모범 사례는 일반적인 문제들을 해결하면서도 잘 읽히고 코드 유지관리 요구사항을 충족하는, 세월이 지나면서 진화한 패턴들을 문서화한다.
    이러한 모범 사례는 정식표준(canonical)은 아니지만 Google의 Go 프로그래머는 코드베이스를 균일하고 일관되게 유지하기 위해 가능한 경우 이를 사용하는 것이 좋다.

4 정의[ | ]

스타일 문서 전체에서 사용되는 용어를 다음과 같이 정의한다.

  • 정식표준(canonical): 정식적이고 지속적인 규칙 수립
이 문서에서 "정식표준(canonical)"은 모든 코드(이전 코드와 새 코드)가 따라야 하고 시간이 지나도 크게 변경되지 않을 것으로 예상되는 표준으로 간주되는 것을 설명하는 데 사용한다.
정통적 문서의 원칙은 저자와 검토자 모두가 이해해야 하므로 정통적 문서에 포함된 모든 내용은 높은 기준을 충족해야 한다.
따라서 정통적 문서는 일반적으로 비정규 문서보다 길이가 짧고 스타일 요소가 적다.
https://google.github.io/styleguide/go#canonical
  • 규범적(normative): 일관성 확립 목적
이 문서에서 "규범적(normative)"은 제안, 용어, 정당성을 일관되게 유지하기 위해 Go 코드 검토자가 사용하기로 합의한 스타일 요소를 설명하는 데 사용한다.
이러한 요소는 시간이 지남에 따라 변경될 수 있으며 이러한 문서는 검토자가 일관되고 최신 상태를 유지할 수 있도록 이러한 변경 사항을 반영한다.
Go 코드 작성자는 규범적 문서에 익숙하지 않을 수 있는데, 가독성 검토에서는 검토자가 참조로 자주 사용한다.
https://google.github.io/styleguide/go#normative
  • 관용적(idiomatic): 일반적이고 친숙한 것
이 문서에서 "관용적(idiomatic)"은 Go 코드에서 널리 퍼져 있고 인식하기 쉬운 친숙한 패턴이 된 것을 가리키는 데 사용한다.
일반적으로 둘 다 문맥상 동일한 목적을 제공하는 경우 관용적 패턴이 독자에게 가장 친숙할 것이기 때문에 관용적 패턴을 선호한다.
https://google.github.io/styleguide/go#idiomatic

5 추가 자료[ | ]

이 가이드는 전체 Go 커뮤니티에서 Go 코드에 대한 공통 기준을 제공하므로 독자가 Effective Go에 익숙하다고 가정한다 .

다음은 Go 스타일에 대해 독학하려는 사람들과 리뷰에서 더 연결 가능한 컨텍스트를 제공하려는 리뷰어를 위한 몇 가지 추가 리소스이다. Go 가독성 프로세스의 참가자는 이러한 리소스에 익숙하지 않을 것으로 예상되지만 가독성 검토에서 컨텍스트로 나타날 수 있다.

외부 자료
  • Go 팁 - 채널 고정
관련 '화장실에서 테스트' 글
추가 외부 글

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}