정리
작게 만들어라!
- 함수를 만드는 첫째 규칙은 '작게!' 이다. 둘째 규칙은 '더 작게!' 이다.
- 중첩구조가 생길 만큼 함수가 커져서는 안 된다. 그래야 함수는 읽고 이해하기 쉬워진다.
한가지만 해라!
- 함수는 한가지를 해야하며 그 한가지를 잘 해야한다.
- 지정된 함수 이름 아래에서 추상화 수준이 하나인 단게만 수행한다면 그 함수는 한 가지 작업만 한다.
함수 당 추상화 수준은 하나로!
- 함수가 확실히 한 가지 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
- 핵심은 짧으면서도 한 가지만 하는 함수이다.
Switch 문
- 다형성을 이용한다.
- 상속 관계로 숨긴 후에는 절대로 다른 코드에 노출하지 않는다.
서술적인 이름을 사용하라!
- 길고 서술적인 이름이 짧고 어려운 이름보다 좋다.
- 함수 이름을 정할 때는 여러 단어가 쉽게 읽히는 명명법을 사용하고 여러 단어를 사용해 함수 기능을 잘 표현하는 이름을 선택한다.
- 이름을 붙일 때는 일관성이 있어야 한다.
함수 인수
- 함수에서 이상적인 인수 갯수는 0개(무항) 이다.
- 때로는 인수 갯수가 가변적인 함수도 필요하다.
- 가변 인수를 취하는 함수는 같은 원리가 적용되어야 한다.
- 함수 이름에 키워드를 추가한다.
부수 효과를 일으키지 마라!
- 일반적으로 출력 인수는 피해야 한다.
- 상태를 변경해야 한다면 함수가 속한 객체 상태를 변경하는 방식을 택한다.
명령과 조회를 분리하라!
- 함수는 뭔가를 수행하거나 답하거나 둘 중 하나만 해야 한다.
오류 코드보다 예외를 사용하라!
- 정상 동작과 오류 처리 동작을 분리하면 코드를 이해하고 수정하기 쉬워진다.
반복하지 마라!
구조적 프로그래밍
함수를 어떻게 짜죠?
- 소프트웨어를 짜는 행위는 글짓기와 비슷하다.
- 처음부터 잘 짜는 사람은 없다.
- 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스를 만든다.
결론
- 진짜 목표는 시스템이라는 이야기를 풀어나가는 데 있다.
- 작성한 함수가 분명하고 정확한 언어로 깔끔하게 같이 맞아떨어져야 이야기를 풀어가기가 쉬워진다.
느낀 점
2장에서 읽었던 이름의 중요성이 함수를 만들 때도 매우 중요한 비중을 차지한다. 함수는 최대한 간단하고 명료하게 짜는 것이 현명한 방법인 것 같다.