The key points of "Working Effectively with Legacy Code"
Краткий конспект «Working Effectively with Legacy Code»
«Легаси-код — это код без тестов»
(М. Фезерс, 2004)
Алгоритм работы
- Тесты → изменения
Сначала покрой тестами, потом трогай логику. - Парадокс легаси
Чтобы добавить тесты, надо изменить код; чтобы изменять, нужны тесты.
Решение: минимальные безопасные рефакторинги.
4 шага к тестам
- Найти шов (Seam) – точку, где можно подменить поведение без правки исходника.
Пример: унаследовать класс и переопределить метод. - Разорвать зависимости (БД, сеть, файлы).
- Написать быстрый (< 100 мс) изолированный тест.
- Вносить изменения и рефакторить.
Характеризационные тесты
Если логика не ясна, пишем тест, который фиксирует текущее поведение; потом рефакторим.