Software Engineering Note

2장 의미 있는 이름 본문

스터디/Clean Code

2장 의미 있는 이름

devmoons 2014. 9. 11. 22:54

이름 짓기에 대한 장


의도를 분명이 밝혀라


- 존재이유는? 수행기능? 사용방법은?

- 주석이 필요없게끔, 주석을 넣을거면 그냥 변수 이름을 잘 지어라



문제는 코드의 단순성이 아니라 코드의 함축성이다.


- 코드 자체에 맥락이 명시적으로 드러나도록 할 것



그릇된 정보는 피할 것


- 실제 컨테이너가 List가 아니라면 xxxList와 같은 이름은 피한다. => 개발자가 List로 오해할 수 있음

- 실제 컨테이너가 List인 경우라도 컨테이너 유형을 이름에 넣지않는 것이 좋다. 


읽는 사람이 차이를 알도록 이름을 지어라


발음하기 쉬운, 검색하기 쉬운 이름을 사용하라 (ex: 대문자로 정의하는 상수, MAX_NUM 같은)



인코딩을 피하라


- 여기서 인코딩은 뭔가 의미를 내포한 축약형 글자따위를 의미한다.

- 헝가리식 표기법은 사용하지 말 것!



인터페이스 클래스/구현 클래스


- 과거에 많이 사용하는 방식이 'I'를 인터페이스에 붙이는 형태

- 차라리 구현클래스에 Impl 식으로 붙이고, 변수에서 사용할 때 인터페이스 명으로 사용하는게 좋다는 주장


전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 

전문가 프로그래머는 자신의 능력을 좋은 방향으로 사용해 남들이 이해하는 코드를 내놓는다.


클래스 이름에서 Manager, Info, Data .. 등과 같은 단어는 피하고, 동사는 사용하지 않는다.


- 이건 정말 자주사용하던 습관이었다. 영단어를 많이 몰라서인지, 마땅한 이름이 없어서인지 모르겠다만, 뭔가 위임할 녀석이 나타나면

Manager를 많이 붙인 것같고, 정보를 가지고 있는 클래스에는 Info를 붙였고.. 주의 해야겠다.


일반적으로 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다.

이름에 불필요한 맥락을 추가하지 않도록 주의한다.


'스터디 > Clean Code' 카테고리의 다른 글

5장 형식 맞추기  (0) 2014.10.27
4장 주석  (0) 2014.10.27
3장 함수  (0) 2014.10.27
1장 깨끗한 코드  (0) 2014.09.11
클린코드 스터디  (0) 2014.09.11