[클린코드] 챕터3 - 함수

이호석·2022년 2월 22일
0

클린코드

목록 보기
4/9

챕터 3. 함수

작게 만들어라

함수를 만드는 첫 번째 규칙은 '작게!'다. 함수를 만든느 두 번째 규칙은 '더 작게!'다. 지금까지 경험을 바탕으로, 또한 오랜 시행착오를 바탕으로 작은 함수가 낫다고 확신한다.

나 또한 작은 경험으로도 함수가 작을수록 유지보수가 편하다는 것을 알게 됐다. 책에서는 예시를 들기 위해 대략 50줄 함수를 5줄로 줄였다. 이는 이 함수가 어떤 일을 하는지 코드를 본 동시에 알 게 되는 것이고, 하나의 함수가 하나의 일을 해야한다는 것에 부합한다.

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

함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장이 동일한 추상화 수준에 있어야 한다.

물론 따지자면 하나의 함수가 단 하나의 일만 한다고는 할 수 없겠지만, 여기서는 함수가 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면, 그 함수는 한 가지의 작업만 한다고 말한다.

함수 인수

함수에서 이상적인 인수 개순느 0개(무항)이다. 다음은 1개이고, 다음은 2개이다. 3개는 가능한 피하는 편이 좋다.

사실 인수의 개수를 줄이는 명확한 이유를 모르겠다. 다만 인수가 많아질 수록 함수는 이해하기 어려워지며 함수가 다양한 일을 한다는 것에는 동의한다. 특히 플래그 인수(참, 거짓)을 쓰지 마라는 것은 기억해야할 부분이다.

요약

  • 내려가기 규칙 - 코드는 위에서 아래로 이야기처럼 읽혀야 좋다.
  • 서술적인 이름을 사용하라 - 함수의 이름을 보면서 그 함수가 어떤 일을 하는지 짐작이 가능해야 한다.
  • 명령과 조회를 분리하라 - 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야한다.
  • Try/Catch 블록 뽑아내기 - try/catch 블록은 정상적인 동작과 오류 처리 동작을 뒤섞으므로 별도 함수로 뽑아 내는 것이 좋다.
  • 반복하지 마라 - 중복이 늘어날 수록 손봐야 할 곳이 늘어나는 것이다.

3강 후기

이번 강에서는 프로그램의 본질이라고 할 수 있는 함수에 대해서 배웠다. 여기서 설명한 규칙인 길이가 짧고, 이름이 좋은 함수를 만드는 것을 유지하는게 쉽지는 않겠지만 본질을 지저분하게 하면 전체 프로그램이 더러워지는 것과 마찬가지기에 항상 깔끔하고 단정하게 유지해야한다.

0개의 댓글