Chapter 05. 형식 맞추기 : 코드의 가독성에 필수적인 포맷팅
01 포맷팅이 중요한 이유
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 );
}
}
- 가독성이 필수적이다.
- 코드를 수월하게 읽어나갈 수 있다.
- 포맷팅으로 인해 코드를 잘못해석해 버그 발생 위험을 줄일 수 있다.
02 클린코드 포맷팅
📍 적절한 길이 유지 : ~ 200 lines < 500 lines
- "코드 길이를 200줄 정도로 제한하는 것은 반드시 지킬 엄격한 규칙은 아니지만, 일반적으로 큰 파일 보다는 작은 파일이 이해하기 쉽다" -> 현업에서의 대부분의 코드들도 200라인 정도를 유지한다.
- 코드 길이가 200라인을 넘어간다면, 클래스가 여러 개의 일을 하고 있을 수 있다. 이 때, SRP가 위배된다.
📍 밀접한 개념은 서로 가까이
public class BoldWidget extends ParentWidget {
public static final String REGEXP ="'''.+?'''";
private static final Pattern pattern = Pattern.compile("''' (.+?) '''",
Pattern.MULTILINE + Pattern.DOTALL
);
public BoldWidget(ParentWidget parent, String text) throws Exception {
super(parent);
Matcher match = pattern.matcher(text);
match.find( );
addChildWidgets(match.group(1));
}
public String render( ) throws Exception {
StringBuffer html = new StringBuffer("<b>");
html.append(childHtml()).append("</b>");
return html.toString();
}
}
- 행 묶음은 완결된 생각 하나를 표현하기 때문에 개념은 빈 행으로 분리한다.
- 변수는 사용되는 위치에서 최대한 가까이 선언한다.
03 Java Class Declarations
📍 Class 내부에서 선언되는 코드 순서
1. static 변수
public -> protected -> package -> private 순서
2. instance 변수
public -> protected -> package -> private 순서
3. 생성자
4. 메서드
public 메서드에서 호출되는 private 메서드는 그 아래에 둔다. 가독성 위주로 grouping.
public String Blah extends SomeClass {
public static int classVar1;
private static Object classVar2;
public Object instanceVar1;
protected int instanceVar2;
private Object[] instanceVar3;
public Blah( ) {
// .... implementation goes here...
}
public void doSomething( ) {
// .... implementation goes here...
}
public void doSomethingElse(Object someParam) {
// .... implementation goes here...
}
}
04 Tean Coding Convention
📍 Coding Convention : 코딩 스타일에 관한 약속
📍 Team Coding Convention : 팀의 코딩 스타일에 관한 약속
- 개발 언어의 컨벤션이 우선이지만, 애매한 부분은 팀 컨벤션을 따른다.
- 없다면 함께 만들어 가는 것도 good 👍
MySQL Convention
컬럼명은 snake_case로 네이밍한다.
Team Convention
enum 타입으로 사용하는 varchar 타입의 경우 컬럼명의 _type 으로 끝나도록 네이밍한다.
'책 > 클린코드' 카테고리의 다른 글
[클린코드 완독하기] Chapter 07 오류 처리 (0) | 2021.09.26 |
---|---|
[클린코드 완독하기] Chapter 06 객체와 자료구조 (0) | 2021.09.23 |
[클린코드 완독하기] Chapter 04 주석 (0) | 2021.09.18 |
[클린코드 완독하기] Chapter 03 함수 (0) | 2021.09.17 |
[클린코드 완독하기] Chapter 01~02 깨끗한 코드와 의미있는 이름 (0) | 2021.09.15 |