일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- domain
- head first
- Design Pattern
- 스트림
- Was
- spring
- 클린코드
- ddd
- facade pattern
- 자바
- Clean Code
- Stream
- 패스트캠퍼스
- 자바8
- Java 8 in action
- Java8
- Java8 in action
- 자바8인액션
- spring boot
- spring Batch
- web
- Java
- SERVLET
- 디자인 패턴
- CQRS
- Java in action
- AWS101
- Template Method Pattern
- jsp
- 자바의 신
- Today
- Total
주난v 개발 성장기
[Clean Code] 2장.의미 있는 이름 본문
jar, war, 클래스, 패키지 등 많은 곳에서 사용하므로 이름을 잘 지으면 여러모로 편하다.
* 의도를 분명히 밝혀라
- "의도가 분명하게 이름을 지으라" 그러면 (자신을 포함해) 코드를 읽는 사람이 좀 더 행복해지리라.
int d; // 경과 시간(단위: 날짜) - 아무 의미도 드러나지 않는다.
코드가 단순하더라도, 변수명이나 파라미터에 따라서 코드를 이해하기가 더 쉬워진다.
단순히 이름만 고쳐도 함수가 하는 일을 이해하기 쉬워진다. 이것이 좋은 이름이 주는 위력이다.
* 그릇된 정보를 피하라.
소문자 L이나 대문자 O같은 경우는 1과 0 처럼 혼동이 가능하다.
그리고, 직각삼각형의 빗변(hypotenuse)를 구현할 때는 hp가 훌륭한 약어이겠지만, hp는 독자에게 그릇된 정보를 제공한다.
* 의미있게 구분하라
컴파일러나 인터프리터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 일으킨다.
* 발음하기 쉬운 이름을 사용하라.
비교
generationTimestamp vs genymdhms;
modificationTimestamp vs modymdhms;
발음하기 쉬운 형태의 변수가 보기도 좋다.
* 검색하기 쉬운 이름을 사용하라
* 인코딩을 피하라
* 멤버 변수 접두어
이제는 멤버 변수에 m_이라는 접두어를 붙일 필요도 없다.
클래스와 함수는 접두어가 필요없을 정도로 작아야 마땅하다. 또한 멤버 변수를 다른 색상으로 표시하거나 눈에 띄게 보여주는 IDE를 사용해야 마땅하다.
* 자신의 기억력을 자랑하지 마라.
클래시 이름- Manager, Processorm Data, Info는 피하고, 동사는 사용하지 않는다.
메서드 이름 - postPayment, deletePage, save 등이 좋은 예다.
- 접근자, 변경자, 조건자는 javabean 표준에 따라 get, set, is를 붙인다.
* 기발한 이름은 피하라
- 특정 문화에서만 사용하는 농담은 피하는 편이 좋다.
* 한 개념에 한 단어를 사용하다.
fetch, retrieve,get 등 제각각 부르면 혼란 스럽다.
* 말장난을 하지 마라.
- 프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다.
* 해법 영역에서 가져온 이름을 사용하라.
- 코드를 읽을 사람도 프로그래머다. 그러므로 전산 용어, 알고리즘 이름, 패턴 이름, 수학용어를 사용해도 괜찮다.
- 모든 이름을 문제 영역(Domain)에서 가져오는 것은 현명하지 못하다. 이해하기에 어렵다.
- 적절한 프로그래머 용어가 없다면 문제 영역에서 이름을 가져 온다.
* 의미 있는 맥락을 추가한다.
- firstName, lastName, street, houseNumer, city, state, zipCode라는 변수를 보면 주소에 관련된 것이라고 알 수 있다.
하지만, state 변수 하나만 사용한다면 주소 일부라는 사실을 알아챌 수가 없다.
-> 따라서 addr이라는 접두어를 추가하거나, Address라는 클래스안에 변수를 추가하면 더 큰 개념에 속한다는 사실이 컴파일러에게도 전달이 된다.
* 불필요한 맥락을 없애라.
'개발 성장기 > Clean Code' 카테고리의 다른 글
[Clean Code] 1장. 깨끗한 코드 (0) | 2020.09.12 |
---|