도서/클린코드

2장 의미있는 이름

곰돌이볼 2023. 6. 13. 23:05

이름 작성 규칙


  • 명확한 의도
    • 함수명, 변수명 등의 이름을 지을 때에는 명확한 의도가 보이도록 이름 작성하기
      • ex) int d; // 경과 시간을 나타낸 것이지만 명확한 의미를 파악하기 X
      • int daysSinceCreation; // 이와 같이 의도가 보이는 것으로 이름 작성하기

 

  • 잘못된 정보 피하기
    • 다른 뜻으로 의미가 전달될 수 있는 이름 피하기
      • ex) int hp; // 직각삼각형의 빗변(hypotenuse) 구현에 사용하는 변수
      • 괜찮은 약자라고 보이지만 다른 의미로 파악될 수 있으므로 좋은 변수명은 아니다.
    • 유사한 이름 사용 X
      • ex) XYZControllerForEfficientHandlingOfStrings와 XYZControllerForEffecientStorageOfStrings의 이름만으로 두 모듈의 기능 차이를 알 수 있는가? → NO
    • 유사하게 생긴 문자들을 한꺼번에 사용 X
      • 소문자 L, 대문자 I, 숫자 1을 혼합해서 사용 X
      • 영문자 O와 숫자 0 혼합 사용 X

 

  • 의미 있게 구분
    • 불용어(의미 없는 언어)나 한 단어에 연속적인 숫자를 붙인 단어 사용 X
  • 발음하기 쉬운 이름 사용
  • 검색하기 쉬운 이름 사용
    • 이름의 길이는 범위 크기에 비례해서 짓기

 

  • 인코딩 피하기
    • 헝가리식 표기법 X
      • 헝가리식 표기법 : 이름에 데이터 타입이 포함되는 것
    • 멤버변수 접두어 X
      • 클래스의 멤버 변수 앞에 "m_"과 같은 접두 사용 X
    • 인터페이스 클래스와 구현 클래스
      • 인터페이스의 접두어 "I" 사용 X
      • 인터페이스와 구현 클래스 중 인코딩을 한다면 구현 클래스이 더 나음

 

  • 코드를 읽을 때 자기만의 이름으로 이름 변경 X
    • 기억하지 못할 확률 ↑

 

 

'도서 > 클린코드' 카테고리의 다른 글

1장 깨끗한 코드  (0) 2023.06.13