14. 리팩터링 - 기존의 코드를 성장시키는 기술
내용
리팩터링의 흐름
리팩터링?
실질적인 동작은 유지하면서, 구조만 정리하는 작업
실질적인 동작이 바뀌지 않았음을 보장해야한다.
보통 테스트를 통해 보장하려고함 (e.g. 단위 테스트)
논리 부정 연산자! 을 개선
!customer.isEnabled()
->customer.isDisable()
목적을 나타내는 메서드를 사용하자
특정 로직을의 목적을 나타내는 메서드를 사용하자
possessionPoint.amount < comic.currentPuchasePoint.amount
대신에isShortOfPoint()
포인트 부족 여부를 판단하는 메서드로 리팩터링..
단위 테스트로 리팩터링 중 실수 방지하기
일단 테스트를 실패 시킨다.
코드 개선하고,
테스트 성공시킨다.
불필요한 사양을 이해하기 위한 분석 방법
IDE 의 리팩터링 기능
Refactor -> Rename
Refactor -> Extract Method
리팩터링 시 주의 사항
기능 추가와 리팩터링 동시에 하지 말기
둘 중 한쪽에만 집중하자.
둘다 진행하다가 둘다 달성 못할 수 도 있음.
작은 단계로 실시하기
small step, small commit
불필요한 사양을 제거 고려하기
사용하지 않는 부분이라면 제거 고려하자
동적 언어는 정적언어에 비해 리팩터링 하기 힘들다.
정리
리팩터링 할 때, 단위 테스트 필수
리팩터링과 기능 추가를 동시에 진행하지는 말자
가독성이 최우선이다.
참고
https://product.kyobobook.co.kr/detail/S000202521361
Last updated
Was this helpful?