https://www.youtube.com/watch?v=4xg4OeGzGIw&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=3
WHAT과 HOW로 나눠 생각하기
하려는 것 / 의미 / 의도 (WHAT) | 그것의 실제 구현 (HOW) |
가입한지 1년 미만 | user 테이블에서 reg 칼럼 값 기준으로 count |
추가 지급 내역 남김 | log 테이블에 insert |
// HOW (하려는 것의 실제 구현에 집중)
int count = userDao.countUsersByReg(userId);
if(count > 0){
pointRate += 1;
}
..
if (count > 0){
logDao.insert(new Log(..., "AR", 1, ..));
}
// WHAT (하려는 것의 의미/의도를 표현에 집중)
int addPointRate = 0;
if (userRegistedLessThanOneYear(userId)){
addPointRate = 1;
}
..
if (addPointRate > 0){
recordAddPointHistory(userId, addPointRate);
}
WHAT과 HOW 분리 결과
구현을 잠시 잊고 실제 하려는 것이 무엇인지 생각하게 됨
- 실제 하려는 것의 의도가 코드에 표현될 가능성이 높아짐
- 코드의 가독성이 향상됨
- 유지보수성이 좋아짐
'클린코드' 카테고리의 다른 글
나누기 (0) | 2023.02.16 |
---|---|
변수 아껴 사용하기 (0) | 2023.01.27 |
10. 클래스 (1) | 2022.10.29 |
6. 객체와 자료구조 (1) | 2022.10.27 |
5. 형식 맞추기 (0) | 2022.10.26 |
댓글