클린코드 3 - 함수

yesjm·2024년 4월 16일
0

클린코드를 읽자

목록 보기
3/13

작게 만들어라

  • 20줄도 길다
  • if/else/while 문 등에 들어가는 블록은 한 줄이어야 한다
  • 중첩 구조가 생길만큼 함수가 커져서는 안된다

함수는 한 가지를 해야한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야한다

  • 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다

함수당 추상화 수준은 하나로

  • 내려가기 규칙: 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다.

Switch 문

  • 다형적 객체를 생성하는 코드 안에서 단 한 번만 참아준다.
  • 상속 관계로 숨긴 후 다른 코드에 노출하지 않는다.

서술적인 이름을 사용하라

  • testableHtml -> SetupTeardownIncluder.render
    함수가 하는 일을 좀 더 잘 표현하므로 훨씬 좋은 이름이다.
  • 길고 서술적인 이름이 짧고 어려운 이름보다 좋다.
  • 이름을 붙일땐 일관성이 있어야 한다.

함수 인수

  • 이상적인 인수 개수는 0개(무항) -> 1개(단항) -> 2개(이항)
  • 3개(삼항)는 가능한 피하는 편이 좋다.
  • 4개 이상은 특별한 이유가 있어도 사용하면 안된다.
  • 플래그 인수는 추하다

부수 효과를 일으키지 마라

  • 남몰래 다른짓을 하지 말자
  • 다른짓을 할거라면 이름을 제대로 짓자 (한 가지만 한다는 규칙을 위반하더라도)

명령과 조회를 분리하라

  • 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.

오류 코드보다 예외를 사용하라

  • 오류 코드 대신 예외 사용하면 코드가 깔끔해진다.
  • try/catch 블록은 별도 함수로 뽑아내는 편이 좋다.
  • 오류 처리도 한 가지 작업이다.

반복하지 마라

  • 중복은 소프트웨어에서 모든 악의 근원이다.

구조적 프로그래밍

  • 큰 함수에서는 return 문이 하나여야 한다.
    루프 안에서 break나 continue를 사용해선 안 되며 goto는 절대 안된다.
  • 하지만 함수를 작게 만든다면 return, break, continue를 여러 차례 사용해도 괜찮다.
profile
yesjm's second brain

0개의 댓글