Секции «Ядро» и «Инфра» слиты в одну «Очередь»: полок домена у проекта нет, а две секции держали два независимых порядка вместо одного. Порядок: красный гейт, потом долги, задевающие интерфейсы, потом хранилище, вход, разграничение, приложение. Разведка потолков SpeechKit последней — она обслуживает направление, а не очередь.
2.3 KiB
🔬 Выбор фреймворка для приложения
- Тип: research
- Категория: Очередь
- Зачем: Конвенция веб-UI написана под htmx, а решено делать SPA: до выбора фреймворка не заводится ни сборка, ни первый экран.
- Теги: goal:web-access
Конвенция web-ui.md описывала htmx с прямым запретом на шаг сборки и реактивные фреймворки. Решение сменилось на SPA, и теперь эта конвенция ждёт переписывания — но написать её не под что, пока фреймворк не назван.
Разведка, а не задача: исход — знание и переписанная конвенция, а не работающий экран.
Вопрос
Какой фреймворк берём под приложение на четыре экрана, которое собирается в статику, вшивается в бинарник Go и ставится на телефон как PWA.
Куда ляжет ответ
docs/research/spa-framework.md — сравнение с числами: размер собранной статики,
время холодной сборки, число зависимостей. Выбор и причина отказа от остальных —
в docs/adr/, потому что переделка на другой фреймворк стоит дороже переписывания
одного файла. Следом переписывается docs/conventions/web-ui.md, и до тех пор
она стоит честной строкой «фреймворк не выбран».
Рамки
Сравнение идёт на одном и том же пробном экране: список записей с опросом
состояния. Кандидаты названы человеком; сегодня в разговоре звучали Svelte, Vue
и React, все с Vite. Мера — размер статики, простота вшивания в go:embed и
цена шага сборки в гейте, а не популярность.