반응형
TIL (Today I Learned) 날짜
2024년 05월 07일 화요일
오늘 읽은 범위
3장. 함수
책에서 기억하고 싶은 내용
3장. 함수
- 작게 만들어라!
- if 문/ else 문/ while 문 등에 들어가는 블록은 한 줄이어야 한다. 즉, 중첩 구조가 생길 만큼 함수가 커져서는 안 된다는 뜻이다.
- 한 가지만 해라!
- 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야 한다.
- 우리가 함수를 만드는 이유는 큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서이다.
- 다양한 추상화 수준에서 여러 단계를 처리하거나 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 함수이다.
- 함수당 추상화 수준은 하나로!
- 함수가 확실히 한 가지 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
- 코드는 위에서 아래로 이야기처럼 읽혀야 좋다.
- 서술적인 이름을 사용하라!
- 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 된다.
- 함수 이름을 정할 때는 여러 단어가 쉽게 읽히는 명명법을 사용한다. 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택한다.
- 이름을 붙일 때에는 일관성이 있어야 한다.
- 함수 인수
- 함수에서 이상적인 인수 개수는 0개다.
- 인수는 개념을 이해하기 어렵게 만든다.
- 부수 효과를 일으키지 마라!
- 시간적인 결합은 혼란을 일으킨다.
- 시간적인 결합이 필요한 경우 함수 이름에 분명히 명시한다.
- 명령과 조회를 분리하라!
- 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.
- 오류 코드보다 예외를 사용하라!
- 오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다.
- 오류 처리도 한 가지 작업에 속한다.
- 키워드 try가 있다면 함수는 try로 시작해 catch/finally 문으로 끝나야 한다.
- 반복하지 마라!
- 중복을 없앴더니 모듈 가독성이 크게 높아졌다.
- 구조적 프로그래밍
- 모든 함수와 함수 내 모든 블록에 입구와 출구가 하나만 존재해야 한다. 즉, 함수는 return 문이 하나여야 한다.
- 함수를 어떻게 짜죠?
- 처음에는 길고 복잡하게 작성하고 이후 다듬고 수정해가면서 정리한다.
- 이때, 코드는 항상 단위 테스트를 통과해야한다.
- 결론
- 모든 시스템은 특정 응용 분야 시스템을 기술할 목적으로 프로그래머가 설계한 도메인 특화 언어로 만들어진다. 함수는 그 언어에서 동사며, 클래스는 명사다.
- 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다. 프로그래밍 언어라는 수단을 사용해 좀 더 풍부하고 좀 더 표현력이 강한 언어를 만들어 이야기를 풀러 간다.
읽은 소감 + 떠오르는 생각
어제 읽은 내용과 동일하게 간단하고 명료하게 작성하는 게 중요하다고 느꼈다.
궁금한 내용 + 이해되지 않는 내용
아직은 많은 코드를 작성해 보지도, 읽어보지도 않아서 왜 이렇게 작성해야 하는지 이해하지 못하고 책을 읽고 있는 것 같다.
조금 더 많은 코드를 접해보고 (당연히) 2회독도 해야겠다.
반응형
'💪 Study > 📚 노마드코더 북클럽' 카테고리의 다른 글
노개북 클린코드 #10 (0) | 2024.05.16 |
---|---|
노개북 클린코드 #05 (0) | 2024.05.09 |
노개북 클린코드 #03 (0) | 2024.05.06 |
노개북 클린코드 #02 (0) | 2024.05.05 |
노개북 클린코드 #01 (0) | 2024.05.04 |