Size: a a a

2021 April 01

ПГ

Павел Г. in symfony
Chiki Briki
ну 6 стат конструкторов это такое себе, рыли
Ну 6 конструкторов - это это 6 кейсов, что уже возможно странно для обычного использования агрегата, который опять таки должен по хорошему быть маленьким из-за высокой декомпозиции. Т.е. это скорее редкий кейс чем регулярный
источник

SP

Sergey Protko in symfony
Павел Г.
Ну 6 конструкторов - это это 6 кейсов, что уже возможно странно для обычного использования агрегата, который опять таки должен по хорошему быть маленьким из-за высокой декомпозиции. Т.е. это скорее редкий кейс чем регулярный
ну и да - статический конструктор это те же фабрики. я активно их юзаю, но в целом для сущностей есть еще правило "Don't create aggregate roots".
источник

VS

Vlad Sobenko in symfony
Sergey Protko
ну и да - статический конструктор это те же фабрики. я активно их юзаю, но в целом для сущностей есть еще правило "Don't create aggregate roots".
Для этого правила наверное нужно сначало хорошо всё подробить и избавиться от примитивов.
источник

SP

Sergey Protko in symfony
Vlad Sobenko
Для этого правила наверное нужно сначало хорошо всё подробить и избавиться от примитивов.
по сути это все к вопросу как и откуда у тебя данные появляются и ходят. Так что это скорее способ это сделать.
источник

SP

Sergey Protko in symfony
модель данных важна с точки зрения че куда идет а не "структура табличек"
источник

VS

Vlad Sobenko in symfony
Sergey Protko
по сути это все к вопросу как и откуда у тебя данные появляются и ходят. Так что это скорее способ это сделать.
Это же касается примитивов. Если у людей данные ходят в примитивах до момента создания агрегата, то не получится.
источник

VS

Vlad Sobenko in symfony
Можно:
requestParams -> User
А можно
requestParams -> RequestObject -> Visitor -> User
источник

A

Arky in symfony
Привет. Подскажите пожалуйста. Нужно переименовать поле сущности если оно уже есть в бд(типа добавить что-нибудь в конец строки) перед сохранением. Это сделать в отдельном сервисе, или просто помечать сущность что поле не уникально и сущность уже внутри разруливает?
источник

КГ

Константин Грачев... in symfony
Sergey Protko
фабрики, которые берут на себя начало жизненного цикла для сущностей или DTO, пересмотр что есть валидация данных а что инварианты (например тот факт что у тебя email должен быть валиден - валидация ДО сохранения тут бесполезна - тут надо ловить фэйлы констрейнтов в базе уже после сохранения).

Есть такое достаточно простое правило - конструкторам не желательно кидать исключения. Потому тебе нужны фабрики и билдеры. Причем другие сущности вполне могут быть этими фабриками или билдерами. Не надо зацикливаться что фабрика это "сервис с суфиксом Factory"
> например тот факт что у тебя email должен быть валиден - валидация ДО сохранения тут бесполезна

Имелось ввиду уникальный?
источник

SP

Sergey Protko in symfony
Константин Грачев
> например тот факт что у тебя email должен быть валиден - валидация ДО сохранения тут бесполезна

Имелось ввиду уникальный?
да
источник

SP

Sergey Protko in symfony
Vlad Sobenko
Это же касается примитивов. Если у людей данные ходят в примитивах до момента создания агрегата, то не получится.
ну логично что не получится) это вообще уже чуть дальше вопросы. Опять же - Whole Value и прочее.... это сложно и этому надо учиться.
источник

SP

Sergey Protko in symfony
Arky
Привет. Подскажите пожалуйста. Нужно переименовать поле сущности если оно уже есть в бд(типа добавить что-нибудь в конец строки) перед сохранением. Это сделать в отдельном сервисе, или просто помечать сущность что поле не уникально и сущность уже внутри разруливает?
сущность про уникальность вещей в других сущностях знать ничего не может. Потому тебе нужно что-то снаружи что будет задавать эту политику в случае конфликта
источник

A

Arky in symfony
Sergey Protko
сущность про уникальность вещей в других сущностях знать ничего не может. Потому тебе нужно что-то снаружи что будет задавать эту политику в случае конфликта
Понятно, спасибо)
источник

ПГ

Павел Г. in symfony
Sergey Protko
сущность про уникальность вещей в других сущностях знать ничего не может. Потому тебе нужно что-то снаружи что будет задавать эту политику в случае конфликта
Ну тут есть вариант, что именно в сущности будет генериться логика создания "уникальной" строки. Т.е. вышибает констрейнт, ловим, в сущности вызываем метод генерации строки, она что-то там добавляет. Ретрай и так по кругу. Ну чтобы сеттер на поле не городить. Или плохая идея ?
источник

CV

CoooLler Vent in symfony
Павел Г.
Ну тут есть вариант, что именно в сущности будет генериться логика создания "уникальной" строки. Т.е. вышибает констрейнт, ловим, в сущности вызываем метод генерации строки, она что-то там добавляет. Ретрай и так по кругу. Ну чтобы сеттер на поле не городить. Или плохая идея ?
И в один "прекрасный" момент это "по кругу" зациклится... Если что-то может пойти не так, оно обязательно так пойдет))
источник

ПГ

Павел Г. in symfony
CoooLler Vent
И в один "прекрасный" момент это "по кругу" зациклится... Если что-то может пойти не так, оно обязательно так пойдет))
Ну ретрай ограниченный
источник

SP

Sergey Protko in symfony
Павел Г.
Ну тут есть вариант, что именно в сущности будет генериться логика создания "уникальной" строки. Т.е. вышибает констрейнт, ловим, в сущности вызываем метод генерации строки, она что-то там добавляет. Ретрай и так по кругу. Ну чтобы сеттер на поле не городить. Или плохая идея ?
очень маловероятно просто потому что внутри сущности у тебя нет возможности проверить уникальность. Скорее всего упущена какая-то стадия в пайплайне обработки данных
источник

CV

CoooLler Vent in symfony
Павел Г.
Ну ретрай ограниченный
уперлись в ограничитель, уникальность не нашли, что делаем?)
источник

ПГ

Павел Г. in symfony
CoooLler Vent
уперлись в ограничитель, уникальность не нашли, что делаем?)
Ошибочка)
источник

CV

CoooLler Vent in symfony
Павел Г.
Ошибочка)
Ага) Так что лучше так не делать) и придумать заранее и проверяльщик внешний и заранее точную стратегию добавления уникального)
источник