docs(generator): путеводитель по генератору и живой проход make demo
- Зачем:
- спека отвечает «почему», а жанра «как пройти устройство по коду»
не было (#48); черновик в generator/README.md ждал выверки.
- Что:
- новый набор docs/architecture/generator/: индекс с целевой картиной
и mermaid-схемой плюс шесть поддокументов по темам тикета.
- демо-модуль и цель make demo: канонический D0, все стадии цепочки
на одном экране; тест-сторож проверяет стадии без прибитых чисел.
- раздел «Как это работает» в generator/README.md сжат до ссылки
на путеводитель, черновая врезка снята.
- Проверка:
- из generator/: make lint, make typecheck, make test (430 passed),
make demo; два слепых ревью и узкая перепроверка — находки закрыты.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
33aef73d0e
commit
0c466c082e
11 files changed
+392
-26
No files matched your search
@@ -0,0 +1,55 @@
|
||||
# Генератор кликстрима
|
||||
|
||||
Путеводитель показывает, как пройти генератор от корневого зерна до двух
|
||||
выходов дня, не пересказывая код и спеки.
|
||||
|
||||
## Целевая картина одним взглядом
|
||||
|
||||
- **Подпоток определяется местом в дереве, а мир внутри подпотока — порядком
|
||||
бросков** — [дерево зерен и порядок бросков](seeds.md).
|
||||
- **Мир поднимает только когорты окна, нужные запрошенному дню** —
|
||||
[ленивость мира](lazy-world.md).
|
||||
- **Устройство и город принадлежат куке на всю жизнь и потому решаются
|
||||
планом состава** — [паспорт куки](cookie-passport.md).
|
||||
- **Выбор по весам сведен к целым броскам и арифметике интервалов** —
|
||||
[целочисленная случайность](randomness.md).
|
||||
- **Торговля получает готовые строки страниц и возвращает поток событий
|
||||
вместе с покупками для бэкенда** — [шов торговых событий](commerce-seam.md).
|
||||
- **Сутки принадлежат поясу счетчика, а `UTCEventTime` остается абсолютной
|
||||
меткой** — [время модельного дня](counter-time.md).
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
seed["Корневое зерно"] --> streams["Подпотоки"]
|
||||
streams --> cohorts["Когорты"]
|
||||
cohorts --> audience["Аудитория дня"]
|
||||
audience --> visits["Визиты"]
|
||||
visits --> output["Выход day.stream"]
|
||||
output --> events["Поток событий"]
|
||||
output --> backend["Заказы дня<br/>orders.of_day"]
|
||||
```
|
||||
|
||||
За правой ветвью начинается отдельный набор документов —
|
||||
[устройство заказов](../orders/README.md).
|
||||
|
||||
## Живой проход
|
||||
|
||||
Из каталога `generator/` одна команда собирает канонический D0 и показывает
|
||||
все стадии на одном экране:
|
||||
|
||||
```sh
|
||||
make demo
|
||||
```
|
||||
|
||||
Когорту и аудиторию пример получает через открытый интерфейс плана, а визиты
|
||||
считает группировкой выходных строк по `VisitID`. Код прохода —
|
||||
[`demo.main`](../../../generator/src/clickstream_generator/demo.py).
|
||||
|
||||
## Родословная
|
||||
|
||||
Устройство генератора и основания решений записаны в [спеке этапа
|
||||
2](../../specs/2026-08-01-generator.md), а границы двух источников и склейки —
|
||||
в [мастер-спеке стенда](../../specs/2026-07-30-stand-v2-realism.md).
|
||||
Путеводитель появился по тикету
|
||||
[#48](https://git.dementev.space/ddmitry/clickstream-data-platform/issues/48):
|
||||
он отвечает на другой вопрос — как пройти принятое устройство по коду.
|
||||
Reference in new issue
Block a user