클린 코드 - 2장 의미있는 이름
CleanCode ·클린 코드 2장 의미있는 이름을 짓는 규칙과 간략한 설명을 정리합니다!
규칙
- 의도를 분명히 밝혀라
- 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다.
- 그릇된 정보를 피하라
- 그릇된 단서는 코드 의미를 흐린다.
- 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다.
- 의미 있게 구분하라
- 읽는 사람이 차이를 알도록 이름을 지어라.
- 발음하기 쉬운 이름을 사용하라
- 사람들은 단어에 능숙하고, 발음하기 어려운 이름은 토론하기도 어렵다.
- 검색하기 쉬운 이름을 사용하라
- 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 띄지 않는다는 문제점이 있다.
- 이름 길이는 범위 크기에 비례해야 한다.
- 인코딩을 피하라
- 유형이나 범위 정보까지 인코딩에 넣으면 이름을 해독하기 어려워진다.
- 인코딩한 이름은 거의가 발음하기 어려우며 오타가 생기기도 쉽다.
- 자신의 기억력을 자랑하지 마라
- 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다.
- 전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.
- 클래스 이름은 명사나 명사구가 적합하다.
- 메서드 이름은 동사나 동사구가 적합하다.
- 기발한 이름은 피하라
- 재미난 이름보다 명료한 이름을 선택하라.
- 너무 기발하면 저자와 유머 감각이 비슷한 사람만, 농담을 기억하는 동안만, 이름을 기억한다.
- 의도를 분명하고 솔직하게 표현하라.
- 재미난 이름보다 명료한 이름을 선택하라.
- 한 개념에 한 단어를 사용하라
- 똑같은 메서드를 클래스마다 제각각 부르면 혼란스럽다.
- 말장난을 하지 마라
- 한 단어를 두 가지 목적으로 사용하지 마라
- 해법 영역에서 가져온 이름을 사용하라
- 코드를 읽을 사람도 프로그래머이다.
- 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어 등을 사용해도 괜찮다.
- 모든 이름을 문제 영역에서 가져오는 정책은 현명하지 못하다.
- 같은 개념을 다른 이름으로 이해하던 동료들이 매번 고객에게 의미를 물어야 함.
- 코드를 읽을 사람도 프로그래머이다.
- 문제 영역에서 가져온 이름을 사용하라
- 적절한 ‘프로그래머 용어’가 없다면, 문제 영역에서 이름을 가져온다.
- 그러면 코드를 보수하는 프로그래머가 분야 전문가에게 의미를 물어 파악할 수 있다.
- 의미 있는 맥락을 추가하라
- 명확하게 할 수 있다면, 접두어를 사용해라
- 불필요한 맥락을 없애라
- 모든 이름에 접두어를 추가한다면, 검색하기 어렵다.