728x90
반응형
CHAPTER 02 의미 있는 이름
의도를 분명히 밝혀라
- 의도가 드러나는 이름을 사용한다.
- 코드는 단순하게, 하지만 함축하지 않는다.
- 명시적 함수를 사용하여 상수를 감춘다.
public List<Cell> getFlaggedCells() {
List<Cell> flaggedCells = new ArrayList<Cell>();
for (Cell cell : gameBoard) {
if (cell.isFlagged()) {
flaggedCells.add(cell);
}
return flaggedCells;
}
그릇된 정보를 피하라
- 대부분의 개발자들은 클래스가 제공하는 메서드 목록을 살펴보지 않은채 이름만 보고 객체를 선택한다. → 이름만 보고 선택했을 때 문제가 없도록 이름을 정하도록 한다.
의미 있게 구분하라
- 이름이 의미없이 자료형을 붙이다던가 하는 noise word 는 지양한다.
발음하기 쉬운 이름을 사용하라
- 코드를 대상으로 대화하기 쉽도록 발음하기 쉬운 이름을 사용한다.
검색하기 쉬운 이름을 사용하라
- 쉽게 중복되지 않는 검색하기 쉬운 이름을 사용한다.
- ex ) MAX_CLASSES_PER_STUDENT
인코딩을 피하라
- 줄여쓰지 않는다. 풀네임으로 쓴다.
자신의 기억력을 자랑하지 마라
- 명료함이 최고다.
클래스 이름
- 명사, 명사구를 사용한다.
- Parscal Casing Naming Rule 사용한다.
메서드 이름
- 동사, 동사구를 사용한다.
- Camel Casing Naming Rule 사용한다.
기발한 이름은 피하라
- 명료함이 최고다. 반복.
- 특정 문화에서만 사용하는 농담을 하지 않는다.
- 의도는 분명하고 솔직하게.
한 개념에 한 단어를 사용하라
- 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. → 네이밍에 동일한 패턴을 적용
말장난을 하지 마라
- 한 단어를 두 가지 목적으로 사용하지 마라.
- 일관성을 고집하기 위해 다른 개념에 같은 단어를 사용하면 안된다.
해법 영역에서 가져온 이름을 사용하라
- 프로그래머에 익숙한 기술 개념에는 기술 이름이 가장 적합하다. → 타겟은 프로그래머다.
문제 영역에서 가져온 이름을 사용하라
- 적절한 프로그래머 용어가 없다면 문제 영역에서 이름을 가져온다.
- 해법영역과 문제영역?
의미 있는 맥락을 추가하라
- 어떤 변수가 어떤 메서드의 일부인지 알아 챌 수 있도록 이름을 정한다.
불필요한 맥락을 없애라
- 클래스 이름으로 적절한 이름과 클래스 인스턴스로 적절한 이름을 구분한다.
Package Naming Guide
All lower case, no underscores
com.example.deepscore
Class Naming Guide
UpperCamelCase
Method Naming Guide
LowerCamelCase
- jUnit 테스트에 underscore 사용되기도 함
- _패턴
pop_emptyStack
728x90
반응형
'clean code' 카테고리의 다른 글
| [클린코드] CHAP 06 객체와 자료구조로 데이터 표현하기 (0) | 2022.06.13 |
|---|---|
| [클린코드] CHAP 05 형식 맞추기 (0) | 2022.06.13 |
| [클린코드] CHAP 04 주석 (0) | 2022.06.13 |
| [클린코드] CHAP 03 함수 (0) | 2022.06.13 |
| [클린코드] CHAP 01 깨끗한 코드 (0) | 2022.06.13 |