[Clean Code] 의미있는 이름

해당 포스트는 Clean Code의 내용을 참고하여 작성되었습니다.

의도를 분명히 밝혀라

의도가 분명하게 이름을 지으라. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수나 함수 그리고 클래스 이름을 지을때는 변수의 존재 이유는? 수행 기능은? 사용 방법은? 과 같은 질문에 모두 답해야한다.

따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.

그릇된 정보를 피하라

그릇된 단서는 코드 의미를 흐린다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다. 유사하지 않은 모듈간에 서로 흡사한 이름을 사용하지 않는다. 유사한 개념은 유사한 표기법을 사용한다. 이것도 정보다.

일관성이 떨어지는 표기법은 그릇된 정보다.

의미 있게 구분하라

컴파일러나 인터프리터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 일으킨다. 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 noise word를 추가하는 방식은 적절하지 못하다.

이름이 달라야 한다면 의미도 달라져야 한다.

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

추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 예를 들어 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 부르면 혼란스럽다.

일관성 있는 어휘는 코드를 사용할 프로그래머가 반갑게 여길 선물이다.

불필요한 맥락을 없애라

Gas Station Deluxe라는 어플리케이션을 만든다고 가정하자. 모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바람직하지 못하다.

일반적으로는 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다.

클래스 이름

클래스 이름과 객체 이름은 명사나 명사구가 적합하다.

메소드 이름

메소드 이름은 동사나 동사구가 적합하다. 접근자, 변경자, 조건자는 javabean 표준에 따라 값 앞에 get, set, is를 붙인다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/29/Clean%20Code/clean-code2/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.