TIL 03. 함수

오늘 TIL 3줄 요약

  • 소프트웨어는 글짓기와 비슷하다. 글짓기를 하듯 좋은 코드를 위해선 중복 제거, 반복 제거, 순서 변경 등을 해야 한다.(62p)
  • 오류 처리도 한 가지 작업이다.(59p)
  • 명령과 조회를 분리하라.(56p)

TIL (Today I Learned) 날짜

2022.04.25

오늘 읽은 범위

3장. 함수

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

  • 소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 초안은 대개 서투르고 어수선하다. 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리하는 글짓기는 소프트웨어를 짜는 행위와 다르지 않다. 중복을 줄여나가고, 메서드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중에도 코드는 항상 단위 테스트를 통과한다.(62p)
  • 작게 더 작게! 그리고 한 가지만 해라! 앞서 얘기한 2가지는 함수당 추상화 수준은 하나로도 이어지는 내용이다. 자연스럽게 위에서 아래로 코드 읽기:내려가기 규칙(46p)의 내용으로 이어지며, 추상화 수준이 하나이며 짧으면서도 확실한 한 가지 행동 만을 표현하는 함수가 만들어진다. 이를 통해 소프트웨어라는 이야기가 만들어 지는 것이다.

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

  • 3장의 내용을 다 읽고, 함수를 깔끔(Clean)하게 만들기 위한 과정에 이 책의 앞선 개념 뿐만 아니라 앞으로 나올 기본 개념이 다 녹아있지 않을까 생각했다. 골조가 아닐까…? 함수를 깔끔하게 만들기 위해 의미 있는 이름으로 변수와 함수를 만들고, 함수의 행동을 한 가지로 제한하고… 현재까지 읽은 내용이 3장까지 밖에 없어서 당장의 예시는 2 가지만 있지만, 읽을 수록 더 채워질 것이라 생각한다. 하지만 저 2 가지가 Clean Code를 위한 기초이자 핵심이라 생각 들게 하는 내용이었다.

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

  • 48p의 switch 문을 숨기는 과정의 내용의 디테일이 아직 와 닿지 않았다. 내가 이 예시의 SRP(Single Responsibility), OCP(Open Closed Principle)를 위반하는 동일한 케이스를 맞이할 때 과연 이처럼 리팩토링을 생각할 수 있을까? 라는 의문을 남기게 한 내용이다. 체화하기 위해 일상 속에서 내가 어떻게 노력할 수 있을까?