Refactoring(1)

서동수·2022년 9월 11일
0

리팩터링 2판을 공부하며 정리한 내용

Refactoring

결과의 변경없이 코드의 구조를 조정하는 것
기능을 보존하며 설계, 구조를 개선하는 것

목표

- 가독성 올릴 수 있다.
- 유지 보수성 개선이 된다.
- 확장성을 높인다.

금지

- 기능 변경, 추가 금지 X
- 버그 수정 X
- 성능 개선을 위해서 X
- 버전 업데이트 X

왜 리팩토링을 할까?

- 개발하며 완벽한 코드, 설계가 어렵다.
- 프로그램의 요구사항이 변경된다.
- 정돈되지 않은 코드는 이해하기 어려워 진다.
- 에러의 발생 확률이 올라간다.
- 유지보수가 어려워 지기 떄문이다.

언제 리팩토링을 할까? (수시로 !!!!)

프로젝트 시작단계
- 기능 구현을 위한 코드
	-> 테스트 코드
    -> 리팩토링
    -> 기능 구현을 위한 코드
- 3의 법칙: 비슷한 일을 3 번째 하게 되면 리팩토링
- 코드리뷰: 코드를 이해하기 쉽게 만들기 (문서화)
- 기능추가: 기능을 추가하기 쉽도록 만들기 (재사용성, 모듈성)

프로젝트 유지보수 단계
- 버그수정: 버그를 검증하는 테스트 코드 
	-> 코드를 이해하기 쉽게, 변경하기 쉽도록 수정
    -> 리팩토링
    -> 버그를 검증하는 테스트 코드
    -> 버그수정
- 기능추가: 기존의 기능에 대한 테스트 체크
	-> 코드를 이해하기 쉽게, 변경하기 쉽도록 수정
    -> 리랙토링
    -> 기능추가

오래된 프로젝트 (테스트코드가 없다면....)
- 버그수정, 기능추가시
	-> 수정이 필요한 모듈/코드에 한정적으로 테스트 작성
    -> 리팩토링
    -> 코드수정 or 기능추가
	-> 때로는 새로운 코드를 작성하는 것이 더 나을때도 있다.
    

리팩토링의 중요한 포인트 !!!!

야그니 (You Ain't Gonna Need It)(필요 없을 거야)
- 당장 필요하지 않은 기능
- 사용하지 않는 기능
- 지나친 미래지향적 기능
profile
devLog

0개의 댓글