'2021/11/17'에 해당되는 글 6건

02. source file structure :: 2021/11/17 10:38

개발자를 위한

Java Programming Style Guide (ref. Google style guide)

소스 파일 구조(Source file Structure)

소스 파일은 다음과 같은 순서로 구성되어 있습니다.

  1. 필요한 경우, 라이선스나 카피라이트 정보(License or Copyright Information)
  2. 패키지 선언문 (Package Statement)
  3. 임포트 선언문 (Import Statement)
  4. 유일한(Exactly One) 최상위 클래스(Top-Level Class)

위의 번호에 해당하는 섹션은 하나의 빈줄(Exactly one blank line) 구분합니다.

라이선스나 카피라이트 정보(license or copyright information)

만약 소스 파일에 라이선스나 카피라이트 정보를 포함해야 한다면, 소스 파일의 위에 첫번째로 작성합니다.

패키지 구문(package statement)

만약 소스 파일에 라이선스나 카피라이트 정보를 포함해야 한다면, 소스 파일의 위에 첫번째로 작성합니다.

임포트 구문(import statements)

  1. 와일드카드 임포트 미사용(No wildcard imports)

정적이든 아니든(static or otherwise), 와일드카드 임포트(wildcard imports) 사용하지 않습니다.

  1. 줄바꿈 미사용(No line-wrapping)

임포트 구문(import statement) 줄바꿈하지 않습니다. 제한(column limit) 임포트 구문에는 적용되지 않습니다. (소스코드에서는 100글자로 제한됩니다.)

  1. 순서와 간격(Ordering and Spacing)

임포트 구문에서는 다음과 같은 순서로 작성합니다.

  1) 모든 정적 임포트(static import) 단일 블록(single block) 작성합니다.

  2) 모든 비정적 임포트(non-static import) 단일 블록(single block) 작성합니다.

정적, 비정적 임포트 구문이 모두 있는 경우, 블록 사이는 단일 줄로 구분합니다. 이외 임포트 구문 사이에는 빈줄이 없어야 합니다.

블록 내에서 임포트 선언된 이름은 ASCII 정렬 순서로 나타납니다.

Note : ‘.’ ‘;’보다 먼저 정렬되기 때문에 ASCII 정렬 순서 내에 있는 임포트 구문과 동일하지 않습니다. , ‘.’ 단위로 구분되는 경우, ‘.’ 단위로 ASCII 정렬 순서대로 정렬되어야 합니다.

  1. 클래스에 대해 정적 임포트 미사용(No static import for classes)

정적 임포트(static import) 정적 중첩 클래스(static nested classes) 사용하지 않습니다. 정적 중첩 클래스에 대해서는 일반적인 임포트(normal import) 사용합니다.

클래스 선언(class declaration)

  1. 정확히 하나의 최상위 클래스 선언(Exactly one top-level class declaration)

소스 파일 최상위 클래스는 하나만 있어야 합니다.

  1. 클래스 내용의 순서(Ordering of class contents)

클래스의 멤버(member) 초기자(initializer) 대해 선택한 순서는 학습가능성(learnability) 영향을 미칠 있습니다. 하지만, 어떻게 올바르게 순서를 선택할지에 대한 하나의 완벽한 레시피(recipe) 없습니다. 다른 클래스는 다른 방법으로 클래스 컨텐츠의 순서를 정렬할 있습니다.

중요한 것은, 관리자(maintainer) 요구하면 설명할 있도록 클래스는 어떤 논리적인 순서(logical order) 사용한다는 것입니다. 예를 들어, 논리적인 순서가 아닌, “추가된 날짜별(chronological by date added)” 순서로 나타나는 경우에는 새로운 메서드(method) 습관적으로 클래스의 끝에 추가되지 않습니다.

  1) 오버로드(Overloads) : 절대로 분할하지 않아야

클래스에 여러 생성자(multiple constructors) 있는 경우나 동일한 이름의 여러 메서드(method) 있는 경우, 생성자나 메서드 사이에 다른 코드 없이(private member 생성자나 메서드 사이에 있으면 ) 순차적으로 나타납니다.

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret