1. 포맷팅이 중요한 이유
- 가독성에 필수적이다. 코드를 수월하게 읽어나갈 수 있고, 아마추어처럼 보이지 않는다. 포맷팅으로 인해 코드를 잘못해석해서 버그를 발생할 위험을 줄인다.
// 포맷팅이 맞지 않아 가독성 낮은 예시
public void horriblyFormattedMethod() {
System.out.println("First line");
System.out.println("Second line");
System.out.println("Third line");
for (int i = 0; i< 3; i++)
System.out.println("number " + i);
}
// 가독성이 높은 코드
public void horriblyFormattedMethod() {
System.out.println("First line");
System.out.println("Second line");
System.out.println("Third line");
for (int i = 0; i< 3; i++) {
System.out.println("number " + i);
}
}
2. 클린코드 포맷팅
- 적절한 길이 유지 : 코드 길이는 200라인으로 제한하는 것을 권장한다. 현업에서도 200라인 정도를 유지한다. 코드길이가 200라인을 넘어간다면, 클래스가 여러가지 일을 하고 있을 수 있다. (SRP 위배)
- 밀접한 개념은 가까이 둔다 : 행 묶음은 완결된 생각 하나를 표현하기 때문에 이후에 빈 행으로 분리한다. 또, 변수는 사용되는 위치에서 최대한 가까이 선언한다.
3. Java Class Declarations
Class 내부 코드 순서를 맞추어 개발해야 한다.
1) static 변수가 가장 상단에 있어야 한다. 같은 static 변수라면 public → protected → package → private 순서로 선언한다.
2) 그 다음은 instance 변수 : public → protected → package → private
3) 그 다음은 클래스의 생성자
4) 그 다음은 메서드 : 변수는 접근지정자를 기준으로 선언했다면, 메서드는 가독성 위주로 그룹핑한다. public 메서드에서 호출되는 private 메서드는 그(public) 아래에 둔다. (바로 읽고 이해하기 좋다.)
package java.blah;
import java.blah.blahdy.BlahBlah;
public class Blah extends SomeClass {
public static int classVar1;
private static Object classVar2;
public Object instanceVar1;
protected int instanceVar2;
public Blah() {
}
public void doSomething() {
}
public void doSomethingElse(Object someParams) {
}
}
4. Team Coding Convention
팀의 코딩 스타일에 관한 약속이다. 개발 언어의 컨벤션이 우선이지만, 애매한 부분은 팀 컨벤션을 따른다. 없다면 제안하는 것도 리뷰 시 언쟁이 길어지지 않는 하나의 방법이다.
ex.
mySql 컨벤션 : 컬럼명은 snake_case 네이밍이 원칙
팀 컨벤션 : enum 타입으로 사용하는 varchar 타입인 경우, 컬럼명은 _type으로 끝나도록 네이밍한다.
5. 참고할 만한 컨벤션
Google Java Style Guide : https://google.github.io/styleguide/javaguide.html
Naver Hackday Java Convention : https://naver.github.io/hackday-conventions-java/
'Book Review > Clean Code' 카테고리의 다른 글
[클린 코드] 4장. 주석 (0) | 2022.02.02 |
---|---|
[클린 코드] 3장. 함수 (0) | 2021.12.27 |
[클린 코드] 1, 2장. 깨끗한 코드, 의미 있는 이름 (0) | 2021.12.27 |
[클린 코드] 스터디 시작 (0) | 2021.12.27 |