- 1장. 코드는 이해하기 쉬워야 한다
- 가독성의 기본 정리
- 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.
- 분량이 적으면 항상 더 좋은가 ?
- 아니다. 적은 분량은 좋은 목표이긴 하지만, 이해를 위한 시간을 최소화하는 게 더 좋은 목표다.
- 우리는 다른 사람이 내 코드를 읽고 이해하기 쉬운지 상상해본적 없기 때문에 추가적인 시간과 노력이 든다. 하지만 꼭 필요하다
- 가독성의 기본 정리
- 2장. 이름에 정보 담기
- 특정한 단어 고르기
- get(x) → FetchPage(o), Size(x) → Height(o) 등
- 재치 있는 이름보다 명확하고 간결한 이름이 더 좋다.
- 보편적인 이름 피하기
- tmp, retval, foo (x)
- 이렇게 무의미한 이름이 아니라, 개체의 값이나 목적을 정확하게 설명하는 이름을 골라야 한다.
- 추상적인 이름 대신 구체적인 이름 사용하기
- ServerCanStart(x) → CanListenOnPort(o)
- 접두사 혹은 접미사로 이름에 추가적인 정보 덧붙이기
- 단위를 포함하는 값들 delay(x) → delay_secs(o)
- 다른 중요한 속성 포함하기 password(x) → plaintext_password(o)
- 이름이 얼마나 길어져도 좋은지 결정하기
- 좁은 범위에서는 짦은 이름이 괜찮다.
- 긴 이름은 더이상 문제가 되지 않는다.
- 약어와 축약형은 새로운 사람이 의미하는 바를 이해할때만 string 대신 str
- 불필요한 단어 제거하기 convertToString → ToString
- 이름 포맷팅으로 의미를 전달하라
- 추가적인 정보를 담을 수 있게 이름 구성하기
- 특정한 단어 고르기
- 3장. 오해할 수 없는 이름들
- 본인이 지은 이름을 “다른 사람들이 다른 의미로 해석할 수 있을까 ?” 라는 질문을 던져보며 철저하게 확인해야 한다.
- Filter(), Clip()등의 단어는 여러 의미로 해석될 수 있다.
- 경계를 포함하는 한계값 min, max
- 경계를 포함하는 범위 first, last
- 경계를 포함하고/배제하는 범위 begin, end
- 불리언 변수에 이름 붙이기 read_password (x), use_ssl (o)
- 사용자의 기대에 부응하기 - 시간이 제법 걸리는 연산이라는 사실을 명확하게 드러내는게 좋다.
- 언제나 의미가 오해되지 않는 이름이 최선의 이름이다.
'책 공부' 카테고리의 다른 글
함께 자라기 : 애자일로 가는 길 (2) (0) | 2022.11.02 |
---|---|
애자일 마스터 (2) (0) | 2022.11.01 |
읽기 좋은 코드가 좋은 코드다 (2) (0) | 2022.10.31 |
함께 자라기 : 애자일로 가는 길 (1) (0) | 2022.10.24 |
애자일 마스터 (1) (0) | 2022.10.23 |
댓글