diff --git a/docs/specs/2026-08-01-generator.md b/docs/specs/2026-08-01-generator.md index b874ab4..913817d 100644 --- a/docs/specs/2026-08-01-generator.md +++ b/docs/specs/2026-08-01-generator.md @@ -25,6 +25,32 @@ касается этапа 7 — расширение подтверждено владельцем в резолюции «Производительности». +## Чем меряется генератор + +Рамка владельца, по которой принимались решения ниже. Она шире этапа 2 и +живёт дальше него: спеки следующих этапов ссылаются сюда, а не переписывают. + +- **Генератор меряется тем, что приезжает на выход, а не устройством + внутри.** Он играет два источника с разными темпами: поток Метрики и + ночную выгрузку бэкенда магазина. Любое внутреннее решение отвечает перед + одним вопросом — правдоподобны ли данные на выходе. +- **Менти внутрь не смотрит.** Он видит внешние эффекты и по ним составляет + представление, как работает магазин и обо что там спотыкаются. Значит, + конструкция внутри оправдана только наблюдаемым эффектом: без него это + сложность, за которую никто не заплатил. +- **Повторимы должны быть эффекты, а не конкретные числа.** Правка свойств + мира сдвигает почти все числа разом — генератор случайных чисел выдаёт + другую последовательность. Опираться на конкретные числа поэтому нечем. + Хеши описи обещают не постоянство чисел, а то, что их сдвиг не пройдёт + молча: пересобрал опись — увидел diff. +- **Цена ошибки здесь мала.** В худшем случае испорчен урок, и чинится он + правкой генератора после взгляда на получившиеся распределения. Оборона, + которая дороже ошибки, не заводится. +- **Сложность изолирована нарочно.** Генератор вынесен отдельной службой, + чтобы его сложность не расползалась по стенду. Плата за изоляцию — + дешевизна правки: выбирается устройство, которое дёшево менять, а не то, + которое всё предусмотрело. + ## Целевая картина одним взглядом - **Мир — функция, не состояние.** Состав мира — чистая функция зерна;