Вопрос с собеседования · Frontend

Как постепенно переписать большое legacy-приложение на новый стек?

SeniorАрхитектура фронтенда
Ещё спрашивают так:
  • Как перевести проект с jQuery или AngularJS на React без остановки разработки?
Коротко

Переписывать всё с нуля — главный риск: годы без новых функций и вечная погоня за старой системой. Работает постепенная замена (strangler fig): новый стек встраивается в старое приложение — по страницам или виджетам, — новые функции пишутся сразу на новом, старые переносятся по приоритету, а метрики и тесты защищают от регрессий. Важны критерий завершения и план удаления старого кода.

  • Начать с инфраструктуры: сборка, типы, тесты на критичных путях
  • Мост между стеками: монтирование новых компонентов в старые страницы, общий роутинг и состояние
  • Сначала самые изменяемые части — выгода появляется быстрее

А ещё Без измеримой цели (скорость разработки, производительность, найм) миграцию не защитить перед бизнесом

Подробно

План:

  1. Обоснование: какую проблему решает миграция и как её измерить.
  2. Подготовка: современная сборка рядом со старой, e2e-тесты на ключевые сценарии.
  3. Мост: новые компоненты монтируются в старые страницы, или новые страницы под тем же доменом и навигацией.
  4. Перенос по приоритету: часто меняемое и проблемное — первым.
  5. Удаление старого кода и зависимостей с контролем прогресса.

Риски: два стека надолго, дублирование логики, разный UX — поэтому важны сроки этапов и общая дизайн-система.

Что хотят услышать

  • Постепенная замена вместо переписывания с нуля.
  • Мост между стеками и тесты.
  • Обоснование, приоритеты и завершение.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Остановить разработку и переписать всё с нуля
  • ✗Переносить всё одной большой веткой и влить в конце, когда новый стек полностью готов к релизу
  • ✗Оставить legacy навсегда без изменений
  • ✓Strangler fig: новое внутри старого, новые функции сразу на новом стеке, перенос под тестами

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования