Hacker News Digest

05 сентября 2025 г. в 14:00 • understandlegacycode.com • ⭐ 160 • 💬 67

OriginalHN

#legacy-code#refactoring#testing#unit-testing#strangler-fig#vba#cobol#vb.net

The key points of "Working Effectively with Legacy Code"

Краткий конспект «Working Effectively with Legacy Code»

«Легаси-код — это код без тестов»
(М. Фезерс, 2004)

Алгоритм работы

  1. Тесты → изменения
    Сначала покрой тестами, потом трогай логику.
  2. Парадокс легаси
    Чтобы добавить тесты, надо изменить код; чтобы изменять, нужны тесты.
    Решение: минимальные безопасные рефакторинги.

4 шага к тестам

  1. Найти шов (Seam) – точку, где можно подменить поведение без правки исходника.
    Пример: унаследовать класс и переопределить метод.
  2. Разорвать зависимости (БД, сеть, файлы).
  3. Написать быстрый (< 100 мс) изолированный тест.
  4. Вносить изменения и рефакторить.

Характеризационные тесты

Если логика не ясна, пишем тест, который фиксирует текущее поведение; потом рефакторим.