Size: a a a

2020 May 13

SP

Sergey Protko in PHP
ну мол... агрегат подразумевает последовательную обработку действий, а значит если у нас 101 метод такая система будет хоть как-то работать если агрегат приватный и принадлежит ровно одному человеку/системе и вероятность конкрентного доступа стримится к нулю.
источник

SP

Sergey Protko in PHP
ну и в целом 101 метод подразумевает целую кучу операций, и обычно прям такого пересечения стэйта что прям все операции зависят от этого стэйта это прям... удивительно
источник

A

Aleksandr Khristenko in PHP
Sergey Protko
101 метод у корня агрегата это что-то пошло не так
Если под одну сущность нужно делать 101 сервис то тоже что-то пошло не так.
Я вообще это к тому, что за инвариантами один фиг надо будет следить, что в том что в другом случае.
источник

SP

Sergey Protko in PHP
но не все инварианты требуют имидиейт консистентности)
источник

SP

Sergey Protko in PHP
люди просто привыкли что "вот ту ебну FK, тут констрейнт в базе настрою и все валидно"
источник

SP

Sergey Protko in PHP
иногда какие-то "важные инварианты" не такие уж и важные и могут нарушаться временно
источник

SP

Sergey Protko in PHP
главное уметь детектить конфликты и разруливать их
источник

SP

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

SP

Sergey Protko in PHP
ну или если там у бизнеса не вася пупкин а отделы на 100 человек которые между собой договориться не могут - тут да, тут тоже стоит заморочиться
источник

A

Aleksandr Khristenko in PHP
Ладно, ты видимо не понял, что я пытался сказать.
источник

ЕР

Евгений Ромашкан... in PHP
Aleksandr Khristenko
Если под одну сущность нужно делать 101 сервис то тоже что-то пошло не так.
Я вообще это к тому, что за инвариантами один фиг надо будет следить, что в том что в другом случае.
Смотреть одну сущность проще чем много сервисов
источник

ЕР

Евгений Ромашкан... in PHP
Но дробить нужно, конечно
источник

M

Maxim Kainov in PHP
Sergey Protko
кейс не оч понятный. Ты просишь модельку "сделай кой чего, только не делай... dry run типа"... ощущение что ты модельку на запись юзаешь и на чтение для каких-то мерзских своих задумок.  Аля какой-то оч сложный и непонятный способ что-то проверить без каких-либо гарантий.

Словом, проблема с тем что это "не невозможно", это попросту не нужно. Вот этот флаг "dry run" не про то что бы не флашить, он про то что бы стэйт не менялся. А если стэйт не менялся то и от случайного флаша проблем не будет

Ну либо ты оч плохо описал свой кейс
Ну, сохранять невалидную сущность тоже не нужно. Но тут пишут, что ее можно случайно сохранить, никто от ошибок не застрахован. Здесь так же могут случайно реализовать свои мерзкие задумки )
источник

ЕР

Евгений Ромашкан... in PHP
Maxim Kainov
Ну обычно ты всегда знаешь провалидировал ты ее или нет, и не будешь намеренно совершать ошибку.
Если у меня есть куча сервисов меняюших поля одной сущности, я практически никогда не знаю, валидная она или нет)
источник

ЕР

Евгений Ромашкан... in PHP
Maxim Kainov
От этого спасет. Но если кто-то пытается присваивать сущности всякую ерунду и сохранять ее не валидируя, то этот человек явно не понимает что он делает, и очевидно может начудить в каком-нибудь другом месте. То есть, проблема в непонимании. И постоянными ограничениями ее не решить.
Ты не можешь взяв только сущность провалидировать переход состояния
источник

M

Maxim Kainov in PHP
Евгений Ромашкан
Если у меня есть куча сервисов меняюших поля одной сущности, я практически никогда не знаю, валидная она или нет)
Не делай сервисы, меняющие одно и то же поле )
источник

M

Maxim Kainov in PHP
Евгений Ромашкан
Ты не можешь взяв только сущность провалидировать переход состояния
Ну а толку делать сущность всегда валидной, если ты ее можешь сохранить невалидно )
источник

ЕР

Евгений Ромашкан... in PHP
Maxim Kainov
Ну а толку делать сущность всегда валидной, если ты ее можешь сохранить невалидно )
А кто помешает сохранить невалидно?
источник

ЕР

Евгений Ромашкан... in PHP
Maxim Kainov
Не делай сервисы, меняющие одно и то же поле )
Так ты же привел кейс когда у тебя множество действий над одной сущностью, если поля разные, то почему сущность одна?
источник

M

Maxim Kainov in PHP
Евгений Ромашкан
А кто помешает сохранить невалидно?
Никто не помешает )
источник