4. 1. 함수의 길이는 가능한 짧게
- 함수를 만드는 첫째 규칙은 ‘작게!’다
- 함수를 만드는 둘째 규칙은 ‘더 작게!'다
- 어느정도?
- 한 화면을 넘기지 말자 (발표자 본인 원래 생각)
- 20줄도 길다 (책에서)
- 켄트 벡이 만들었던 코드 “모든 함수가 2,3,4줄 정도였다” (책에서)
- 블록과 들여쓰기
- if / else / while 문 등에 들어가는 블록은 한 줄이어야 한다
5. 1. 함수의 길이는 가능한 짧게
좋은 예시> 각 조건에 따른 처리 내용을 길게 풀지 않고
간결하게 함수 명으로 무엇을 하는지 알 수 있음
9. 3. 추상화 수준을 동일하게 유지하라
- 한 함수안에서 낮은 수준과 높은 수준의 추상화가 섞여있으면 가독성이
떨어진다
- 적절한 예시 추가하기
- function onClickSaveButton()
- validateCheck
- parameter 값 검사
- insertToDatabase
- http request
- notificationEvent
- notification-service 호출
13. 5. 서술적인 이름을 사용해라!
- 함수가 하는 일을 표현하므로 서술적인 이름을 사용하라
- 이름이 길어도 괜찮다 - 길고 서술적인 이름이 짧고 어려운 이름보다 좋다
- 좋은 IDE는 리팩토링을 잘 지원해주니 이런저런 이름을 넣어보는 방법도 좋다
- 일관된 단어(동사, 명사)를 사용하면 이해하기 좋다
15. 6. 함수 인수
- 없는게 최고
- 단항
- 인수에 질문을 던지는 경우 ex: bool fileExists(filename)
- 인수를 변환해 결과를 반환하는 경우 ex: stream fileOpen(filename)
- 플래그 함수
- bool 값에 의해 두가지를 처리하는 경우
- setVisible(bool)로 두가지를 다 하지 말고 각각 show / hide 함수로 나눠라
- 인수가 많다면
- 인수 객체를 써보자
- makeCircle(float x, float y, float radius) > makeCircle(Point p, float radius)
17. 7. 명령과 조회를 분리하라
- isHide 와 같은 조회와 setHide 같은 명령은 따로 분리해서 처리할것
- bool hideView(view)
- 원래의도 : view를 숨기고 성공여부를 리턴한다
- 쓰임
- if (hideVIew(view)) { 이후 뷰가 잘 숨겨졌을때 처리할 내용들 }
- 잘못된 해석
- ‘뷰가 hide 된 상태이면 블럭안 코드가 실행되나?’