|| Clean Code || 개발자의 주요 고민, 작명

윤코코·2022년 2월 20일
0

책 [Clean Code]를 읽고 정리한 내용입니다.

# 오늘 읽은 범위

2장. 의미 있는 이름

# 기억하고 싶은 내용

- 의도를 분명히 밝혀라

  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. ... 변수(혹은 함수나 클래그)의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. (p.22)
    1. theList에서 0번째 값이 어째서 중요한가? (p.23)
    2. 값 4는 무슨 의미인가? (p.23)

- 그릇된 정보를 피하라

  • 여러 계정을 그룹으로 묶을때, 실제 List가 아니라면, accountList라 명명하지 않는다. ... 실제 컨테이너가 List인 경우라도 컨테이너 유형을 이름에 넣지 않는 편이 바람직하다. (p.24)
  • 서로 흡사한 이름을 사용하지 않도록 주의한다. (p.24)

- 의미 있게 구분하라

  • Info나 Data는 an, an, the와 마찬가지로 의미가 불분명한 불용어다. (p.26)

- 발음하기 쉬운 이름을 사용하라

  • 발음하기 쉬운 이름은 중요하다. 프로그래밍은 사회 활동이기 때문이다. (p.27)

- 검색하기 쉬운 이름을 사용하라

  • 개인적으로는 간단한 메서드에서 로컬 변수만 한 문자를 사용한다. 이름 길이는 범위 크기에 비례해야 한다. (p.28)
  • 이름을 의미 있게 지으면 함수가 길어진다. 하지만 WORK_DAYS_PER_WEEK를 찾기가 얼마나 쉬운지 생각해보라. 그냥 5를 사용한다면 5가 들어가는 이름을 모두 찾은 후 의미를 분석해 원하는 상수를 가려내야 하리라. (p.29)

- 인코딩을 피하라

(이해가 잘 되지 않음...)

- 자신의 기억력을 자랑하지 마라

  • 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다. (p.31)

- 클래스 이름

클래스 이름과 객체 이름은 명사나 명사구가 적합하다. ... 동사는 사용하지 않는다. (p.32)

- 메서드 이름

  • 메서드 이름은 동사나 동사구가 적합하다. ... 접근자, 변경자, 조건자는 javabean 표준에 따라 값 앞에 get, set, is를 붙인다. (p.32)

- 기발한 이름은 피하라

- 한 개념에 한 단어를 사용하라

  • 예를 들어, 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. (p.33)

- 말장난을 하지마라

  • 한 단어를 두 가지 목적으로 사용하지 마라. (p.34)

- 해법 영역에서 가져온 이름을 사용하라

  • 모든 이름을 문제 영역에서 가져오는 정책은 현명하지 못하다. 같은 개념을 다른 이름으로 이해하던 동료들이 매번 고객에게 의미를 물어야하기 때문이다. ... 기술 개념에는 기술 이름이 가장 적합한 선택이다. (p.34)

- 문제 영역에서 가져온 이름을 사용하라

  • 적절한 '프로그래머 용어'가 없다면 문제 영역에서 이름을 가져온다. ... 문제 영역 개념과 관련이 깊은 코드라면 문제 영역에서 이름을 가져와야 한다. (p.34)

- 의미 있는 맥락을 추가하라

- 불필요한 맥락을 없애라

  • '고급 휘발유 충전소(Gas Station Deluxe)'라는 애플리케이션을 짠다고 가정하자. 모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바람직하지 못하다. ... 일반적으로는 짧은 이름이 긴 이름보다 좋다. ... 이름에 불필요한 맥락을 추가하지 않도록 주의한다. (p.37)

# 떠오르는 생각

  • 언젠가는 영문으로도 이 책을 읽어봐야 겠다는 생각이 든다. 아주 잘 된 번역이지만 그래도 번역이 된 책이라, 원문을 읽어야 좀 더 와닿겠다 싶은 문장들이 있다.
  • 그동안 변수명, 함수명을 지으면어 어느정도까지 구체적으로 이름에 담아야 하는지 감이 잘 오지 않았다. 오늘의 챕터를 읽고 나니 이름에도 scope(혹은 맥락)이 있다는 걸 알았다.
  • 이번 챕터는 여러번 읽고 일을 할때에 항상 기억해야 할 부분인듯 하다. 다른 챕터도 그러려나? ㅎㅎㅎ

# 궁금 or 잘 이해되지 않는 내용

  • 헝가리식 표기법? (p.29)
  • IDE는 무엇의 약자인가? (p.30)
  • 인코딩이란? (p.31)
profile
Web Front-End Developer

0개의 댓글