오라클에서 발표한 자바 코딩 규약이 널리 사용되고 있기는 하지만 너무 내용이 방대하고 예외를 적용할 수 있는 범위가 넓어 대부분의 기업이나 프로젝트에서는 이를 바탕으로 자신만의 룰을 만들어 사용하는 경우가 많다.
아직 코딩규약을 가지고 있지 않거나 기존 코딩규약에 대해 만족하지 못하고 있다면 구글의 코딩 규약을 참조하는것이 많은 도움이 될 것이다.
Google Java Style
이 규약은 강제력을 가진 룰 로서 구글 전체가 따르도록 되어 있어 아마도 룰을 따르지 않은 코드는 Checkstyle과 같은 자동화된 정적 코드 체커를 통해 에러로서 취급될 것이다.
이클립스를 사용하고 있다면 코드 포메터 임포트하여 편리하게 구글 코딩 스타일을 사용 할 수 있다.
Eclipse용 Google 스타일 코드 포메터
잘못된 네이밍과 관련해서 고민하지 말자. 이클립스를 포함해 대부분의 IDE는 리네임과 같은 편리한 리팩토링 기능을 기본적으로 지원한다. |
이 규약은 여섯가지 영역으로 구성되어 있으며 각각의영역에서 다루는 내용은 다음과 같다.
- 소스코드 기초 - 파일 네이밍, 파일 인코딩, 특수문자, Non-Ascii 문자
- 소스코드 구조 - 저작권표시, 패키지 설명, 임포트 설명, 클래스 선언
- 소스 포멧 - 괄호, 인덴트, 서술식, 줄당 문자수, 스페이스, 줄바꿈, 특정구문(Enum, 변수선언, 배열, 스위치문, 어노테이션, 커맨트, 변환자, 숫자)
- 네이밍 - 패키지, 클래스, 매소드, 상수, 비상수, 파라메터, 지역변수, 타입변수, 대소문자사용
- 프로그래밍 방법 - Override어노테이션, 예외처리, 정적 맴버변수, 종료자
- Javadoc - 포멧, 요약단편, Javadoc이 필요한곳
몇가지 특이한 점을 꼽아보자면 다음과 같다.
- 와일드 카드 임포트 사용 금지 - 이클립스 보급 이후로는 사실상 와일드카드 임포트는 찾아보기 어렵게 되었다.
- 2스페이스 들여쓰기- 들여쓰기에 있어서 2스페이스냐 4스페이스냐는 프로그래밍 역사상 가장 오래된 논란거리중 하나인데, 어쨌든 구글은 2스페이스 인덴트를 택했다. 모니터가 크면 별 상관이 없지만 노트북으로 작업을 하는경우, 들여쓰기에 의해 코드가 한줄에 안보이게 된다면 은근히 짜증이 난다.
- 줄당 문자수 - 80 또는 100 문자. 80문자까지 제약하는것은 역시 노트북으로 작업하는 이가 많은 구글의 문화적 특성인 듯 하다.
- C스타일 배열 선언 사용 금지 - String[] args ○ , String args[] X
- 스위치문 사용시엔 반드시 default구를 정의할것
- 지시자의 표기는 다음과 같은 자바언어 사양상의 등장 순서를 지킨다
public protected private abstract static final transient volatile synchronized native strictfp구글에서는 다른 언어들에 대해서도 코딩 스타일 표준을 가지고 있다.
- C++ Style Guide
- Objective-C Style Guide
- Python Style Guide
- Shell Style Guide
- HTML/CSS Style Guide
- JavaScript Style Guide
- AngularJS Style Guide
- Common Lisp Style Guide
댓글 없음:
댓글 쓰기