3장 함수
- 작게 만들어라
- If, else, while 문 등에 들어가는 블록은 한 줄이어야 한다.
- 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서는 안 된다.
- 한 가지만 해라
- 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업 하는 셈이다.
- 함수 당 추상화 수준은 하나로
- 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다.
- 위에서 아래로 코드 읽기 : 내려가기 규칙
- 서술적인 이름을 사용하라.
- 함수가 하는 일을 좀 더 잘 표현한다.
- 길고 서술적인 이름이 짧고 어려운 이름보다 좋다.
- 함수 인수
- 함수에서 이상적인 인수 개수는 무항이다.
- 인수는 개념을 이해하기 어렵게 만든다.
- 입력 인수를 변환하는 함수라면 변환 결과는 반환값으로 돌려준다.
- 이항 함수 assertEquals(expected, actual), 두 인수는 자연적인 순서가 없다. expected 다음에 actual이 온다는 수서를 인위적으로 기억해야 한다. (키워드를 추가해서 순서를 명시할 수 있다.)
- 인수가 2,3개가 필요하다면 일부를 독자적인 클래스 변수로 선언할 가능성을 짚어 본다.
- 부수 효과를 일으키지 마라
- 많은 경우 시간적인 결과이나 순서 종속성을 초래한다.
- 출력인수 : 함수 선언부를 찾아보고 나서야 알 수 있다.
- 명령과 조회를 분리하라
- 한수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다. (변경, 반환 중 하나)
- 오류 코드보다 예외를 사용하라.
- 여러 단계로 중첩되는 코드를 야기한다.
- 오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다.
- 의존성 자석 (수정 시 클래스 전부를 다시 컴파일해야 한다.)
- 반복하지 마라.
- 구조적 프로그래밍
- 함수는 return 문이 하나여야 한다.
- 루프 안에서 break나 continue를 사용해선 안 되며 goto는 절대로 안 된다.
- 함수를 작게 만든다면 간혹 return, break, continue를 여러 차례 사용해도 괜찮다.
'책정리 > 방법론' 카테고리의 다른 글
클린코드 - 6장 객체와 자료구조 (0) | 2017.01.12 |
---|---|
클린코드 - 5장 형식 맞추기 (0) | 2017.01.11 |
클린코드 - 4장 주석 (0) | 2017.01.10 |
클린코드 - 2장 의미있는 이름 (0) | 2017.01.10 |
댓글