seunghyun Note
클린코드 챌린지 DAY2 (2024.06.23) 본문
TIL (Today I Learned)
2024.06.23
✔️ range
2장. 의미 있는 이름
✔️ memory
- 의도가 분명하게 이름을 지으라 - p22
- 문제는 코드의 단순성이 아니라 코드의 함축성이다. - p23
- 그릇된 정보를 피하라 - p24
- 사람들은 단어에 능숙하다. 우리 두뇌에서 상당 부분은 단어라는 개념만 전적으로 처리한다. - p27
- 자신의 기억력을 자랑하지 마라 -p31
- 내가 가장 망각하는 부분... -> 변수도 마음대로 나만 해석할 수 있게끔 설정하고.. 나중에 까먹게 된다. ㅋㅋ
- 변수 i,j,k는 괜찮다 (l은 절대 안 된다!) -> 왜? -p31
- 특정 문화에서만 사용하는 농담은 피하는 편이 좋다. 의도를 분명하고 솔직하게 표현하라 -p33
✔️ learn
- 과연 나에게 어떤 것이 더 익숙하고 편할까?
나는 솔직히 아래 코드가 더 익숙하다. 뭔가 곱하고 나눈다는 단순한 느낌?
for ( int j=0; j<34; j++){
s += (t[j] *4 ) /5;
}
하지만 값이 커지거나 중복된 변수가 있지만 값이 바뀐다면 변수를 설정해서 위의 '4' 와 '5'가 어떤 용도로 사용하는지 알려주는 것이 중요하다는 것이다.
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for(int j=0; j<NUMBER_OF_TASKS; j++){
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}
변수가 처음에는 길고 많으니 복잡한 코드라고 생각했지만 변수들을 해석하고 이해하면 더 간단하기에 값들의 의미를 분석해 원하는 상수를 가려낼 수 있다.
- 클래스 이름, 메서드 이름
기존까지 클래스나 메서드 이름을 설정할 때 기능에 따라 분류하는 경향이 있었다. 예를 들면 '움직임'에 관련된 기능들이 있으면 메서드에 moveEntity, moveRect, moveCar ... 등등 , 서비스를 만들 때 `소비자`들이 있다면 people이라는 클래스를 만들어 constructor 를 추가해 줬다. 지금까지는 의식의 흐름으로 만들었는데 본문에는 클래스 이름은 동사는 사용하지 않는다. 클래스 이름과 객체 이름은 명사나 명사구가 적합하다.
그리고 메서드 이름은 동사나 동사구가 적합하다. 접근자, 변경자, 조건자는 표준에 따라 값 앞에 get, set, is를 붙인다.
✔️ impression
함수나 클래스 설정하는 것이 의식의 흐름으로 많이 만들었는데 책을 보면서 형식화된 변수 선언들을 알게됐고 왜 그렇게 해야 하는지(인수인계, 사용자, 개발자들의 이해를 돕고 나의 기억력을 믿지 않아야 한다는 것)을 알게 됐다.
728x90
'스터디 > 클린코드 챌린지' 카테고리의 다른 글
클린코드 챌린지 DAY5 (2024.06.28) (0) | 2024.06.28 |
---|---|
클린코드 챌린지 DAY4 (2024.06.27) (0) | 2024.06.27 |
클린코드 챌린지 DAY3 (2024.06.25) (0) | 2024.06.25 |
클린코드 챌린지 DAY1 (2024.06.22) (0) | 2024.06.23 |
클린코드 챌린지 START (2024.06.21) (0) | 2024.06.21 |