Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 3장. 함수
#clean_code
2년 전
460


TIL (Today I Learned)

// 2022.02.24

오늘 읽은 범위

3장 함수

책에서 기억하고 싶은 내용을 써보세요.

  • 함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. 그 한 가지만을 해야 한다.

  • 대가 프로그래머는 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다. 프로그래밍 언어라는 수단을 사용해 좀 더 풍부하고 좀 더 표현력이 강한 언어를 만들어 이야기를 풀어간다. 시스템에서 발생하는 모든 동작을 설명하는 함수 계층이 바로 그 언어에 속한다.(82p.)

  • 함수를 짤 때 처음에는 길고 복잡하고, 들여쓰기 단계도 많고, 중복된 루프도 많다. 인수 목록도 아주 길다. 이름은 즉홍적이고 코드는 중복된다. 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스를 만들고 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. 메서드를 줄이고 순서를 바꾸며, 때로는 전체 클래스를 쪼개기도 한다. 최종적으로는 이 장에서 설명한 규칙을 따르는 함수가 얻어진다. 처음부터 탁 짜내지 않는다.(62p)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 함수를 만들 때 여러 인수를 쓰는데 거부감이 없었다. 프로그램을 짜다보면 이항 함수 혹은 삼항 함수까지도 불가피하게 쓸 수 있지만, 그만큼 위험이 따른다는 사실을 인지하고 가능하면 단항 함수로 바꾸도록 애를 써야하며, 쓰더라도 신중히 사용해야한다.

  • 3장에서 설명한 규칙대로 직접 함수를 만들기 까지는 첫 번째로 작성한 후, 거듭 고민하며 오랜 시간 리팩토링이 필요할 것 같다. 그래도 이전보다 더 깔끔한 함수를 작성할 수 있기를!

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 추상 팩토리, 객체를 사용하기 위한 디자인 패턴이다. 서로 관련이 있는 객체들을 통째로 묶어서 팩토리 클래스로 만들고, 이들 팩토리를 조건에 따라 생성하도록 다시 팩토리를 만들어서 객체를 생성하는 패턴