2장
가독성이란?
- 코드가 무슨일을 하는지 파악하기가 쉽고 어려운 정도
코드에서 의도를 전달하는 방법
- 코딩 컨벤션 지정
- 주석 달기
- 변수, 메서드, 클래스 및 파일 이름 지정
- 공백 사용
코딩컨벤션 사용해야할까?
- 최적의 코딩 컨벤션을 찾아나가야 할듯?
유지보수성이란?
- 코드를 얼마나 빠르고 쉽게 수정할 수 있는지
불변속성의 범위 제한을 통한 유지보수성 향상?
- 주로 전역상태의 변수 참조로 외부에서 데이터가 변형될때 문제가 발생
- 변수를 명시적으로 체크해서 불변속성을 제거해주기
- 함께 변하는것은 함께 있어야한다 (불변속성의 범위제한)
속도, 유연성 및 안정성 확보
- 상속 대신 컴포지션을 사용하라?
컴포지션이란?
- 상속이 하위 클래스가 상위 클래스의 특성을 재정의 한것이라면
- 컴포지션은 기존 클래스가 새로운 클래스의 구성요소가 되는것
컴포지션의 장점
- 상속 처럼 기존의 클래스 확장이 아닌 private 필드로 기존 클래스의 이느턴스를 참조함 (forwarding)
- 새로운 클래스는 기존의 클래스의 구현 방식을 벗어나고, 기존 클래스에 새로운 메소드가 추가되더라도 영향을 받지 않음 (유연성 증가)
- 추가로 변경이 가능하기 때문에 작업의 속도가 올라가고 기존 코드를 건들지 않기 때문에 안정성이 확보됨
리팩토링과 일상 업무
“항상 여러분이 왔을 때보다 더 좋게 만들어 놓고 떠나세요.”