Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스크럼기법
- 변수명 짓는법
- 디미터 법칙
- 나선형 모형
- 폭포수 모형
- 시스템 파악 정리
- springboot
- OpenAPI
- 커맨드공부
- mysql 튜닝
- 에자일 모형
- pl/sql
- Bandit Level 6 → Level 7
- 클린코드
- vue
- Bandit Level 5
- table scan
- Bandit Level 6
- was버그
- 시스템 파악
- 프로토타입 모형
- avax.net.ssl.SSLHandshakeException:
- plsql
- Law of Demeter
- java.sql.SQLRecoverableException
- 명령어공부
- 인증서만료에러
- SQLRecoverableException
- CSS
- was SQLRecoverableException
Archives
- Today
- Total
개발햄비
[Clean code] 변수명 본문
1. 구분하기 어려운 변수명은 사용 금지
private List<customer> customer;
private List<customerInfo> customerInfo;
private List<accuntData> accuntData;
private List<accunt> accunt;
private String theMessage;
private String message;
위 3개의 차이를 생각해보자.
무슨 차이인지 구분하기 어렵다.
코드를 읽는 사람이 차이를 알기 쉽도록 하여라 .
2. 발음하기 쉬운 변수명 사용하기.
class DtaRcrd{
private Date nwdte;
private Date genytmsp;
}
class Customer{
private Date generationTimestamp;
private Date modicationTimestamp;
}
아래 대화 내용을 확인하자 .
- 팀장님 두번째 줄 엔더블류디티이 (nwdte)와 젠와이티엠에스피(genytmsp) 를 보시면 됩니다
- 팀장님 두번째 줄 generationTimestamp와 modicationTimestamp를 보시면 됩니다
두번째 코드가 더 의미있는 대화가 가능하다.
3. 검색하디 쉬운 이름을 사용하기
문자 또는 숫자 4를 사용하는 이름과 상수는 코드에서 찾기 어렵다
숫자 3은 이클립스 내에서 검색하면 여러 데이터가 나오기 때문에 찾고자 하는 코드를 찾기 힘들다
// 1번 코드
for (int i = 0 ; i < 3; i++){
s += (t[i] * 4 )/ 5;
}
// 2번 코드
int realDaysPerIdealDay = 4;
int WORK_DAY_PER_WEEK = 4;
int sum = 0;
for (int j =0 ; j < NUMBER_OF_TASKS; j++){
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realTaskDays / WORK_DAY_PER_WEEK);
sum += realTaskWeeks;
}
위 코드에서 4 라는 상수를 찾고자 할때 WORK_DAY_PER_WEEK
로 검색한다면 바로 찾아질 것이다.
아무 변수명 없이 4를 찾고자 한다면 수십 수백개의 코드가 grep 될 것이다.
또한 , 아래와 같은 코드를 보자
// 예제코드
if("4".equals(type)){
// 작업
} else if ("3".equals(type)){
// 작업
} else if ("2".equals(type)){
// 작업
}
여기서 타입 4,3,2 는 무엇을 의미하는지 알수 있을까?
해당 코드를 작성한 사람은 기억할 수도 있지만 , 이 코드를 처음 보는 사람은 무엇을 의미하는지 알수가 없다.
때문에 아래와 같이 코드를 바꾼다면 조금 더 빠르게 코드를 이해할 수 있을 것이다.
// 예제코드
if(CREADIT_CARD.equals(payType)){
// 작업
} else if (CASH.equals(payType)){
// 작업
} else if (MOBILE_PAYMENT.equals(payType)){
// 작업
}
'개발 > Clean Code' 카테고리의 다른 글
[Clean code] 디미터 법칙 Law of Demeter (0) | 2021.06.20 |
---|---|
[CleanCode] 종속 함수 (0) | 2021.05.23 |
[Clean Code] 개발의 5S 원칙 (0) | 2021.04.25 |