Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 3장. 함수
#clean_code
2년 전
505


TIL (Today I Learned)

2022.02.24

오늘 읽은 범위

3장. 함수

책에서 기억하고 싶은 내용을 써보세요.

  • 작게 만들어라!

중첩구조가 생길만큼 함수가 커져선 안돼
  • 한 가지만 해라!

함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한가지만을 해야 한다.
한가지만 하는지 판단하는 방법 : 단숨히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.
  • 함수 당 추상화 수준은 하나로!

함수 내 모든 문장의 추상화 수준이 동일해야 한다
  • Swich 문

다형성을 이용해 각 switch문을 저차원 클래스에 숨기고 절대로 반복하지 않는 방법
  • 서술적인 이름을 사용하라!

  • 함수인수

함수에서 이상적인 인수 개수는 0개(무항)다. 다음은 1개(단항). 다음은 2개.. (최선은 입력 인수가 없는 경우이며, 차선은 입력 인수가 1개뿐이 경우다)
1개를 넘기는 경우 : 1.인수에 질문을 던지는 경우, 2.인수를 뭔가로 변환해 결과를 반환하는 경우
플래그 인수 : 추하다
이항 함수 : 가능하면 단항 함수로 바꾸도록 노력
인수가 2-3개 필요하다면 일부를 독자적인 클래스 변수로 선언할 가능성을 짚어보자
  • 부수 효과를 일으키지 마라!

  • 명령과 조회를 분리하라!

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

오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔(p.58)
  • Try/Catch 블록 뽑아내기

try/catch 블록을 별도 함수로 뽑아내는 것이 좋아
정상 동작과 오류 처리 동작을 분리하면 코드를 이해하고 수정하기 쉬워짐
오류 처리도 한가지 작업이야
오류 코드를 반환한다 = 클래스 든 열거형 변수든, 어디선가 오류 코드를 정의한다는 뜻 (의존성 자석)
오류 코드 대신 예외를 사용하면 새 예외는 Exception 클래스에서 파생된다.따라서 재컴파일/재배치 없이도 새 예외 클래스를 추가할 수 있다.
  • 반복하지 마라

  • 구조적 프로그래밍

함수는 return 문이 하나여야 한다. (함수가 아주 클 때만 상당한 이익)
  • 함수를 어떻게 짜죠?

일단 코드 작성 후 다듬는거야..
다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거하고, 메서드를 줄이고, 순서를 바꾸고. 때로는 전체 클래스를 쪼개기도.. 이 와중에도 코드는 항상 단위 테스트를 통과..

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 한번의 코딩으로 완벽할 수 없다. 다듬고 또 다듬자..

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.