💪 Study/📚 노마드코더 북클럽

노개북 클린코드 #04

김_수댕 2024. 5. 8. 03:38
반응형

TIL (Today I Learned) 날짜

2024년 05월 07일 화요일

 

오늘 읽은 범위

3장. 함수

 

책에서 기억하고 싶은 내용

3장. 함수

  1. 작게 만들어라!
    • if 문/ else 문/ while 문 등에 들어가는 블록은 한 줄이어야 한다. 즉, 중첩 구조가 생길 만큼 함수가 커져서는 안 된다는 뜻이다.
  2. 한 가지만 해라!
    • 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야 한다.
    • 우리가 함수를 만드는 이유는 큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서이다.
    • 다양한 추상화 수준에서 여러 단계를 처리하거나 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 함수이다.
  3. 함수당 추상화 수준은 하나로!
    • 함수가 확실히 한 가지 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
    • 코드는 위에서 아래로 이야기처럼 읽혀야 좋다.
  4. 서술적인 이름을 사용하라!
    • 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 된다.
    • 함수 이름을 정할 때는 여러 단어가 쉽게 읽히는 명명법을 사용한다. 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택한다.
    • 이름을 붙일 때에는 일관성이 있어야 한다.
  5. 함수 인수
    • 함수에서 이상적인 인수 개수는 0개다.
    • 인수는 개념을 이해하기 어렵게 만든다.
  6. 부수 효과를 일으키지 마라!
    • 시간적인 결합은 혼란을 일으킨다.
    • 시간적인 결합이 필요한 경우 함수 이름에 분명히 명시한다.
  7. 명령과 조회를 분리하라!
    • 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.
  8. 오류 코드보다 예외를 사용하라!
    • 오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다.
    • 오류 처리도 한 가지 작업에 속한다.
    • 키워드 try가 있다면 함수는 try로 시작해 catch/finally 문으로 끝나야 한다.
  9. 반복하지 마라!
    • 중복을 없앴더니 모듈 가독성이 크게 높아졌다.
  10. 구조적 프로그래밍
    • 모든 함수와 함수 내 모든 블록에 입구와 출구가 하나만 존재해야 한다. 즉, 함수는 return 문이 하나여야 한다.
  11. 함수를 어떻게 짜죠?
    • 처음에는 길고 복잡하게 작성하고 이후 다듬고 수정해가면서 정리한다.
    • 이때, 코드는 항상 단위 테스트를 통과해야한다.
  12. 결론
    • 모든 시스템은 특정 응용 분야 시스템을 기술할 목적으로 프로그래머가 설계한 도메인 특화 언어로 만들어진다. 함수는 그 언어에서 동사며, 클래스는 명사다.
    • 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다. 프로그래밍 언어라는 수단을 사용해 좀 더 풍부하고 좀 더 표현력이 강한 언어를 만들어 이야기를 풀러 간다.

 

읽은 소감 + 떠오르는 생각

어제 읽은 내용과 동일하게 간단하고 명료하게 작성하는 게 중요하다고 느꼈다.

 

궁금한 내용 + 이해되지 않는 내용

아직은 많은 코드를 작성해 보지도, 읽어보지도 않아서 왜 이렇게 작성해야 하는지 이해하지 못하고 책을 읽고 있는 것 같다.

조금 더 많은 코드를 접해보고 (당연히) 2회독도 해야겠다.

반응형