DAY6

🔖 오늘 읽은 범위 : 3장, 함수 (p.40~46)

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

💡 작게 만들어라!

  • 함수를 만드는 첫 번째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. (p.42)
  • 중첩 구조가 생길만큼 함수가 커져서는 안 된다. 그러므로 함수에서 들여쓰기 수준은 1단ㅇ나 2단을 넘어서면 안된다. 당연한 말이지만, 그래야 함수는 읽고 이해하기 쉬워진다. (p.44)

💡 한 가지만 해라!

  • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p.44)
  • 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다. 어쨌거나 우리가 함수를 만드는 이유는 큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서가 아니던가. (p. 45)

💡 함수 당 추상화 수준은 하나로!

  • 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다. (p.45)
  • 한 함수 내에 추상하 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 특정 표현이 근본 개념인지 아니면 세부사항인지 구분하기 어려운 탓이다. 근본 개념과 세부사항을 뒤섞기 시작하면, 깨어진 창문처럼 사람들이 함수에 세부사항을 점점 더 추가한다. (p.46)
  • 위에서 아래로 코드 읽기: 내려가기 규칙 (p.46)
    • 코드는 위에서 아래로 이야기처럼 읽혀야 좋다.
    • 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다.

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

✨ 복잡한 함수는 없어야 한다.

👉🏻 현업에서 코드를 짤 때 정말 어마어마 한 양의 함수 내용을 짜본 기억이 너무 많다. 한 함수에서 수행하는 가지수만 해도 최대 7개까지 짜본 기억이 많다. 사실 지금도 그런 부분이 흔하다. 왜? 추상화를 못시켰기 때문이다. 이 책을 진작에 읽을걸.. 기능이 잘 되는 부분에만 목적을 두고 코딩을 하다보니 리팩토링은 저멀리 놔두고 지저분한 코드만 작성한 기분이 들어 매우 우울해지는 하루.. 이 책을 하루빨리 읽어볼걸 싶다. 나도 다시 한 번 머리에 세겨야겠다. "함수 당 추상화 수준은 하나로!"

profile
운동하는 개발자입니다.

0개의 댓글