클린 코드 - 의미있는 이름

REASON·2022년 11월 19일
0

STUDY

목록 보기
121/127

로버트 마틴의 클린 코드 책에 나오는 내용을 기반으로 정리하였다.

네이밍

  • 루프에서 반복 횟수를 세는 변수 i, j, k는 괜찮지만, 그 외에는 대부분 적절하지 않으므로 문자 하나만 사용하는 변수는 지양해야한다.

  • 클래스 이름과 객체 이름은 명사 또는 명사구를 사용하자.
    동사는 사용해선 안되며 Data, Info와 같은 단어는 피하는 것이 좋다.

  • 메서드 이름은 동사 또는 동사구를 사용하자.
    접근자나 변경자, 조건자에 따라 네이밍을 할 때 get, set, is를 앞에 붙일 수도 있다.
    생성자를 중복정의 할 때는 정적 팩터리 메서드를 사용하도록 하자.

기발한 이름을 사용하지 마라.

재미있는 이름보다는 명료한 이름을 선택하는 것이 좋다.

말장난을 하지 마라.

한 단어를 두 가지 목적으로 사용하지 말아야 한다.
예를 들어, 더하기를 수행하는 메서드의 이름을 add라고 명명 했다고 가정해보자.
새로 작성하는 메서드는 집합에 값을 하나 추가하는 메서드이다.
이 메서드의 이름도 add 여야 할까? add라는 메서드가 중복되므로 insert, append가 더 적합할 것이다. 코드를 최대한 이해하기 쉽도록 이름을 짓는 것이 좋다.

코드를 읽는 사람도 프로그래머이다.

그러므로 전산 용어, 알고리즘 이름, 패턴, 수학용어를 사용하는 것은 괜찮다.
모든 이름을 문제 영역에서 가져오는 것은 현명하지 않다.
기술 개념에는 기술 이름이 가장 적합한 선택이므로 프로그래머에게 익숙한 기술 개념이라면 기술 이름으로 작성하도록 하자.

문제 영역에서 가져온 이름을 사용해라.

앞서 적절한 프로그래머 용어가 없는 경우 문제 영역에서 이름을 가져올 수 있다.
문제 영역과 관련이 깊은 코드는 문제 영역에서, 해법 영역과 관련이 깊다면 기술 이름을 사용하자.

의미있는 맥락을 추가하라.

firstName, lastName, street, houseNumber, city, state, zipcode 라는 변수가 있을 때 이 변수는 주소를 나타냄을 알 수 있다.
하지만, 한 가지 이름만 가지고 봤을 때는 이 이름이 주소라는 것을 알기 어렵다. (모두 다 있을 때 주소라는 것을 알 수 있기 때문이다.)
이럴 때 접두어를 추가해볼 수 있다. 예를 들면, addr이라는 접두어를 넣으면
addrFirstName ... addrZipcode 와 같은 이름이 되므로 맥락이 분명해지기 때문이다.

불필요한 맥락을 없애라.

고급 휘발유 충전소라는 애플리케이션을 짠다고 가정했을 때 모든 클래스 이름을 GSD로 시작하는 것은 매우 바람직하지 않다.
일반적으로 짧은 이름이 긴 이름보다는 좋다. 단, 의미가 분명한 경우에만 해당된다.
불필요한 맥락을 넣는 것도 좋지 않으므로 주의하도록 하자.


참고 자료
Clean Code(클린 코드)

0개의 댓글