프로젝트 경험기/리팩토링 경험기

[리팩토링] (3) early-return 적용하기

yubi5050 2024. 12. 20. 17:26

배경 

복잡한 if-else  중첩 구조에 대한 수정 

 

과정

👉 리팩토링 전 

- api.py 의 함수에 다음과 같은 조건문이 적혀있었고, 유지보수와 이해(가독성)에 매우 어려움이 존재

# 리팩 전
if a:
   if b:
      if c:
         return '성공'
      else:
         raise ApiError(에러c)   
   else:
      raise ApiError(에러b)
else:
  raise ApiError(에러a)

 

👉 리팩토링 후

- 부정 문으로 상위 조건인 경우 return(raise)를 진행함 . early-return 을 통해 가독성 개선

# 리팩 후
if not a:
   raise ApiError(에러a)

if not b:
   raise ApiError(에러b)

if not c:
   raise ApiError(에러c)

return '성공'