본문 바로가기
독서

[클린코드] 3장 함수

by ma_ro 2022. 2. 24.

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

  • 함수를 작게 만들기
    • 블록(if else문 등)에 들어가는 블록은 한 줄이어야 한다.
      들여쓰기 수준은 1단이나 2단을 넘어서면 안된다.
  • 함수는 한가지만 해야한다.
    • 추상화 수준이 하나인 단계만 수행
      (함수 내 모든 문장의 추상화 수준이 동일해야 한다.)
  • switch 문은 다형성을 이용해 저차원 클래스에 숨긴다.
  • 함수가 하는 일을 잘 표현할 수 있는 서술적인 이름을 사용하라.
    • 일관성 있는 이름을 사용하면 이해하기 더 쉽다.
  • 함수 인수는 가능한 피하자
    • 단항 사용, 인수객체의 사용
  • 부수효과를 일으키지 마라
    • 함수는 하나의 일만 해야한다. 몰래 다른 일을 하지마라.
  • 명령과 조회를 분리하라
    • 수행하거나 답하거나 하나만!
  • 오류코드 대신 예외를 사용하면 오류처리코드가 원래 코드에서 분리되므로 코드가 깔끔해진다.
  • tray/catch 블록은 정상 동작과 오류처리동작을 뒤섞으므로 try/catch 블록을 별도 함수로 뽑아내는 편이 좋다.

함수는 동사이고, 클래스는 명사이다. 이것들로 시스템이라는 이야기를 풀어간다.
우리가 작성하는 함수가 분명하고 정확한 언어로 깔끔하게 맞아 떨어져야 이야기를 풀어가기 쉬워진다.

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

함수를 잘쓰는 건 늘 고민이 되고 잘 히기 어려운 것 같다.
가장 간단하게 가장 심플하게. 함수를 나누는 것이 중요하다고 생각되지만 막상 나누다 보면 너무 많아 지는 것 같기도 하고 함수 이름 짓기에 혼란이 오기도 한다. 깔끔한 코드를 만들기 위해 좀더 많은 연습과 고민이 필요한 파트인 것 같다.

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

(59P)Error.java 의존성 자석에서 Error.java를 다른 곳에서도 다 import를 해서 쓰기 때문에 Error.java 파일이 수정되면 이것을 사용하는 클래스 전부를 다시 컴파일하고 다시 배치해야한다고 한다. 현재 내가 작업하는 스프링 환경에서는 어차피 미리 컴파일 해놓고 컴파일된 파일을 구동하는 것으로 아는데 다시 컴파일 하는 것이 어떤 상황에 문제가 되는 지 궁금하다.

'독서' 카테고리의 다른 글

[클린코드] 6장 객체와 자료구조  (0) 2022.03.02
[클린코드] 5장 형식 맞추기  (0) 2022.02.28
[클린코드] 4장 주석  (0) 2022.02.26
[클린코드] 2장 의미있는 이름  (0) 2022.02.20
[클린코드] 1장 깨끗한 코드  (0) 2022.02.20

댓글