개발자 99% 커뮤니티에서 수다 떨어요!
🗓️ TIL (Today I Learned)
2024.01.29 ~ 2024.01.30
🔖 오늘 읽은 범위
3장. 함수
🤟 3줄 요약
함수는 작고, 한 가지 일을 해야 한다.
함수의 이름은 서술적이어야 한다.
함수는 처음부터 완벽하게 작성할 수 없으므로, 작성 후 다듬고 개선하는 과정이 필요하다.
👨💻 책에서 기억하고 싶은 내용.
함수에는 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파악할 수 있을까?
작게 만들어라! (p42)
한 가지만 해라! (p44)
함수는 한 가지만 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.
서술적인 이름을 사용하라! (p49)
이름이 길어도 괜찮다. 겁먹을 필요없다. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다. 길고 서술적인 이름이 길고 서술적인 주석보다 좋다.
명령과 조회를 분리하라! (p56)
함수는 뭔가를 수행하거나 뭔가를 답하거나 둘 중 하나만 해야 한다.
함수는 어떻게 짜죠? (p61)
처음부터 완벽하게 짜내지 않는다. 그게 가능한 사람은 없으리라.
처음에는 길고 복잡하다. 들여쓰기 단계도 많고 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉흥적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다.
그런 다음 나는 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중에도 코드는 항상 단위 테스트를 통과한다.
최종적으로 이 장에서 설명한 규칙을 따르는 함수가 얻어진다.
💭 오늘 읽은 소감은? 떠오르는 생각
책에서 소개한 잘게 나눈 함수들은 가독성이 뛰어나다는 것을 느꼈다.
나름대로 노력은 하고 있지만, 아직 갈 길이 멀구나 싶습니다. 이 책이 내가 가야 하는 길의 나침반이 되어주기를 바라며, 힘을 내서 계속 나아가야지!