docs: ссылки на упразднённый роадмап переадресованы, у восьми фактов назван дом
- ссылки на tasks/ROADMAP.md переведены на BACKLOG.md и на openspec/specs, упоминания целей — на задачи, которые эту работу делают; - судьи документации нашли восемь расхождений: Purpose спеки pipeline объявлял неописанным то, что уже нормирован пятью требованиями, вид времени в конвенции спорил со схемой, а квоты, шесть часов и отказ от Web Push жили сразу в двух документах без ссылки друг на друга; - два числа получили провенанс: 259 200 запросов в сутки и потолок в шесть часов теперь ведут к записке разведки, а не читаются как замер.
This commit is contained in:
@@ -58,6 +58,11 @@
|
||||
лексикографическую сортировку TEXT, то есть хронологию (`ORDER BY created_at`).
|
||||
Единая точка генерации — приложение, а не умолчание в схеме: так забытая
|
||||
вставка падает громко. Измерение длительности — не метка времени.
|
||||
*Расхождение:* вид времени задаёт хранилище — `2006-01-02 15:04:05.000Z`,
|
||||
пробел вместо `T` и доли секунды ([../database.md](../database.md), «Время»).
|
||||
Правило RFC 3339 действует на то, что пишем мы сами мимо хранилища; вид
|
||||
хранилища не меняем — сравнение строк в сыром запросе побайтово, и
|
||||
разошедшийся вид молча обращает условие срока захвата в константу.
|
||||
- Миграции — шаги PocketBase на Go
|
||||
(`internal/adapter/repo/pocketbase/migrations`, файл на шаг): коллекции и их
|
||||
поля заводятся кодом. При изменении структуры обновляем схему
|
||||
|
||||
@@ -33,11 +33,13 @@
|
||||
- **Шрифты и скрипты — со своего хоста**, без внешних. Внешних ресурсов времени
|
||||
выполнения нет.
|
||||
- **Офлайн-чтения расшифровок и очереди отправки без сети не делаем** — граница
|
||||
цели [web-access](../../tasks/items/web-access.md). Без сети приложение
|
||||
показывает состояние, а не пустой экран.
|
||||
- **Web Push не делаем**: уведомления идут через apprise и ntfy, цель
|
||||
[ready-notification](../../tasks/items/ready-notification.md).
|
||||
- **Записи звука в приложении не делаем** — файл выбирают системным диалогом.
|
||||
из [паспорта](../passport.md). Без сети приложение показывает состояние, а не
|
||||
пустой экран.
|
||||
- **Web Push не делаем**: уведомления идут через apprise и ntfy — решение живёт
|
||||
в [architecture.md](../architecture.md), «Уведомления», делает его
|
||||
[ntfy-delivery](../../tasks/items/ntfy-delivery.md).
|
||||
- **Записи звука в приложении не делаем** — граница из
|
||||
[паспорта](../passport.md), «Диктофон»; файл выбирают системным диалогом.
|
||||
|
||||
## Фреймворк и сборка
|
||||
|
||||
@@ -55,9 +57,12 @@
|
||||
|
||||
## Маршруты
|
||||
|
||||
- **Четыре экрана, одна таблица маршрутов** через `createRouter`. Маршруты по
|
||||
файлам не включаем: сборочная надстройка роутера пятой версии стоит 34 пакета
|
||||
в установке и на четырёх маршрутах не окупается.
|
||||
- **Одна таблица маршрутов** через `createRouter`. Маршруты по файлам не
|
||||
включаем: сборочная надстройка роутера пятой версии стоит 34 пакета в
|
||||
установке и на нашем числе маршрутов не окупается
|
||||
([research/spa-framework.md](../research/spa-framework.md), «Vue»). Сколько
|
||||
экранов и какие — не здесь: состав нормирует спека приложения, а до неё его
|
||||
держит [spa-skeleton](../../tasks/items/spa-skeleton.md).
|
||||
- **Адреса обычные, а не после решётки** (`createWebHistory`). Отсюда требование
|
||||
к серверу: неизвестный путь **вне** `/api/` отдаёт `index.html`, а не `404`;
|
||||
пути внутри `/api/` в приложение не проваливаются никогда.
|
||||
|
||||
Reference in New Issue
Block a user