본문 바로가기

책/CleanCode

✨ Clean Code 2장: 의미 있는 이름

📌 의미를 분명히 밝혀라

  • 좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
  • 변수, 함수, 클래스 이름은 존재 이유, 수행 기능, 사용 방법에 대해 답할 수 있어야 한다.
  • 주석이 필요하다면 의도를 분명히 드러내지 못했다는 의미이다.
  • 의도가 드러난다면 코드 이해와 변경이 용이해진다.

📌 그릇된 정보를 피하라

  • 코드의 의미를 흐릴 수 있기 때문에 그릇된 단서를 남겨서는 안 된다.
  • ex) accountList -> List는 프로그래머에게 특수한 의미이다.
  • 유사한 개념은 유사한 표기법을 사용한다. (일관성이 떨어지는 표기법은 그릇된 정보)

📌 의미 있게 구분하라

  • 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다.
  • 불용어는 중복이다. (변수 이름을 variable, 표 이름을 table이라는 단어도 마찬가지)

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

발음하기 어려운 이름은 토론하기도 어렵다.

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

  • 긴 이름이 짧은 이름보다 나을 경우가 많다.
  • 검색하기 쉬운 이름이 상수보다 좋다.

📌 인코딩을 피하라

  • 인코딩한 이름은 발음하기 어렵고, 오타가 생기기도 쉽다.
  • 클래스와 함수는 접두어가 필요없을 정도로 작아야 마땅하다.
    (예를 들어 멤버 변수에 m_이라는 접두어를 붙이는 것은 구닥다리 코드라는 징표이다)

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

  • 문자 하나만 사용하는 변수 이름은 문제가 있다. (루프 반복 횟수를 세는 변수는 괜찮다)
  • 명료함이 최고이며, 남들이 이해하는 코드를 내놓아야 한다.

📌 클래스 이름

  • 명사나 명사구가 적잡하다.
  • Manager, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다.

📌 메서드 이름

  • 동사나 동사구가 적합하다.
  • ex) postPayment, deletePage, save 등

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

  • 클래스마다 fetch, retrieve, get으로 제각각 부른다면 혼란스럽다.
  • 일관성 있는 어휘는 읽는 사람에게 반갑게 여길 선물이다.

📌 말장난을 하지 마라

모든 add메서드의 매개변수와 반환값이 의미적으로 같으면 문제가 없다.
하지만 맥락이 다른 경우 insert나 append라는 이름이 적당하다.
따라서 말장난을 피하고, 최대한 이해하기 쉽게 짜야 한다.

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

기술 개념에는 기술 이름이 가장 적합한 선택이다.

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

  • 적절한 프로그래머 용어가 없다면 문제 영역에서 이름을 가져온다.
  • 해법 영역과 문제 영역을 구분할 줄 알아야 한다.

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

  • 클래스, 함수, 변수 모두 적절하게 맥락이 맞아야 의미가 분명해진다.
  • 불필요한 맥락은 없애야 한다. 

 

' > CleanCode' 카테고리의 다른 글

✨ Clean Code 7장: 오류 처리  (0) 2021.01.21
✨ Clean Code 6장: 객체와 자료구조  (0) 2021.01.20
✨ Clean Code 5장: 형식 맞추기  (0) 2021.01.14
✨ Clean Code 3장: 함수  (0) 2020.12.15
✨ Clean Code 1장: 깨끗한 코드  (0) 2020.11.20