Ворклог по задаче "Перенести сайт на новый движок"
Legacy baseline запущен локально
Удалось локально поднять старый pivkarta.ru — Docker сильно помог сохранить воспроизводимость даже спустя годы. Одновременно стало хорошо видно, насколько большой исторический слой накопился в текущей архитектуре.
Некоторые характерные компоненты baseline:
- build image:
mhart/alpine-node:10— Node.js 10; - Docker Compose
3.7; prismagraphql/prisma:1.15.3(Prisma 1) отдельным сервисом между приложением и БД;- MySQL
5.7; - отдельные контейнеры
frontиapiиз общего старогоprisma-cms; - отдельный frontend
pivkarta.ru-2; - phpMyAdmin;
- собственный Caddy proxy;
- MailHog;
- отдельный
rtcmultyconnection; - Coturn со STUN/TURN-инфраструктурой.
То есть это уже не просто задача обновить несколько npm-пакетов: перед нами хороший реальный brownfield со слоями решений разных лет и большим количеством инфраструктуры, часть которой может оказаться необходимой, а часть — историческим багажом.
Для эксперимента HAIH это особенно полезно. Не будем механически переносить этот zoo на современные версии. Старый проект становится источником требований и baseline поведения, а не спецификацией новой архитектуры. Для каждого слоя нужно выяснять: какую реальную capability он обеспечивает сейчас, нужна ли она pivkarta.ru сегодня, и какое минимальное проверяемое решение удовлетворяет этому requirement.
Первый намеченный новый vertical slice остаётся простым: сохранить существующую MySQL как legacy persistence boundary и пройти React → Apollo/codegen → GraphQL/Pothos → Knex → existing MySQL. Это позволит начать вытеснять старую систему работающими вертикалями, не начиная с рискованной миграции данных и не перенося Prisma 1 только потому, что он присутствует в legacy.
Связанный HAIH-эксперимент: haih.site и задача «Разработать и запустить сайт». Текущая задача pivkarta.ru: /tasks/cmqqxckd3003zp50up0dmzbld.