Code Convention - leegwichan/StackOverFlow_Refactoring GitHub Wiki

기본적인 Code Convention

참고 자료

2. Source file basics

  • 2.1 File name
    • 가장 상위에 작성된 class 이름과 동일, 확장자는 .java를 사용
  • 2.2 File encoding: UTF-8
  • 2.3 Special characters
    • Whitespace characters
      • 소스 파일에서는 ASCII horizontal space character (0x20) 만을 사용한다.
    • Special escape sequences
      • 특정 문자(\b, \t, \n, \f, ...)들은 octal, Unicode 형식이 아닌 "\n" 과 같은 형식을 사용한다.
    • Non-ASCII characters
      • 아래와 같은 방법을 이용한다.
      // 가장 좋은 방법
      String unitAbbrev = "μs";
      
      // 나타낼 수 없는 문자에는 Unicode를 사용하고 필요한 경우 주석을 달 수 있다.
      return '\ufeff' + content; // byte order mark
      

3. Source file structure

  • 아래와 같은 순서대로 작성하고 각 부분마다 BLANK LINE을 만든다.
  • 3.1 License or copyright information
    • 있다면 작성하고 아니면 작성하지 않는다.
  • 3.2 Package statement
  • 3.3 Import Statement
    • No wildcard imports : 뒤에 "*"을 이용해서 여러 class, method를 import하지 않는다.
    • Ordering and spacing : static imports 를 우선적으로 적고 non-static imports를 한칸 띄고 적음
  • 3.4 Class declaration

4. Formatting

5. Naming

6. Programming Practices

보기 편하기 위한 Code Convention

1. method

  • 메서드의 길이가 15라인을 넘어가지 않도록 구현한다.
  • 메서드가 한 가지 일만 하도록 최대한 작게 만들어라.
  • 메서드의 파라미터 개수는 최대 3개까지만 허용한다.

2. 반복문, 조건문

  • indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
    • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
  • 3항 연산자를 쓰지 않는다.
  • else 예약어를 쓰지 않는다.
  • switch/case는 최소한으로 사용한다.

3. 테스트

  • JUnit 5와 AssertJ를 이용하여 본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다.