About Clean Code Ch2
Updated at 2021-12-30
Clean Code에 대하여
in Clean Code by Robert C. Martin
Ch2 의미있는 이름
-
의도를 분명하게 밝혀라
좋은 이름을 지음으로써 절약되는 시간이
좋은 이름을 지으려고 소비하는 시간보다 훨씬 많으므로,
언제나 좋은 이름을 사용하려고 노력하라.
코드 자체에 명시적으로 어떤 변수인지, 어떤 기능의 함수인지를 명확히 하라. -
그릇된 정보를 피하라
프로그래밍에 있어서 이미 널리 알려진 이름이나, 예약어, 널리 쓰여지는 자료구조 들의 이름이 포함된 이름은 좋지 않다.
또한, 꽤나 다른 기능을하는 함수와 변수 간에 유사한 이름을 사용하지 않도록하라. -
의미있게 구분하라
다분히 의도적인 이름을 사용하라.
쓸데없이 String, Object, Info와 같은 흔한 용어를 갖다 붙이지 말라. “읽는 사람이 차이를 알도록 이름을 지어라.” -
발음하기 쉬운 이름을 사용하라.
프로그래밍은 사회 활동이다. 발음하기 쉽고, 읽기 쉬워야한다.
여러 사람이 모두 편하게 읽고 이해하고, 이를 통해 대화가 가능해야 한다. -
검색하기 쉬운 이름을 사용하라.
문자 하나를 사용하는 이름과 상수는 확인하기가 굉장히 어렵다. 매우 간단한 로컬 메소드에서만 로컬 변수를 한 문자롤 사용하는 것이 좋다. 이름 길이는 범위 크기에 비례해야 한다.
이름을 의미있게 지으면 함수가 길어진다. 하지만 그 이름을 검색할 때의 편의성도 그만큼 커진다. -
인코딩을 피하라.
인코딩한 정보를 이름에 넣을 이유는 없다. 그런 이름은 발음하기 매우 어려우며 오타가 생기기도 쉽다.
단, 아주 가끔은 필요할 수도 있다. -
자신의 기억력을 자랑하지 마라.
절대로 자신만 아는 내용을 이름으로 사용하지 마라. 명료함이 최고다 -
클래스 이름
클래스 이름은 명사 혹은 명사구를 사용하라. 모호한 단어는 피하고, 동사는 사용하지 마라. - 메소드 이름
메소드 이름은 동사 혹은 동사구를 사용하라. 접근자, 변경자, 조건자는 각각 get, set, is 를 사용하라.(javabean 표준에 의거) 생성자를 중복 정의할 때에는 정적 팩토리 메소드를 사용하라. 이 메소드 이름은 인수를 설명하는 이름으로하라. 예를 들어,Complex fulcrumPoint = Complex.FromRealNumber(23.0); is better than Complex fulcrumPoint = new Complex(23.0);
-
기발한 이름을 피하라.
이름은 명료해야 한다. 의도를 솔직하고 분명하게 표현하라. -
한 개념에 한 단어를 사용하라.
예를 들어, 같은 개념의 메소드를 클래스마다 fetch, get, retrieve 으로 제각각 부르면 혼란스럽다.
일관성 있는 어휘를 사용하라. -
말장난을 하지마라.
11번의 이유 때문에 억지로 같은 어휘를 사용할 필요는 없다. 필요하면 분명히 맥락에 따라 다른이름을 사용하라.
프로그래머는 코드를 최대한 이해하기 쉽게 짜야한다.
대충 훑어봐도 알정도로. -
해법 영역에서 가져온 이름을 사용하라.
코드를 읽을 사람도 프로그래머 이므로, 웬만하면 프로그래머의 지식의 영역에서 이름을 고르라. -
문제 영역에서 가져온 이름을 사용하라.
만약 13이 어려운 경우, 문제 영역(고객의 영역)에서 이름을 가져와도 괜찮다. 만약 문제 영역과 관련이 깊다면 문제영역과 관련된 이름이 좋을 것이다. -
의미있는 맥락을 추가하라.
클래스, 함수, 이름 공간에 맥락을 부여하라.
그렇지 못할 경우 최후의 수단으로 접두어를 붙인다. - 불필요한 맥락을 없애라.
불필요한 맥락을 이름에 부여하여 코드 재사용시의 불편함이 없도록 하라.