개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.22
오늘 읽은 범위
3장 함수
책에서 기억하고 싶은 내용을 써보세요.
함수는 작게 만들어라 (p42)
함수에서 들여쓰기 수준은 1단이나 2단을 넘어서는 안된다.
함수는 한가지의 기능만 해야한다.(p44)
단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.
서술적인 이름을 사용해 함수가 하는 일을 잘 표현하도록 하라.(p49)
함수 인수 없을수록 좋다.
최선은 입력 인수가 없는 경우이며, 차선은 입력 인수가 1개뿐인 경우다.(p51)
반복하지 마라
많은 원칙과 기법이 중복을 없애거나 제어할 목적으로 나왔다.(p60)
그 무엇보다도 가장 중요한 내용
고칠 각오를 하고 일단 함수를 짠다.
그리고 서투른 코드를 빠짐없이 테스트 하는 단위 테스트 케이스도 만든다. 그 다음 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾼다. 때로는 클래스를 쪼개기도 한다. 이 와중에도 코드는 항상 단위 테스트를 통과한다.(p61)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
글쓰기와 동일한 것 같다. 어떻게 하든 초안을 작성해야 한다. 초안은 항상 서투르고 어수선하다는 것을 인정해야 한다. 이것을 다듬는 과정이다.
오늘은 코드를 별로 작성하지 못하였다. 책의 내용이 자꾸 생각나서 함수를 만드는 더 좋은 방법이 있지 않을까? 더 좋은 구조가 없을까? 이렇게 하는게 정답일까? 고민만 하였다. 어쩌면 내가 원하는 기능을 만들고 다듬어 나가는 방법으로 했어야 한 것 같다.
테스트 이야기가 계속해서 나온다. 어쩌면 TDD부터 읽고 왔어야 하는것이 아닐까?
소프트웨어를 짜는 행위가 글쓰기와 비슷하다면, 많이 쓰고, 많이 다듬고, 많이 피드백을 받는다면 늘지 않을까? 많이 작성해봐야겠다. 그리고 클린 코드에서 말하는 내용대로 다듬고, 또 다듬어야겠다고 다짐한다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
SRP(Single Responsibility Principle)
클래스, 메소드 및 함수는 단 한개의 책임을 가져야 한다.
https://renanmf.com/single-responsibility-principle-in-python/
OCP(Open-Closed Principle)
클래스, 메소드 및 함수가 확장을 위해 열려야 하지만 수정을 위해 폐쇄되어야 한다.
https://www.pythontutorial.net/python-oop/python-open-closed-principle/