Секции «Ядро» и «Инфра» слиты в одну «Очередь»: полок домена у проекта нет, а две секции держали два независимых порядка вместо одного. Порядок: красный гейт, потом долги, задевающие интерфейсы, потом хранилище, вход, разграничение, приложение. Разведка потолков SpeechKit последней — она обслуживает направление, а не очередь.
35 lines
2.3 KiB
Markdown
35 lines
2.3 KiB
Markdown
# 🔬 Выбор фреймворка для приложения
|
|
|
|
- **Тип:** research
|
|
- **Категория:** Очередь
|
|
- **Зачем:** Конвенция веб-UI написана под htmx, а решено делать SPA: до выбора фреймворка не заводится ни сборка, ни первый экран.
|
|
- **Теги:** goal:web-access
|
|
|
|
Конвенция [web-ui.md](../../docs/conventions/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` и
|
|
цена шага сборки в гейте, а не популярность.
|