Progress
Preface
Legacy 코드의 정의
- Legacy 코드란 테스트가 없는 코드라고 생각한다.
- 그 코드가 얼마나 잘 추상화를 하였고 캡슐화를 고려하여 작성되었는지는 상관없다.
- 테스트 코드가 있을 때 우리는 자신있게 기능을 추가하거나 변경할 수 있다.
- 테스트 코드가 없다면 우리의 코드가 잘되고 있는지 잘되고 있지 않은지 검증할 수 있는 도구가 없다.
Yes, teams do get better and start to write clearer code, but it takes a long time for older code to get clearer. In many cases, it will never happen com- pletely. Because of this, I have no problem defining legacy code as code without tests. It is a good working definition, and it points to a solution.
이 책은?
- 이 책은 테스팅에 관한 책은 아니다.
- 이 책은 어떤 코드베이스가 존재하든 그것을 어떻게하면 자신있게 변경할 수 있는지에 대해서 다루는 책이다.
- 조금 더 구체적으로 이 책은 어떻게 하면 레거시 코드를 좀 더 잘 이해할 수 있는지, 그리고 그 코드를 테스트할 수 있는지, 리팩토링할 수 있는지, 그리고 거기에 어떻게 기능을 추가할 수 있는지에 대해서 다룬다.
- 이 책에 수록된 기술과 예제들은 내가 수 없이 많은 클라이언트들과 일을 하면서 만났던 코드들 중에 몇가지를 약간 변형을 해서 나열하였고 그 때 다루었던 경험에 대해서 나열하였다.
- 이 책은 예쁜 코드 디자인에 대해서 다루는 책이 아니다.
Part1. The Mechanics of Change
Ch1. Changing Software