Size: a a a

2021 October 05

АЕ

Александр Ерин... in symfony
А, это понятно, разделение на контексты, хранение нужного среза модели в своём контексте, evential consistency через шину между контекстами, это все понимаю и знаю, речь шла скорее именно про сборку состояния сущности перед тестом, или в фикстурах минимальным количеством кода
источник

SP

Sergey Protko in symfony
ну тип в фикстурах да, всякие штуки для упрощения управлением стэйтом есть, я больше про юниты говорил.
источник

ПГ

Павел Г. in symfony
Событие удар, в котором мы раскрываем данные, которые потом улетают в некий сервис перемножающий факторы. Чем это лучше геттера?
источник

SP

Sergey Protko in symfony
тем что это можно представить как пайплайн сообщений)
источник

МФ

Максим Федоров... in symfony
что такое геттер? я не совсем понимаю на терминах боя
источник

ПГ

Павел Г. in symfony
А оно нужно?
источник

МФ

Максим Федоров... in symfony
и геттер чего?
источник

ПГ

Павел Г. in symfony
Вы предлагает данные юнита (2 проперти: атака, крит) через события удар передать в некий сервис. Чем хуже эти проперти геттером отдать?
источник

МФ

Максим Федоров... in symfony
я предлагаю передать удар
источник

МФ

Максим Федоров... in symfony
и не в сервис
источник

SP

Sergey Protko in symfony
оно позволяет получить линейный поток данных который могут обрабатывать чистые функции... экто получает сообщение с данными, обрабатывает, кидает новое сообщение дальше. так куда больше гибкости и меньше связанности, меньше проблем с temporal coupling (когда ты геттером достал а там уже поменяли)
источник

ПГ

Павел Г. in symfony
Удар это событие, которое содержит атаку,крит шанс.
источник

ПГ

Павел Г. in symfony
Верно?
источник

ПГ

Павел Г. in symfony
Ну если это не интепрайз, чем не поток данных просто вызывать процедурщину друг за другом?
источник

ПГ

Павел Г. in symfony
Мы события / слушателиджолжны потом связять - это не связность ли?
источник

SP

Sergey Protko in symfony
связанность она не абсолютна. связанность выше ниже - это про вероятность изменения контрактов по сути. "нет связанности" - компоненты просто не взаимодействуют никак. твоя цель снизить вероятность каскада изменений. А еще есть момент того что стэйт в твоей системе может быть нужен в разных местах - то есть мы начинаем зависеть от времени когда стэйт в памяти появился
источник

МФ

Максим Федоров... in symfony
я просто предположил, надо подумать в каком виде
может быть просто удары бы летали туда сюда

а может и не через удары проектировать

но геттер не совсем понятно чего и куда, структура если, то зачем юнит этот нужен тогда...
как вообще механика боя считается? я не вдавался в процессы детально, предлагаю от нихх плясать

может и есть сущность  юнита, но в бою не нужно это все и нужно его воплощение в виде дамагера... надо смотреть процесс и механику боя, мы в обсуждении игнорируем это все и мыслим юнитом и как данные куда-то попадут? куда? какие данные? зачем?
источник

SP

Sergey Protko in symfony
ну то есть мы обсуждаем игрушку. когда у тебя весь стэйт в рамках одного процесса ты можешь забить. если у тебя там база и стэйт распределен по нескольким процессам, и это игра (а игра подразумевает взаимодействие) то все эти вопросы начинают чувствоваться острее
источник

SP

Sergey Protko in symfony
ну мол не так много надо что бы словить проблемы - достаточно просто иметь "базу данных" и/или необходимость скейлить твою игру больше чем на один запрос за раз.
источник

ПГ

Павел Г. in symfony
Я вот просто не пойму профита между :
$data = $unit->gatAttackData()
$damage = $atackService->calculateDamage($data);
$unit2->damage($damage)
и
$dispatcher->listen('attack', fn($event) => {
 $damage = $service->calculateDamage($event->getData());
 $unit2->damage($damage)
})
$event = $unit->attack($unitId);
$dispatcher->dispatch($event );
источник