정리 내용
구분해라 어떤게 냄새나는 코드인지 이게 먼저다.
테스트 코드 없는 리팩토링은 안전벨트없는 자동차 경주다
테스트 코드는 리팩터링의 안전장치이자, 방향제시자 이다.
빠른 피드백 루프를 위한 테스트 코드에 대한 빠른 피드백을 받아라(모래시계 프로그래밍)
구조가 아닌 의도가 먼저이다.
배운키워드
Once And Only Once
: 변경의 이유는 단하나의 이유여야 한다Demeter 법칙
: 느슨할 결합을 목표로 하며 → 객체가 다른 객체 내부 속성을 알고있으면 안된다. → 명령해라 := 메시지를 보내라 키워드 정리 내용
리팩토링 RF
리팩토링 관점에서 디자인 패턴을 읽어내라
기계적으로만 외우지 말고 리팩터링 과정속에서 자연스럽게 도출되는 구조를 이해하라
OOAO
중복을 피하자
중요한 이유
- 구조화의 핵심
- 유지보수 용이
비용계산 로직을 함수로 모듈화해라
사용하는 다른곳에서도 재사용한다
뿔뿔이 흩어져 변경할때 , 일일히 각 파일 영역을 찾아서 일일히 수정해야 하는 수고로움이 없어진다
디미터 법칙
중간 객체를 타고 접근하지 마라
실생활 : 소문이 와전되면서 왜곡이 생기는 원리와 같다
⇒ 스스로 책임지자
무엇을 어떻게 분리
무엇 : 무슨일을 할것인가
- 행위, 목적, 요구사항
어떻게: 구현, 절차, 방법
예시:
고객: 스파게티 주문
주방장: 어떤 재료를 어떤 순서로 만들지 판단
잘못된 예시:
고객: 스파게티를 이렇게 만들고, 이렇게 삶고 소스는 이렇게 …
⇒ 결합도가 생기고 유연성이 떨어짐
요구사항 예시
의도: 무엇: 유저에게 환영 메시지를 보내라
어떻게: 구현
⇒ Notifier 내부에서 책임지고 판단