закрыта задача spa-framework-choice

This commit is contained in:
av
2026-08-11 14:52:04 +03:00
parent 54ca4c0e50
commit ffa36e96c7
2 changed files with 0 additions and 35 deletions
-1
View File
@@ -29,7 +29,6 @@
- [✨ Сопоставить пользователя Telegram с учётной записью](items/telegram-account-link.md) — Белый список сверяется с именем пользователя Telegram, которое владелец меняет в любой момент, а записи из бота ни с кем не связаны. - [✨ Сопоставить пользователя Telegram с учётной записью](items/telegram-account-link.md) — Белый список сверяется с именем пользователя Telegram, которое владелец меняет в любой момент, а записи из бота ни с кем не связаны.
- [✨ Свести приём и чтение записей к одному контракту для приложения](items/json-api-for-spa.md) — Сегодняшний API отвечает 404 на любую ошибку чтения и 500 на любую ошибку приёма: строить на нём экраны нечем. - [✨ Свести приём и чтение записей к одному контракту для приложения](items/json-api-for-spa.md) — Сегодняшний API отвечает 404 на любую ошибку чтения и 500 на любую ошибку приёма: строить на нём экраны нечем.
- [✨ Пускать скрипты в API по личным токенам](items/api-tokens.md) — Вход через OIDC закрывает API целиком, а скрипту браузерная сессия недоступна: автоматизировать загрузку станет нечем. - [✨ Пускать скрипты в API по личным токенам](items/api-tokens.md) — Вход через OIDC закрывает API целиком, а скрипту браузерная сессия недоступна: автоматизировать загрузку станет нечем.
- [🔬 Выбор фреймворка для приложения](items/spa-framework-choice.md) — Конвенция веб-UI написана под htmx, а решено делать SPA: до выбора фреймворка не заводится ни сборка, ни первый экран.
- [✨ Собрать каркас приложения и раздать его из бинарника](items/spa-skeleton.md) — Экранов нет и собирать их нечем: ни сборки фронтенда, ни раздачи статики в проекте не существует. - [✨ Собрать каркас приложения и раздать его из бинарника](items/spa-skeleton.md) — Экранов нет и собирать их нечем: ни сборки фронтенда, ни раздачи статики в проекте не существует.
- [✨ Сделать экран загрузки записи и её состояния](items/upload-and-status-screen.md) — Первое, ради чего приложение открывают: отдать файл и увидеть, что с ним происходит. - [✨ Сделать экран загрузки записи и её состояния](items/upload-and-status-screen.md) — Первое, ради чего приложение открывают: отдать файл и увидеть, что с ним происходит.
- [✨ Сделать экран списка своих записей и чтения текста](items/records-list-screen.md) — Расшифровка сегодня доходит одним сообщением и теряется в переписке; вернуться к ней через неделю нечем. - [✨ Сделать экран списка своих записей и чтения текста](items/records-list-screen.md) — Расшифровка сегодня доходит одним сообщением и теряется в переписке; вернуться к ней через неделю нечем.
-34
View File
@@ -1,34 +0,0 @@
# 🔬 Выбор фреймворка для приложения
- **Тип:** 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` и
цена шага сборки в гейте, а не популярность.