본문 바로가기

서적/기술서적

[클린코드] 3장 함수

728x90
반응형

함수


  • 작게 만들어라
    • 블록과 들여쓰기 - 들여쓰기 수준은 1단 or 2단을 넘어서는 안된다.
  • 한 가지만 해라
    • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.
  • 함수 당 추상화 수준은 하나로
  • 함수명에 서술적인 이름을 사용하라
    • getUser 보단 getUserIdAndPwd가 더 좋은 함수명
    • 함수의 코드를 읽으면서 함수명에서 짐작했던 기능을 그대로 수행한다면 깨끗한 코드
  • 함수 인수
    • 함수에서 이상적인 인수 개수는 0이다.
      why? - 인수는 함수를 사용하는 독자가 이해하기 어렵다.
    • 플래그 인수 - 함수 사용시 true 와 false를 넘기는 인수
      플래그 인수는 추하다
      why? - 함수가 한꺼번에 여러 가지를 처리 한다고 공표하는 함수니.
      ( true일때 이거하고 false일때 이거하고..... )
  • 부수 효과를 일으키지 마라
    • 함수의 한가지 역할을 제외한 그외의 효과를 넣어선 안된다.
    • 출력 인수 
      • 받은 인자를 다시 수정을 통해 보내주는 함수를 만들지 마라.

        ex ) public stringbuffer appendName( stringbuffer name ) {
        ....
        return name
        }
  • 명령과 조회를 분리하라
  • 오류 코드보다 예외를 사용하라
  • 반복하지 마라
    • 프로그래밍 언어의 진화는 중복제거의 역사이다.
  • 함수를 어떻게 짜죠?
    • 글짓기와 같다 
    • 처음엔 길고 복잡하지만 단위테스트를 통과하는 함수를 작성한다.
    • 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거하며 메서드를 줄이고 순서를 바꾼다 ( 리팩토링 )
    • 단위테스트를 통과한다
728x90

'서적 > 기술서적' 카테고리의 다른 글

객체지향의 사실과 오해  (0) 2022.05.11