приём и чтение записей сведены к одному контракту приложения
- адреса приложения переехали в своё пространство `/app/`, опрос готовности убран целиком: рубеж и причину остановки владелец узнаёт карточкой записи, текст — отдельным адресом названного вида - заведена единая точка отображения доменной ошибки и слой, приводящий к той же форме отказы библиотеки: тело несёт машиночитаемый код рядом с сообщением - у записи появились имя файла отправителя, длительность и размер своими колонками, а у ленты владельца — свой индекс: без него страница сканировала весь архив сервиса
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Страница архива задаётся ключом, а не номером
|
||||
|
||||
- **Дата:** 2026-08-15
|
||||
- **Источник:** openspec/changes/archive/2026-08-15-app-json-contract/design.md,
|
||||
раздел «Страница задаётся ключом, а не номером»
|
||||
|
||||
## Решение
|
||||
|
||||
Постраничное чтение своих записей идёт непрозрачным ключом по паре «время
|
||||
заведения и идентификатор». Номер страницы отвергнут.
|
||||
|
||||
## Почему
|
||||
|
||||
«Приём пишет в голову той же таблицы записей, которую читает список, и человек,
|
||||
загрузивший запись и листающий свой архив, — штатный сценарий. Номер страницы
|
||||
сдвинул бы окно на единицу: последний элемент первой страницы пришёл бы вторым
|
||||
разом первым элементом второй, а один элемент между ними не пришёл бы никогда.
|
||||
Отказ молчаливый — ни кода, ни строки в журнале, — и человек видел бы архив, в
|
||||
котором записи нет.»
|
||||
|
||||
Ключ полный: у записей, принятых одним запросом, время совпадает, и порядок
|
||||
между ними одним лишь временем не определён.
|
||||
|
||||
## Последствия
|
||||
|
||||
- `+` запись, заведённая между двумя страницами, не даёт ни повтора, ни
|
||||
пропуска;
|
||||
- `+` порядок между записями с равным временем устойчив;
|
||||
- `−` экран с нумерацией страниц так не сделать — листать можно только
|
||||
«дальше». Архиву это не нужно;
|
||||
- `−` ключ приходит от клиента и потому разбирается: время приводится к виду
|
||||
хранилища, иначе побайтовое сравнение молча обращает условие в постоянную
|
||||
истину или ложь.
|
||||
Reference in New Issue
Block a user