본문 바로가기
CS/책 & 강의

[클린코드] 2장 의미 있는 이름

by 공부하는 무니 2023. 6. 20.
반응형


1) 들어가면서
이름을 잘 지으면 편하다.

2) 의도를 분명히 밝혀라
변수, 함수, 클래스 이름은 이름에서 존재 이유와 수행 기능, 사용방법이 드러나야 한다. 

3) 그릇된 정보를 피하라
코드에 그릇된 단서를 남겨서는 안된다. list가 아닌데 list라고 이름짓거나 너무 흡사한 이름도 헷갈리니 사용 말자.

4) 의미 있게 구분하라
읽는 사람이 구별 가능하도록 의미 있게 짓자. 불용어(a, the, data, info) 금물

5) 발음하기 쉬운 이름을 사용하라
커뮤니케이션과 뇌 효율성을 위해.

6) 검색하기 쉬운 이름을 사용하라
나중에 검색하기 쉽도록 이름 작성. 그런 의미에서 긴 이름이 짧은 이름보다 좋지만, 길이는 범위 크기에 비례해야 한다.[N5]

7) 인코딩을 피하라
헝가리식 표기법(타입 표기), 멤버 변수 접두어 필요 없다. 인터페이스와 구현 클래스의 경우에는 구현 클래스를 인코딩하자.

8) 자신의 기억력을 자랑하지 마라
명료함이 최고. 남들도 이해하는 코드를 작성하자.

9) 클래스 이름
명사나 명사구가 적합. Manager, Processor, Data, Info 피하기. 동사 사용하지 않기 

10) 메서드 이름
동사나 동사구가 적합. 접근자는 get, 변경자는 set, 조건자는 is. 

11) 기발한 이름은 피하라
재미보다는 명료함 추구

12) 한 개념에 한 단어를 사용하라
추상적인 개념(get, controller)하나에는 단어 하나만 선택해서 유지하자. controller, manager, driver를 섞어 쓰면 읽는 입장에서 너무 헷갈린다.

13) 말장난을 하지 마라
한 단어를 두 가지 목적으로 사용하지 말자. 지금까지 add를 두 값을 합쳐서 새로운 값을 내는 거로 짜왔는데 집합에 값 하나를 추가하는 메서드도 add로 짜면 안됨. 맥락이 다르니 insert나 append와 같은 것으로 써야 함.

14) 해법 영역에서 가져온 이름을 사용하라
해법영역(솔루션도메인): 프로그래머 용어, 기술, 수학, 전산 용어
문제영역(problem domain): 업계 비즈니스 도메인
문제영역에서만 이름을 가져오면 개발자가 이해하지 못할 수 있음.

15) 문제 영역에서 가져온 이름을 사용하라
적절한 프로그래머 용어가 없다면 도메인에서 이름을 가져올 수 있다. 우수한 프로그래머는 해법영역과 문제영역을 구분할 줄 알아야 함.

16) 의미 있는 맥락을 추가하라
주소 안에 시, 구, 동, 호 가 있다면 주소라는 맥락이 각 단어의 의미를 분명하게 하지만 갑자기 구 만 딸랑 있으면 의미가 불분명해진다. 이와 같이 의미를 분명하게 하는 클래스와 메소드명을 사용하자.

17) 불필요한 맥락을 없애라
중복되거나 불필요한 내용은 이름에서 빼자. customerAddress 를 클래스이름으로 사용하기 보다는 Address를 클래스이름으로 사용하고 인스턴스명으로 customerAddress를 사용하는 것이 낫다. 

18) 마치면서
위에서 소개한 규칙을 적용해서 코드 가독성이 높아지는지 보자.

반응형

'CS > 책 & 강의' 카테고리의 다른 글

[클린코드] 1장 깨끗한 코드  (0) 2023.06.20

댓글