1장 리팩토링이란?
1.1 코드 동작이 변하지 않는다는 것을 어떻게 보장할 수 있을까?
1.2 구현 세부 사항에 관심을 두면 어떨까?
1.3 불특정하고 검증되지 않은 동작에 관심을 두면 어떨까?
1.4 성능에 관심을 두면 어떨까?
1.5 동작이 변하지 않는다면 리팩토링의 요점은?
1.6 품질 균형 잡기와 일 끝마치기
1.7 품질이란 무엇이며 리팩토링과 어떤 관련이 있을까?
1.8 탐험으로서 리팩토링
1.9 어떤 것이 리팩토링이고 어떤 것이 아닐까?
1.10 마무리
2장 어떤 자바스크립트를 사용하고 있을까?
2.1 버전 및 사양
2.2 플랫폼과 구현
2.3 미리 컴파일된 언어
2.4 프레임워크
2.5 라이브러리
2.6 어떤 자바스크립트가 필요할까?
2.7 우리는 어떤 자바스크립트를 사용하고 있을까?
2.8 마무리
3장 테스트
3.1 테스트를 해야 하는 많은 이유
3.2 여러 가지 테스트 방법
3.2.1 수동 테스트
3.2.2 문서화된 수동 테스트
3.2.3 승인 테스트
3.2.4 종단 간 테스트
3.2.5 단위 테스트
3.2.6 비기능적 테스트
3.2.7 기타 유익한 테스트 유형
3.3 도구와 절차
3.3.1 품질 절차
3.3.2 품질 도구
3.4 마무리
4장 테스트 실습
4.1 처음부터 새로운 코드 만들기
4.2 테스트 주도 개발로 처음부터 새로운 코드 만들기
4.3 테스트되지 않은 코드와 특성화 테스트
4.4 디버깅과 회귀 테스트
4.5 마무리
5장 기본적인 리팩토링 목표
5.1 대규모 함수
5.2 입력
5.3 출력
5.4 부가 작용
5.5 상
지저분한 코드, 나쁜 코드에서 벗어나고 싶다면
리팩토링에 집중하라!
코드 변경과 리팩토링을 구분하자
코드 변경과 리팩토링은 다르다. 리팩토링은 코드를 변경하는 방법 중 하나이지만, ‘코드의 동작’은 바꾸면 안 된다는 제약이 있다. 즉, 리팩토링은 코드의 동작을 변경하지 않고 품질을 향상시키기 위해 구현 세부 사항을 변경하는 것이다. 코드 변경과 리팩토링의 차이점을 명확하게 구분하자.
실제 사용되는 코드로 실행하며 이해하자
테스트 방법과 변수 이름 다시 짓기와 같은 간단한 리팩토링부터 계층 구조, OOP 패턴, 비동기, 함수형 프로그래밍 원리를 적용하는 리팩토링까지 다양한 주제에 걸쳐 문제를 보여주고 이를 해결한다. 실제 사용할 수 있는 코드를 수록했고, 코드를 직접 실행해보고 수정하며 내용을 확실하게 이해할 수 있다.
최신 기능을 사용해 최선의 방법을 배우자
모든 코드가 최신 ES6를 기준으로 한다. 특정 데이터 구조를 리팩토링하는 방법, 기능적 접근법을 사용할 때 리팩토링하는 방법, OOP 접근법 및 기타 여러 가지 일반적인 상황을 포함한 상황에서 최선의 리팩토링에 대한 아이디어를 제시한다. 코드의 품질을 향상시키고 리팩토링에 대한 관점을 넓히려는 개발자에게 유용할 것이다.