클린 코드 - 2장: 의미 있는 이름

Rudy Lee (이재훈)·2022년 4월 30일
0

클린 코드

목록 보기
2/2
post-thumbnail
post-custom-banner

의도를 분명히 밝혀라

  • 변수나 함수 그리고 클래스 이름은 다음 질문에 모두 답할 수 있어야 한다.
    • 존재 이유
    • 수행 기능
    • 사용 방법
  • 따로 주석이 필요하다면 의도를 분명히 드러내지 못한 것이다.
  • 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다.

그릇된 정보를 피하라

  • 그릇된 단서는 코드의 의미를 흐린다.
  • 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다.
  • 서로 흡사한 이름을 사용하지 않도록 주의한다.
  • 유사한 개념은 유사한 표기법을 사용하여 일관성을 확보해야 한다.

의미 있게 구분하라

  • 이름이 달라야 한다면 의미도 달라져야 한다.
  • 개념을 구분하지 않은 채 이름만 다르게 붙여서는 안 된다.
  • 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 지양해야 한다.
  • 불용어를 추가한 이름은 아무런 정보도 제공하지 못한다.
  • 읽는 사람이 차이를 알도록 이름을 지어야 한다.

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

  • 발음하기 쉬운 이름은 기억하기 쉽고 토론하기도 쉽다.

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

  • 문자 하나로 이루어진 이름과 상수는 검색하기 어렵다.
  • 이름 길이는 범위 크기에 비례해야 한다.
  • 변수나 상수를 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바랍직하다.

인코딩을 피하라

  • 유형이나 범위 정보까지 인코딩에 넣으면 이름을 해독하기 어려워진다.
  • 인코딩한 이름은 발음하기 어려운 경우가 많으며, 오타가 생기기도 쉽다.
  • 인터페이스 이름과 구현 클래스 이름 중 하나를 인코딩해야 한다면 구현 클래스 이름을 택하라.

클래스 이름과 메서드 이름

  • 클래스 이름과 객체 이름은 명사나 명사구가 적합하다.
  • 메서드 이름은 동사나 동사구가 적합하다.
    • 접근자, 변경자, 조건자는 자바 빈 표준에 따라 get, set, is를 붙인다.
    • 생성자 오버로딩 시에는 정적 팩토리 메서드를 사용하고, 생성자 직접 호출을 제한한다.
  • 메서드 이름은 독자적이고 일관적이어야 한다.
    • 주석을 뒤져보지 않고도 프로그래머가 올바른 메서드를 선택할 수 있어야 한다.

기발한 이름은 피하라

  • 재미난 이름보다 명료한 이름을 선택하라.
  • 특정 문화에서만 사용하는 농담은 피하고, 의도를 분명하고 솔직하게 표현하라.

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

  • 한 개념에는 한 단어만 사용함으로써 일관성 있는 어휘를 사용해야 한다.
    • 한 단어를 두 가지 목적으로 사용하면 안 된다.

해법 영역과 문제 영역 구분하기

  • 해법 영역과 문제 영역을 구분하여 각 영역에 알맞은 이름을 사용해야 한다.
  • 기술 개념에는 기술 이름이 가장 적합한 선택이다.
    * 모든 이름을 문제 영역에서 가져오는 정책은 현명하지 못하다.
  • 적절한 프로그래밍 용어가 없다면 문제 영역에서 이름을 가져온다.

의미 있는 맥락을 추가하라

  • 클래스, 함수, 네임스페이스 이름을 이용하여 맥락을 부여하라.
    • 접두어를 붙이는 것은 마지막 선택지다.

불필요한 맥락을 없애라

  • 의미가 분명하다면 일반적으로는 짧은 이름이 긴 이름보다 좋다.
  • 이름에 불필요한 맥락을 추가하지 않도록 주의한다.
post-custom-banner

0개의 댓글