2. • 의도를 분명히 표현하는
함수를 어떻게 만들까??
• 함수를 어떻게 만들어야
처음 읽는 사람이 내부를
직관적으로 파악할 수 있을까??
3. 작게 만들어라
• 함수가 중첩구조가 생길만큼 커져서는 안된다
• 들여쓰기 수준은 1,2단을 넘어서는 안된다
• 읽기 쉽고 이해하기 쉬워진다
4. 한 가지만 해라
• 함수는 한 가지만 해야 한다
• 한 가지만 하는지 판단법
• 의미있는 이름으로 다른 함수를 추출할 수 있다면
여러가지 작업을 하는 것이다
• 한가지 작업만 하는 함수는 자연스럽게 섹션으로
나누기 어렵다
5. 함수당 추상화 수준은 하나로
• 함수내 모든 문장이 동일한 추상화 수준에 있어야 한다
• 근본 개념과 세부사항을 뒤섞기 시작하면
함수에 세부사항을 점점 더 많이 추가하게 된다
Switch 문
• 정말로 switch문을 써야 하는 것인지
추상 팩토리(Abstract Factory)가 필요한 것은 아닌지
잘 고려해야 한다
6. 서술적인 이름을 사용하라
• 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택해라
함수 인수
• 인수를 많이 쓰지 말아라. 직관적으로 사용하기 어렵다
• 출력인수는 입력인수보다 이해하기 어렵다
• 인수의 수가 많다면 클래스로 선언해서 인수로 넘기는
방법도 사용할 수 있다. 인수의 개념을 표현하게 된다.
7. 부수효과를 일으키지 마라
• 부수 효과는 거짓말이다
• 함수에서 한가지를 하겠다고 약속하고 남몰래 다른 짓을
하는 것인 안 좋다.
• 함수 호출로는 예상하지 못했던 클래스 변수의 수정 등등..
8. 함수를 어떻게 짜야 하는가
• 소프트웨어를 짜는 행위는 글짓기와 비슷하다
• 서투른 초안을 쓰고 다듬어간다.
• 함수를 짤때도 마찬가지다
• 처음에는 길고 복잡하다
• 코드를 다듬고, 함수를 만들고, 이름을 바꾸고,
중보을 제거하고...
• 최종적으로는 우리가 원하는 깔끔한 함수가 된다.