본문 바로가기
클린코드

WHAT과 HOW로 나눠 생각하기

by 문자메일 2023. 2. 16.

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

댓글