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

nowij·2021년 11월 27일
0

클린코드 정리

목록 보기
2/3
post-thumbnail

1. 의미가 분명한 이름 짓기

int a;
String b;

System.out.print("User Requested "+b+". count = "+a);

변수명을 봤을땐 뭔지 모르고 결과가 나와야 무엇을 의미하는 지 알 수 있다

int itemCount;
String itemName;

System.out.print("User Requested "+itemName+". count = "+itemCount);

따라서 이런식으로 변수명을 구체적으로 지어야한다


2. 루프 속 i, j, k 사용하지 않기

for (int i=0 ; i<messages.size() ; i++) {
	// ..
}

배열 순회할 때 인덱스를 의미하는 i를 사용하지 않고
advanced for문으로 대체할 수 있다

for (String message : messages) {
	// ..
}

이렇게 하면 인덱스 i 사용하는거보다
messages 배열 안에 있는 message를 String형으로 쓴다라고 사용할 수 있다

messages.stream().forEach(
	message -> //..
)

lamda도 사용할 수 있다

굳이 인덱스 값이 필요한게 아니라면 i를 지양하자


3. 통일성 있는 단어 사용하기

Member/Custmer/User
Service/Manager
Repository/Dao
위와 같이 의미가 똑같은 단어가 여러개 일 경우 한가지를 정해서 쓰자
똑같은 코드에 다른 단어를 사용하면 혼란스럽기 때문에 한 가지를 정해야한다


4. 변수명에 타입 넣지 않기

String nameString; // Bad -> name로 선언
int itemPriceAmount; // Bad -> itemPrice로 선언
List<Account> accountList; -> accounts, accountList
Map<Account> accountMap;

List나 Map은 끝에 타입을 넣는 경우가 있다
특히 Map 같은 경우는 이를 대체할 수 있는 말이 없기 때문에 이름만 보고 타입명을 유추할 수 있게 한다

현업에서 참고하는 Google Java Naming Guide

패키지 네이밍 가이드

com.example.deepspace // Good
com.example.deepSpace //Bad
com.example.deep_space //Bad
모두 소문자로, 언더바(_) 사용 금지

클래스 네이밍 가이드

Character, ImmutableList // 클래스는 명사, 명사구
List, Readable // 인터페이스는 명사, 명사구, (형용사)
HashTest, HashIntegrationTest // 테스트 클래스는 Test로 끝나기
대문자로 시작해야된다

메서드 네이밍 가이드

sendMessage, stop // 메서드는 동사, 동사구
소문자로 시작해야된다

0개의 댓글