Миграция и рефакторинг легаси — без остановки бизнеса.
Старый код редко бывает плохим — чаще он просто устал. Переношу проекты с Bitrix, WordPress, Yii, CodeIgniter и самописных CMS на современный стек постепенно, по частям. Без «давайте всё перепишем с нуля за год»: сначала обвязка, потом модули, потом ядро. Бизнес работает, клиенты ничего не замечают.
§ 07.1 Типичные ситуации
Сайт на WordPress с 40 плагинами
Тормозит, постоянно ломается после обновлений, уязвимости. Переношу контент в headless-CMS (Sanity, Directus), фронт — Next.js или Astro. URL сохраняются, SEO не падает.
Bitrix-магазин, который уже не развить
Каждая доработка стоит как половина сайта. Переводим на headless-архитектуру: Bitrix остаётся как бэкенд или 1С как источник, фронт — современный, быстрый, индексируемый.
Самописный PHP-проект без документации
Один разработчик уволился, второй боится трогать. Собираем документацию, покрываю тестами критичный путь, потом поэтапно переношу в Node.js или Go.
Старый Ruby / Django
Проекты десятилетней давности, зависимости давно не обновляются. Апгрейд версий, миграция на новые ORM, выделение внутренних сервисов.
Фронт на jQuery
500 килобайт JS «на всякий случай», три версии jQuery в одном файле. Постепенный вынос в React / Svelte через острова, потом полная замена.
Большой монолит
Выделение модулей с чёткими границами, strangler fig pattern: новые фичи в новом стеке, старое постепенно откусывается. Без «big bang»-переписываний.
§ 07.2 Как это работает
- Неделя дискавери: читаем код, строим карту системы, нахожу критичные места, говорю с командой.
- План в виде последовательных шагов: что переезжает первым, что вторым, какие метрики проверяем после каждого.
- Тесты на критическом пути — чтобы рефакторинг не уронил оплату или доставку.
- Параллельный запуск старой и новой части, пока не убедимся, что новое не сломалось.
- Переключение трафика, мониторинг, откат при любом подозрении.
- Документация: схема системы, runbook'и, гайды для вашей команды.
§ 07.3 Что обычно не советуем
Полное переписывание с нуля. Это почти всегда дороже, дольше и рискованнее, чем кажется на старте. За 12 месяцев переписывания на новом проекте вы обычно узнаёте, что старый код содержал полсотни недокументированных бизнес-правил, за которые теперь ругаются пользователи. Лучше — пошагово.
Смену технологии только ради смены. Если старый PHP работает и не мешает бизнесу — не надо его трогать «чтобы было на Go». Трогать имеет смысл, когда старое мешает развитию, безопасности или производительности.
Микросервисы для команды из 2 человек. Сложность распределённых систем обычно дороже выигрыша. Модульный монолит почти всегда — лучший старт.
§ 07.4 Частые вопросы
Сколько это займёт?
Зависит от размера и состояния. Мелкий WordPress-сайт с контентом — 2–3 недели. Средний магазин на Bitrix — 6–10 недель. Крупный монолит — это многомесячная история, где важно планирование и приоритеты.
Можно ли мигрировать без простоя?
В 90% случаев — да. Параллельный запуск старой и новой части, плавное переключение по эндпоинтам или трафику. Полный простой бывает только на уровне переноса БД, и это чаще всего несколько минут.
У нас старый разработчик не отдаёт код.
Неприятная ситуация, но решаемая. Помогаем юридически оформить передачу исходников, либо восстанавливаем проект из работающей версии — это дольше, но возможно.
А сохранится ли SEO после миграции?
Да, это базовое требование: URL-структура, 301-редиректы, sitemap, канонические адреса, все мета-теги. Проверяю до и после через Search Console и Яндекс.Вебмастер.
Покажите
что болит.
hi@weiss.help ↗
Первый созвон 20 минут — бесплатно. План миграции — после дискавери.