CS/리팩토링

[리팩토링] Guard Clause

Nakuri 2023. 1. 26. 20:26
728x90

개요

Rider 사용하며 종종 if~else문 관련하여 리팩토링을 해주는 경우가 있었다.

최근 이 기법의 이름이 있었다는 사실을 알게되었는데,, 이름하여 "Guard Clause(가드 절)"

본문

if(!isDead)
{
    Look();
    if(!isJumping)
    {
        Move();
    }
}

위와 같이 중첩 조건문으로 이루어진 코드가 있을 수 있다.
이런 식으로 작성하다 보면 들여 쓰기의 많아지고 깊이가 깊어져 가독성이 떨어질 수밖에 없다.
여기에 else문까지 추가된다면 사이를 건너 뛰며 읽어야 하는 노력까지 더해진다.

이럴 때 필요한게 바로 Guard Clause이다.

if(isDead) return;
Look();

if(isJumping) return;
Move();

 

조건을 반대로 생각해서 반환을 해주는 것이다.

이제 들여쓰기도 사라지고 코드의 가독성이 올라가게 되었다!

 

결론

최근에 자주 애용하고 있는데, 코드가 전반적으로 깔끔해졌다.

RIder를 사용하며 참 여러모로 배우는 것 같다.

멘토가 따로 없네

참고

Refactoring: Guard Clauses