본문 바로가기

BOOK Review

[클린 코드] TIL - 3장 함수

🩵 TIL

함수 : 의도를 분명하게 하여 읽기 쉽게 그룹화

  • 작게 만들어라 (최대한 작게 만드는 것이 좋음)
  • 블록과 들여쓰기 (if-else 문 등으로 만들어진 들여쓰기는 2단을 넘어서면 안됨)
  • 한가지만 해라 (함수는 한 가지만을, 그 한 가지를 잘 해야 함)
    • 의미있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하고 있는 것
  • Switch문 - 함수를 작게만들기 어려움. 다형성을 이용하여 저레벨로 숨기는 것도 좋음
  • 서술적인 이름을 사용하라 
    • 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드다
    • 이름이 길어도 괜찮음 (길고 서술적인 이름 > 짧고 어려운 이름)
    • 일관성이 있어야 함 (다른 함수를 짐작할 수 있도록)
  • 함수 인수
  • 명령과 조회를 분리하라 -- CQRS
  • 오류코드보다 예외를 사용해라 (if-else 보다는 try-catch 를 사용하여 예외로 처리하기. try-catch 자체도 코드 구조에 혼란을 일으키므로 별도의 함수로 처리하기)
    • 오류 처리도 한 가지 작업임
  • 반복하지 마라
    • 중복 코드는 부모클래스로 몰아 중복을 없앤다.
    • 코드 중복은 지속적인 노력으로 해결해야 함
  • 구조적 프로그래밍 (goto X)
  • 좋은 함수를 짜는 방법
    • 초안을 만듬
    • 단위 테스트 케이스 만들기
    • 중복 코드 줄이기, 함수로 만들기, 변수 이름 바꾸기 등의 코드 다듬기
      • 테스트 케이스는 계속 통과해아 함

🧡 오늘 읽은 범위

3장 함수

 

🩶 기록

사내 코드에서 비슷한 작업을 하는 함수이지만 서비스마다 다른 경우도 있었는데, 코드를 읽는 사람의 입장에서는 헷갈릴 수 있다라는 고민도 있었는데, 이번 함수 장을 읽어보니 이 문제를 푸는 방식에 대한 생각을 넓힐 수 있었다. 

다형성을 사용하여 비슷한 작업을 하는 함수를 추상화 시키고, 그 내부에 비즈니스 로직을 두어 좀 더 간단 명료한 방식으로 리펙터링할 수 있을 것 같다.