개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
오늘 읽은 범위
3장. 함수
책에서 기억하고 싶은 내용을 써보세요.
작게 만들어라
한가지만 해라
한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 특정 표현이 근본 개념인지 아니면 세부사항인지 구분하기 어려운 탓이다. ... 근본 개념과 세부사항을 뒤섞기 시작하면, 개어진 창문처럼 사람들이 함수에 세부사항을 점점 더 추가한다.
단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.
함수 인수 - 최선은 입력 인수가 없는 경우이며, 차선은 입력 인수가 1개 뿐인 경우다.
플래그 인수는 추하다.... 함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이니까!
함수에서 상태를 변경해야 한다면 함수가 속한 객체 상태를 변경하는 방식을 택한다.
명령과 조회를 분리하라 - 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.
오류 코드보다 예외를 사용하라
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
코드라인의 뎁스를 맞춘다던가 하는 것도 결국 맥락은 비슷한 것이 아닐까 싶다.
풀어서 이야기하면 읽기 쉽고 이해하기 쉽고 오해의 소지가 없게 그리고 그렇게 하기 위한 방법을 소개 하는 것 같다. 여러가지 이해 할만한 예시를 들어주어 고개를 끄덕이며 읽어나갔다.
예를 들어 public void appendFooter(StringBuffer refort); ⇒ report.appendFooter(); 처럼
함수의 인수를 없애면서 함수에 출력인수로 사용하기 위한 객체를 넘기지말고 객체에 속한 함수가 상태를 변화시킨다거나.
다만 한번으로 끝나지않고 숙지하면서 몸에 익히지 못하면 소용 없을 거라는 생각이 들었다.
한번 읽고 다시 읽을 때면 여러 규칙들이 머리에 조금 더 그물처럼 잘 짜여질 것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.