The key points of "Working Effectively with Legacy Code"
Краткий конспект «Working Effectively with Legacy Code»
«Легаси-код — это код без тестов»
(М. Фезерс, 2004)
Алгоритм работы
- Тесты → изменения
Сначала покрой тестами, потом трогай логику. - Парадокс легаси
Чтобы добавить тесты, надо изменить код; чтобы изменять, нужны тесты.
Решение: минимальные безопасные рефакторинги.
4 шага к тестам
- Найти шов (Seam) – точку, где можно подменить поведение без правки исходника.
Пример: унаследовать класс и переопределить метод. - Разорвать зависимости (БД, сеть, файлы).
- Написать быстрый (< 100 мс) изолированный тест.
- Вносить изменения и рефакторить.
Характеризационные тесты
Если логика не ясна, пишем тест, который фиксирует текущее поведение; потом рефакторим.
Комментарии (67)
- Книга «Working Effectively with Legacy Code» М. Фезерса вызывает спор: кому-то она дала язык и инструменты, кому-то показалась тривиальной и неприменимой к реальному аду из VB.NET, COBOL, VBA, AS/400 и прочим диалектам.
- Главная идея «напиши тесты, потом трогай» часто невозможна: требований нет, классов нет, тест-фреймворка нет, а босс слышит «рефакторинг» как «тратить деньги впустую».
- Поэтому практики делятся на два лагеря: «сначала покрой тестами хотя бы то, что трогаешь» и «запусти новую систему параллельно, сравнивай выходы, переключайся кусочками (Strangler Fig)».
- UI, скрипты и «макро-ассемблеры» не поддаются юнит-тестам; тут спасают визуальные диффы, сторибук, продовые снимки и осторожный ручной прогон.
- Рефакторинг превращается в бесконечное «yak-shaving», если каждый шаг не привязан к новой фиче или бизнес-ценности; политика и мотивация команды важнее любой методики.
SimpleIDE
simpleide — лёгкая IDE для Visual Basic, работает на Linux и использует нативный .NET.
Позволяет писать, компилировать и запускать VB-код без Windows.
Комментарии (42)
- Обсуждали SimpleIDE — лёгкий open-source IDE для VB.NET на Linux (GTK# 3, .NET 8).
- Пользователи делятся ностальгией по VB, но отмечают падение популярности языка и отсутствие drag-and-drop GUI-редактора.
- Кому нужен .exe под Windows 11, советуют Visual Studio или Rider + Avalonia/C#; SimpleIDE заточен под Linux.
- Автор проекта за два месяца «с нуля» написал IDE с Claude и готовит библиотеку кастомных виджетов.
- Поднимается тема «AI-IDE нового поколения» и альтернатив вроде Gambas, Lazarus, React Native и веб-технологий.