개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
// 2022.02.24
오늘 읽은 범위
3장 함수
책에서 기억하고 싶은 내용을 써보세요.
함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. 그 한 가지만을 해야 한다.
대가 프로그래머는 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다. 프로그래밍 언어라는 수단을 사용해 좀 더 풍부하고 좀 더 표현력이 강한 언어를 만들어 이야기를 풀어간다. 시스템에서 발생하는 모든 동작을 설명하는 함수 계층이 바로 그 언어에 속한다.(82p.)
함수를 짤 때 처음에는 길고 복잡하고, 들여쓰기 단계도 많고, 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉홍적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스를 만들고 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾸며, 때로는 전체 클래스를 쪼개기도 한다. 최종적으로는 이 장에서 설명한 규칙을 따르는 함수가 얻어진다. 처음부터 탁 짜내지 않는다.(62p)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수를 만들 때 여러 인수를 쓰는데 거부감이 없었다. 프로그램을 짜다보면 이항 함수 혹은 삼항 함수까지도 불가피하게 쓸 수 있지만, 그만큼 위험이 따른다는 사실을 인지하고 가능하면 단항 함수로 바꾸도록 애를 써야하며, 쓰더라도 신중히 사용해야한다.
3장에서 설명한 규칙대로 직접 함수를 만들기 까지는 첫 번째로 작성한 후, 거듭 고민하며 오랜 시간 리팩토링이 필요할 것 같다. 그래도 이전보다 더 깔끔한 함수를 작성할 수 있기를!
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
추상 팩토리, 객체를 사용하기 위한 디자인 패턴이다. 서로 관련이 있는 객체들을 통째로 묶어서 팩토리 클래스로 만들고, 이들 팩토리를 조건에 따라 생성하도록 다시 팩토리를 만들어서 객체를 생성하는 패턴