Google Java Style Guide

2023. 10. 20. 23:10· JAVA
목차
  1. # Formatting
  2. # Naming
  3. # Programming Practices

우테코 프리코스 1주차 문제를 풀었는데 코드가 너무 더럽다,,, clean code가 어떤 느낌인지 알아보고자 우테코에서 제공해준 Google Java Style Guide에서 유용하게 쓰일 것 같은 부분만 정리해봤다⭐️

 

Google Java Style Guide

1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style if and only if it adheres to the rules herein. Like ot

google.github.io


# Formatting

## Braces(중괄호)

1. body가 없거나 한 줄 구문인 경우에도 중괄호가 쓰인다.

2. 비어있지 않은 블록 : K & R style

  • 1️⃣ 아래의 경우들을 제외하고는 여는 중괄호 앞에 줄바꿈이 없다. 
  • 2️⃣ 여는 중괄호 뒤의 줄바꿈
  • 3️⃣ 닫는 중괄호 앞의 줄바꿈
  • 4️⃣구문을 끝내거나 메서드, 생성자, 클래스의 body를 끝내는 중괄호인 경우에만 닫는 중괄호 뒤에 줄바꿈을 쓴다.
    예를 들어, 5️⃣ else나 콤마가 뒤에 오는 중괄호 뒤에는 줄바꿈이 없다.
return () -> 1️⃣ { 2️⃣ 
  while (condition()) {
    method();
  }
};

return new MyClass() 1️⃣ { 2️⃣ 
  @Override public void method() {
    if (condition()) {
      try {
        something();
    3️⃣} catch (ProblemException e) {
        recover();
      }
  3️⃣}5️⃣else if (otherCondition()) {
      somethingElse();
    }5️⃣else {
      lastThing();
    }
  }4️⃣
};

3. 빈 블록들 : 간결할 수 있음

  • 빈 블록이나 block-like contruct는 2번에서 설명한 K & R style일 수 있다.
  • multi-block 구문(if/else, try/catch/finally)의 일부분이 아닌 한 {} 사이에 문자나 줄 바꿈 없이 열린 후 즉시 닫을 수 있다.
// 허용
void doNothing() {}

// 허용
void doNothingElse() {
}

// 허용X : multi-block statement
try {
doSomething();
} catch (Exception e) {}

## 들여쓰기

들여쓰기 지속은 최소 +4 스페이스

  • 줄 바꿈할 떄, 각 줄은 원래 줄보다 +4 스페이스만큼 들여쓰기 한다.

# Naming

## 식별자 유형별 규칙

1. 패키지 이름

  • _없이 소문자와 숫자만 사용

2. 클래스 이름

  • lowerCamelCase
  • 일반적으로 명사나 명사구 사용
    ex) Character, ImmutableList
  • 인터페이스 이름 또한 명사나 명사구를 쓸 수 있지만 가끔 형용사나 형용사구가 쓰이기도 한다.
    ex) List, Readable
  • 테스트 클래스는 이름이 Test로 끝난다.
    ex) HashIntegrationTest

3. 메서드 이름

  • lowerCamelCase
  • 일반적으로 동사 또는 동사구 사용
    ex) sendMessage

4. 상수 이름

  • UPPER_SNAKE_CASE
  • 모두 대문자이고 각 단어는 _로 구분한다.

5. 상수가 아닌 필드 이름

  • lowerCamelCase
  • 일반적으로 명사나 명사구 사용

6. 파라미터 이름

  • lowerCamelCase
  • public 메서드에서 한 글자 파라미터 이름 사용하는 것은 피해야 한다.

7. 지역 변수 이름

  • lowerCamelCase

# Programming Practices

## @Override : 항상 사용


단, 부모 메서드가 @Deprecated인 경우에는 @Override 생략 가능

 

## Exception 잡기 : 생략하지 않기

전형적인 반응은 로그를 남기거나 불가능하다고 간주되는 경우 AssertionError를 다시 던진다.
만약 정말로 catch 블록에서 아무것도 하지 않는게 적합한 경우. 아무것도 하지 않아도 되는 정당한 이유를 주석으로 설명한다.

try {
  int i = Integer.parseInt(response);
  return handleNumericResponse(i);
} catch (NumberFormatException ok) {
  // 이것은 숫자가 아니다; 괜찮으니 continue해라
}
return handleTextResponse(response);

단, 테스트에서 발견되 exception의 이름이 expected이거나 expected로 시작하는 경우, 주석 없이 생략될 수 있다. 다음은 테스트 중인 코드가 예상되는 타입의 exception을 발생시키는 것이 확실한 관용구이기 때문에 주석이 필요하지 않다.

try {
  emptyStack.pop();
  fail();
} catch (NoSuchElementException expected) {
}

 

저작자표시 (새창열림)

'JAVA' 카테고리의 다른 글

int와 Integer 차이  (0) 2023.08.30
  1. # Formatting
  2. # Naming
  3. # Programming Practices
'JAVA' 카테고리의 다른 글
  • int와 Integer 차이
하얀 돌덩이
하얀 돌덩이
하얀 돌덩이
돌덩이
하얀 돌덩이
전체
오늘
어제
  • 분류 전체보기 (59)
    • 개발 일지 (2)
    • 스프링 (1)
    • JAVA (2)
    • 딥러닝 (10)
    • 알고리즘 (43)
      • 개념 (4)
      • 프로그래머스 (5)
      • 백준 (34)
    • 후기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
하얀 돌덩이
Google Java Style Guide
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.