[Clean Code] - 3. 함수

jaehee kim·2021년 8월 3일
1
post-thumbnail

3. 함수

작게 만들어라!

각 함수가 하나만을 표현하도록 하는 것이 좋다.

한 가지만 해라!

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

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

위에서 아래로 코드 읽기: 내려가기 규칙
코드는 위에서 아래로 이야기처럼 읽혀야 좋다.

서술적인 이름을 사용하라!

함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.
길고 서술적인 이름이 짧고 어려운 이름보다 좋다.
길고 서술적인 이름이 길고 서술적인 주석보다 좋다.

함수 인수

함수에서 이상적인 인수 개수는 0개 이다.

부수 효과를 일으키지 마라!

부수 효과는 거짓말이다. 함수에서 한 가지를 하겠다고 약속하고선 남몰래 다른 짓을 하는 것이다.

명령과 조회를 분리하라!

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

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

명령 함수에서 오류 코드를 반환하는 방식은 명령/조회 분리 규칙을 위반한다.
try/catch 블록은 별도의 함수로 만들어서 사용하는 것이 좋다.
오류 처리도 한 가지 작업이므로 오류를 처리하는 함수는 오류만 처리해야 한다.

반복하지 마라!

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

구조적 프로그래밍

함수를 작게 만든다면 return, break, continue를 여러 차례 사용해도 괜찮다.

함수를 어떻게 짜죠?

처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름도 즉흥적이고 코드는 중복된다. 하지만 단위 테스트 케이스도 만든다.
그런 다음 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다.

결론

master 프로그래머는 시스템을 구현할 프로그램이 아니라 풀어갈 이야기로 여긴다.
진짜 목표는 시스템이라는 이야기를 풀어가는 데 있다.
작성하는 함수가 분명하고 정확한 언어로 깔끔하게 같이 맞아떨어져야 이야기를 풀어가기가 쉬워진다.

0개의 댓글