본문 바로가기
책정리/방법론

클린코드 - 3장 함수

by 난파선 2017. 1. 10.


3장 함수

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

댓글