본문 바로가기

플밍 is 뭔들/Clean Code

1-10. 이름을 잘 짓는 간단한 규칙 (한 개념에 한 단어, 한 목적에 한 단어로 사용해라.)

프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다. 집중적인 탐구가 필요한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표다. 의미를 해석할 책임이 독자에게 있는 논문 모델이 아니라 의도를 밝힐 책임이 저자에게 있는 잡지 모델이 바람집하다.

 

DeviceManager와 ProtocalController는 근본적으로 무엇이 다른가
만약 다르지 않고 같은 개념이라면 Manager 혹은 Controller로 통일시켜주어야 한다.
왜냐하면 이름이 다르면 독자는 당연히 클래스도 다르고 타입도 다르리라 생각한다.
일관성 있는 어휘는 코드를 사용할 프로그래머가 반갑게 여길 선물이다.


만약 여러 클래스에 add라는 메서드가 있다고 해보자. 모든 add 메서드의 매개변수와 반환값이 의미적으로 똑같다면 문제없다. 하지만 때로는 프로그래머가 같은 맥락이 아닌데도 '일관성'을 고려해 add라는 '단어'를 선택한다. 기존 add는 기존 값 두개를 더하거나 이어서 새로운 값을 만든다고 가정하자. 그리고 새로만들 add는 집합에 값 하나를 추가한다. 이렇게 같은 맥락이 아닌 경우에도 단어의 '일관성'을 고려해 add라는 단어를 선택하는 것보단insert나 append라는 이름이 적당하다.
만약 이렇게 같은 맥락이 아닌 경우에도 같은 이름을 쓰면 코드를 해석하는 독자가 함수의 기능을 명확하게 이해하기 위해서는 모든 add의 내용을 까보고 확인해야 한다. 그렇다면 코드가 이해하기 어려워지고 헷갈리게 된다.