1. 한 메서드에 오직 한 단계의 들여쓰기
소트웍스 앤솔로지의 Object Calisthenics 내용을 TypeScript로 적용해봤습니다.
코드 작성 시 if
, for
문 등에서 들여쓰기(indent)를 쓰게 된다. 들여쓰기가 많아질수록 가독성과 유지보수의 용이함을 저해하는 경우가 생긴다. 여러 분기나 반복문이 중첩되는 경우 코드를 보고 이해하기 위해 머릿속에서 그 과정을 실행해봐야하기 마련이다. 다음 코드를 확인해보자.
이렇게 들여쓰기가 깊어지면, 이를 메소드들로 나눌 필요가 생긴다. 마틴 파울러는 리팩토링에서 메소드 추출(Extract Method) 패턴을 제시한다. 전체 코드량은 늘어나겠지만 메소드에 적당한 이름을 붙이고 들여쓰기 단계를 줄임에 따라 가독성이 높일 수 있다. Transpile과 Uglify를 거치면 결과적으로 코드량도 크게 차이나지 않을 것이다.
VS Code 기준 추출한 메소드 부분을 블록 지정하고 Quick Fix(
CMD + .
)를 하면 다음과 같이 쉽게 메소드를 추출할 수 있다. WebStorm이나 IntelliJ에서도 비슷한 작업이 가능하다.
메소드 추출 후 코드는 다음과 같은 모양이 된다.
Last updated