Clean Code 2장, 의미있는 이름

jonghyukLee·2023년 9월 3일
0
post-thumbnail

의도를 분명히 밝혀라.

  • 좋은 이름을 짓는데는 그만큼 시간을 들여야 하지만, 그로써 절약할 수 있는 시간이 훨씬 많다.
  • 각 이름은 다음 질문들에 모두 답해야한다.
    • 존재 이유
    • 수행 기능
    • 사용 방법
    • 주석이 필요하다면 그만큼 이름에서 의도를 분명히 하지 못한 것이다.

그릇된 정보를 피하라

  • 서로 흡사한 이름은 피해라
  • 일관성이 떨어지는 표기법은 그릇된 정보다

의미있게 구분해라

  • 불용어 사용을 피해라
    • 같은 표현을 반복하거나 불필요한 단어는 아무런 의미도 없고 부가적인 정보도 제공해주지 못한다. ex) ~Data, ~Info ...

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

  • 사람들은 단어에 능숙하기 때문

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

  • 예를들어 'e'를 변수로 사용했다고 가정했을 때, 대부분의 단어에서 e가 가장 많이 사용되기 때문에 탐색이 힘들어진다.
    • 따라서, 이름의 길이가 복잡할수록 찾기가 쉽다.
    • 이름의 길이는 사용되는 범위 크기에 비례해야 한다. (로컬 변수는 e와 같은 간단한 문자를 써도 크게 치명적이지 않다는 의미인듯)

인코딩을 피하라

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

클래스 이름

  • 명사나 명사구를 사용
  • Manager, Data, Info 등은 피한다.
  • 동사를 사용하지 않는다.

메서드 이름

  • 동사나 동사구를 사용
  • 접근자, 변경자, 조건자 등은 javabean 표준에 따라 get, set, is를 붙인다.
  • 생성자를 중복 정의할때는 정적 팩토리 메서드를 활용한다.

기발한 이름은 피해라

  • 가끔 재치나 농담을 섞는 경우가 있다고 함

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

  • 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다.
  • 메서드 이름은 독자적이고 일관적이어야 한다.
  • 일관성 있는 어휘를 사용한다.

결론

당연하겠지만, 생각보다는 명쾌한 결말이 없는 느낌이다..ㅋㅋㅋㅋ
대부분 지키고 있던 룰이었는데, 내 개인적인 취향과 조금 달랐던 부분도 있었다.
하지만 협업을 위해 취향따위 버릴 수 있기 때문에, 대부분의 사람들이 이해할 수 있고 선호하는 방식을 조금 더 연구해볼 생각이다!

profile
머무르지 않기!

0개의 댓글