Услуги Работы Стек Процесс Блог EN ↗ DE ↗ Связаться ↗
§ 07 / Спасение

Миграция и рефакторинг легаси — без остановки бизнеса.

Старый код редко бывает плохим — чаще он просто устал. Переношу проекты с Bitrix, WordPress, Yii, CodeIgniter и самописных CMS на современный стек постепенно, по частям. Без «давайте всё перепишем с нуля за год»: сначала обвязка, потом модули, потом ядро. Бизнес работает, клиенты ничего не замечают.

§ 07.1 Типичные ситуации

→ WordPress

Сайт на WordPress с 40 плагинами

Тормозит, постоянно ломается после обновлений, уязвимости. Переношу контент в headless-CMS (Sanity, Directus), фронт — Next.js или Astro. URL сохраняются, SEO не падает.

→ Bitrix

Bitrix-магазин, который уже не развить

Каждая доработка стоит как половина сайта. Переводим на headless-архитектуру: Bitrix остаётся как бэкенд или 1С как источник, фронт — современный, быстрый, индексируемый.

→ PHP 5.x

Самописный PHP-проект без документации

Один разработчик уволился, второй боится трогать. Собираем документацию, покрываю тестами критичный путь, потом поэтапно переношу в Node.js или Go.

→ Ruby / Django

Старый Ruby / Django

Проекты десятилетней давности, зависимости давно не обновляются. Апгрейд версий, миграция на новые ORM, выделение внутренних сервисов.

→ jQuery

Фронт на 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 минут — бесплатно. План миграции — после дискавери.