Post

Guard Clause를 활용한 Clean Code: 중첩된 if 문 없애는 법

CleanCode를 위하여!


Clean Code 책을 읽다가 제일 기억에 남는 부분이 있어서 메모로 남기려고 한다!

지금 우리의 Admin 기능을 담당하고 있는 Controller 는 대부분 이렇게 만들어져 있다

1
2
3
4
5
6
public String updateTopPosts(HttpServletRequest request,
            HttpServletResponse response) {
    if(utils.isAdmin(utils.getAuthUser(request))) {
        동작 수행
    }
}

대부분 이렇게 만들어져 있다보니 모든 method 의 indent 가 하나씩 늘어나 있다. 이렇게 indent 가 늘어나면 화살촉 코드가 되고 보기에 매우 안좋다!

하지만 if(utils.isAdmin(utils.getAuthUser(request))) 이부분을 다음과 같이 바꾸게 되면 indent 가 하나 줄게 된다

1
2
3
4
5
6
public String updateTopPosts(HttpServletRequest request,
            HttpServletResponse response) {
    if(!utils.isAdmin(utils.getAuthUser(request))) return "";
    
    동작 수행
}

이렇게 시작하자마다 권한을 확인하고 권한에 맞지않으면 return 혹은 raise Exception 을 해버리면 indent 도 하나줄고 보기에 아주 편하다!

단 주의할 점이 있다!


if 안에 들어가는 내용은 보통 긍정인 경우 개발자들이 읽기 쉬워한다고 한다! 따라서 같이 협업하는 사람들끼리 이야기하고 서로 스타일을 맞추어야할 필요가 있을 거 같다!

This post is licensed under CC BY 4.0 by the author.

© 병욱. Some rights reserved.