Compare commits
2
Commits
f51048dd23
...
34267e8494
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34267e8494 | ||
|
|
c656ca198f |
+14
@@ -34,6 +34,20 @@ _Избегать_: состояние мира
|
|||||||
Люди, впервые пришедшие в мир в один день, со всеми их куками и днями
|
Люди, впервые пришедшие в мир в один день, со всеми их куками и днями
|
||||||
активности. Единица плана состава: когорта — функция зерна и номера дня.
|
активности. Единица плана состава: когорта — функция зерна и номера дня.
|
||||||
|
|
||||||
|
**Человек**:
|
||||||
|
Устойчивая личность в составе мира, которой принадлежат одна или две куки.
|
||||||
|
Не поле источника: кликстрим видит куку, а заказ — пользователя магазина.
|
||||||
|
|
||||||
|
**Посетитель**:
|
||||||
|
Кука, наблюдаемая в кликстриме и обозначенная `ClientID`; единица
|
||||||
|
`uniq(ClientID)`. Один человек может быть представлен несколькими посетителями.
|
||||||
|
_Избегать_: «посетитель» про человека после склейки
|
||||||
|
|
||||||
|
**Пользователь магазина**:
|
||||||
|
Представление человека со стороны заказов; в записи заказа обозначается
|
||||||
|
`user_id`. Через заказы связывает разные куки человека, в кликстрим напрямую
|
||||||
|
не попадает.
|
||||||
|
|
||||||
**Приток**:
|
**Приток**:
|
||||||
Появление новых кук на всём протяжении оси модельного времени; единица —
|
Появление новых кук на всём протяжении оси модельного времени; единица —
|
||||||
кука (`ClientID`). Из-за притока накопленная аудитория растёт с
|
кука (`ClientID`). Из-за притока накопленная аудитория растёт с
|
||||||
|
|||||||
@@ -25,6 +25,32 @@
|
|||||||
касается этапа 7 — расширение подтверждено владельцем в резолюции
|
касается этапа 7 — расширение подтверждено владельцем в резолюции
|
||||||
«Производительности».
|
«Производительности».
|
||||||
|
|
||||||
|
## Чем меряется генератор
|
||||||
|
|
||||||
|
Рамка владельца, по которой принимались решения ниже. Она шире этапа 2 и
|
||||||
|
живёт дальше него: спеки следующих этапов ссылаются сюда, а не переписывают.
|
||||||
|
|
||||||
|
- **Генератор меряется тем, что приезжает на выход, а не устройством
|
||||||
|
внутри.** Он играет два источника с разными темпами: поток Метрики и
|
||||||
|
ночную выгрузку бэкенда магазина. Любое внутреннее решение отвечает перед
|
||||||
|
одним вопросом — правдоподобны ли данные на выходе.
|
||||||
|
- **Менти внутрь не смотрит.** Он видит внешние эффекты и по ним составляет
|
||||||
|
представление, как работает магазин и обо что там спотыкаются. Значит,
|
||||||
|
конструкция внутри оправдана только наблюдаемым эффектом: без него это
|
||||||
|
сложность, за которую никто не заплатил.
|
||||||
|
- **Повторимы должны быть эффекты, а не конкретные числа.** Правка свойств
|
||||||
|
мира сдвигает почти все числа разом — генератор случайных чисел выдаёт
|
||||||
|
другую последовательность. Опираться на конкретные числа поэтому нечем.
|
||||||
|
Хеши описи обещают не постоянство чисел, а то, что их сдвиг не пройдёт
|
||||||
|
молча: пересобрал опись — увидел diff.
|
||||||
|
- **Цена ошибки здесь мала.** В худшем случае испорчен урок, и чинится он
|
||||||
|
правкой генератора после взгляда на получившиеся распределения. Оборона,
|
||||||
|
которая дороже ошибки, не заводится.
|
||||||
|
- **Сложность изолирована нарочно.** Генератор вынесен отдельной службой,
|
||||||
|
чтобы его сложность не расползалась по стенду. Плата за изоляцию —
|
||||||
|
дешевизна правки: выбирается устройство, которое дёшево менять, а не то,
|
||||||
|
которое всё предусмотрело.
|
||||||
|
|
||||||
## Целевая картина одним взглядом
|
## Целевая картина одним взглядом
|
||||||
|
|
||||||
- **Мир — функция, не состояние.** Состав мира — чистая функция зерна;
|
- **Мир — функция, не состояние.** Состав мира — чистая функция зерна;
|
||||||
|
|||||||
Reference in New Issue
Block a user