🔧 Легаси: как перестать бояться и начать рефакторить
Привет, коллеги! 👋
Только что опубликовал новую статью о практическом демо-рефакторинге легаси-кода в модуле editDocs для EvolutionCMS CE.
Что было:
• ajax.php на 100+ строк с if-elseif 📜
• $_POST напрямую в SQL без валидации 💉
• Бизнес-логика, размазанная по всему коду 🍝
• Тестов нет — любой рефакторинг = русская рулетка 🎲
Что сделал:
✅ Характеризационные тесты как «золотой слиток» легаси
✅ Валидация входных данных через DTO + Value Objects
✅ Разделение ответственности: Validator → Service → Repository
✅ PHPUnit для новых компонентов — тестируемость без боли
✅ Два варианта репозитория под одним интерфейсом для плавной миграции
Результат:
Код, с которым хочется работать: понятная архитектура, защита от инъекций, явные бизнес-правила и тесты, которые дают уверенность при изменениях.
📖 Читать статью полностью:
→ https://ambrion.dev/article/demo-refactoring-evolution-cms-editdocs-module-mass-move-function
В статье — примеры кода и мысли о том, почему выбран тот или иной подход. Без воды, только практика.
💬 Буду рад вашим вопросам и опыту работы с легаси в комментариях!
#Рефакторинг #PHP #EvolutionCMS #PHPUnit #Архитектура #Легаси #Тестирование #CleanCode #EditDocs #AmbrionDev
Привет, коллеги! 👋
Только что опубликовал новую статью о практическом демо-рефакторинге легаси-кода в модуле editDocs для EvolutionCMS CE.
Что было:
• ajax.php на 100+ строк с if-elseif 📜
• $_POST напрямую в SQL без валидации 💉
• Бизнес-логика, размазанная по всему коду 🍝
• Тестов нет — любой рефакторинг = русская рулетка 🎲
Что сделал:
✅ Характеризационные тесты как «золотой слиток» легаси
✅ Валидация входных данных через DTO + Value Objects
✅ Разделение ответственности: Validator → Service → Repository
✅ PHPUnit для новых компонентов — тестируемость без боли
✅ Два варианта репозитория под одним интерфейсом для плавной миграции
Результат:
Код, с которым хочется работать: понятная архитектура, защита от инъекций, явные бизнес-правила и тесты, которые дают уверенность при изменениях.
📖 Читать статью полностью:
→ https://ambrion.dev/article/demo-refactoring-evolution-cms-editdocs-module-mass-move-function
В статье — примеры кода и мысли о том, почему выбран тот или иной подход. Без воды, только практика.
💬 Буду рад вашим вопросам и опыту работы с легаси в комментариях!
#Рефакторинг #PHP #EvolutionCMS #PHPUnit #Архитектура #Легаси #Тестирование #CleanCode #EditDocs #AmbrionDev
❤1