feat(generator): вариант A/B-теста в ParsedParamsKey1 #47
Notifications
Due Date
No due date set.
Blocks
#9 Этап 7: эталонный мир — пересборка и чек-скрипты
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#47
Reference in New Issue
Block a user
Зачем
Колонка
ParsedParamsKey1входит в контракт выгрузки (мастер-спека, раздел1.2), но генератор её не заполняет: в каждой строке пустой массив. Мастер-спека
сама называет естественное наполнение — вариант A/B-теста. Пока колонка пуста,
она ничему не учит; с вариантом появляется обычная аналитическая работа:
сравнить конверсию вариантов и решить, есть ли разница на самом деле.
Тикет заведён при исполнении #39 и в работу тогда не брался: вариант — это
константа куки, то есть третий массив паспорта в плане состава, а такой работы
ни одно задание не просило.
Что сделать
городом: человек не должен перескакивать между вариантами от визита к визиту.
world.py, не литерал в логике.ParsedParamsKey1каждой строки.сдвинулись, — проверяется прогоном счётчиков плана до и после, не на глазок.
Что решить в самом тикете
какого-то дня.
теста, но вариант приписывается куке. Если паре выпадут разные варианты,
человек окажется в обоих сразу — в жизни это настоящая беда A/B-тестов, и
чинит её как раз склейка личности, на которой стоит лаба пар. Оба ответа
осмысленны: одинаковый вариант у пары — чистый тест, разный — материал для
лабы. Выбор владельца, решение записать в спеку.
Критерии приёмки
ParsedParamsKey1заполнен во всех строках выгрузки, тип контракта неменялся.
тестом.
world.pyс пояснением, тест сторожит связку.аудитории, число посетителей за 14 дней, число пар.
make lint,make typecheck,make testзелены.Сначала прочитать
docs/specs/2026-07-30-stand-v2-realism.md, раздел 1.2 — контракт колонок.docs/specs/2026-08-01-generator.md, разделы 2 и 9 — дисциплина случайностии решения, принятые по ходу.
generator/src/clickstream_generator/plan.py— паспорт куки: как в #39приписаны профиль устройства и город.
generator/src/clickstream_generator/day.py— где колонка заполняется.Границы
тикет даёт данные, а не анализ.
Key2..10не заводятся: контракт берёт один уровень параметров.