의미 있는 이름

우리는 변수, 함수, 패키지, 소스파일, 디렉토리 등 많은 곳에 이름을 붙인다.

의도를 분명히 밝혀라

좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 훨씬 더 많다!

변수, 함수, 타입의 이름은 이 질문들에 모두 답해야 한다.

  1. 존재 이유는?
  2. 수행 기능은?
  3. 사용 방법은?
    주석이 필요하다면 의도를 분명히 드러내지 못한 것이다.
int d; // 경과 시간(단위 : 날짜)

이름 d는 아무 의미도 드러나지 않는다.
측정하려는 값과 단위를 표현하는 이름이 필요하다.

int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;

그릇된 정보를 피하라

그릇된 단서는 코드의 의미를 흐린다.
나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다.

ex) 여러 계정을 그룹으로 묶을 때, 실제 List가 아니라면 accountList라고 명명하지 않는다.
accountGroup, Accounts 가 적당하다.

의미있게 구분하라

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

genymdhms (generate date, year, month, day, hour, minute, second)
를 읽을 때는 "젠 와이 엠 디 에이치 엠 에스"라 읽었다고 한다. 혹은 "젠 샤 무다 힘즈"(ㅋㅋㅋㅋ)

만약 generationTimestamp 로 변경한다면 대화가 훨씬 편해질 것이다.

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

문자 하나를 사용한다면 검색을 하기 힘들 것이다.
상수에도 상수명을 주는 것이 검색하기에 훨씬 편하다.

인코딩을 피하라

  • 헝가리식 표기법
  • 멤버 변수 접두어
  • 인터페이스 클래스와 구현 클래스
    • 인터페이스 클래스에는 이전에는 IShapeFactory 와 같이 접두어로 I를 붙였다.
    • 요즘은 인터페이스 클래스의 이름은 ShapeFactory를 사용하고 구현 클래스의 이름을 ShapeFactoryImpl 로 사용한다.

'스터디 > 클린코드' 카테고리의 다른 글

[Clean Code] 클린 코드(함수) - 6  (0) 2021.03.08
[Clean Code] 클린 코드 - 5  (0) 2021.03.08
[Clean Code] 클린 코드 - 3  (0) 2021.03.08
[Clean Code] 클린 코드 - 2  (0) 2021.03.08
[Clean Code] 클린 코드 - 1  (0) 2021.03.08

+ Recent posts