Size: a a a

2020 May 23

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Пишет
Ни разу не видел в живой природе
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
@DogeShibu а в case class чем отличается так обычного что он именно в качестве рекорда то? Ну что там - обычный нельзя разбить на шаблоне?
Тем, что он генерит структурные equals, hashCode, copy, apply и unapply
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Ни разу не видел в живой природе
Ну хз. Места разные. Ну да. Игры. Все в оперативной памяти и огромные разветвлённые сущности. С БД если не моего оно по сложнее будет
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Тем, что он генерит структурные equals, hashCode, copy, apply и unapply
Это, а можно для неё в конструкторе проанализировать данные или по торадиции анемичной модели - делаем валидатор?
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Ну хз. Места разные. Ну да. Игры. Все в оперативной памяти и огромные разветвлённые сущности. С БД если не моего оно по сложнее будет
Я просто был свидетелем переписывания проекта с богатой модели на анемичную.

Результат был очень хорош, стало куда более оптимизируемо, ощутимо более расширяемо (вся логика в сервисах, которые элементарно подменить) и тестируемого.
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Тем, что он генерит структурные equals, hashCode, copy, apply и unapply
Блин, может мне везло. Я с первого места работы в Мск там попал что было DDD во все поля. Хотя и ленивое. Классы были тупо одни для EF и для логики. С плоскими геттерами и сеттерами НО блять максимально вся связанная с сущностью логика была в них вписана
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Это, а можно для неё в конструкторе проанализировать данные или по торадиции анемичной модели - делаем валидатор?
Можно сделать тупо функцию, которая будет возвращать ValidationNel[MyEntity, MyError]
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Я просто был свидетелем переписывания проекта с богатой модели на анемичную.

Результат был очень хорош, стало куда более оптимизируемо, ощутимо более расширяемо (вся логика в сервисах, которые элементарно подменить) и тестируемого.
Ну такое. Так блин - а разницы ты в сервис передал сущность как параметре или ее в ее собственны метод кинул как self? Массовая работа с коллекциями агрегатов один фиг в ApplucationServices и DomainServices
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Можно сделать тупо функцию, которая будет возвращать ValidationNel[MyEntity, MyError]
А бросать ошибки как в C# можно или это считаться не по ФП?
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Ну такое. Так блин - а разницы ты в сервис передал сущность как параметре или ее в ее собственны метод кинул как self? Массовая работа с коллекциями агрегатов один фиг в ApplucationServices и DomainServices
Тем что в среднем проекте на сущности всё равно особой логики нет, кроме той, что нужно совать в DomainServices
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
А бросать ошибки как в C# можно или это считаться не по ФП?
Бизнесовые ошибки лучше так не бросать, не принято
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Тем что в среднем проекте на сущности всё равно особой логики нет, кроме той, что нужно совать в DomainServices
Хм. Может поэтому меня особо ФП и не впечатляет потому что я и на ооп умею писать и работал с таким кодом где средняя сущность хренову тучу логики и методов имеет (не как c# string конечно у которого их емнип 38) и прям богатая модель расцветала. Понятно дело если Круд то ничего особенного и не запихнёшь в сущность.
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Хм. Может поэтому меня особо ФП и не впечатляет потому что я и на ооп умею писать и работал с таким кодом где средняя сущность хренову тучу логики и методов имеет (не как c# string конечно у которого их емнип 38) и прям богатая модель расцветала. Понятно дело если Круд то ничего особенного и не запихнёшь в сущность.
Тут особенность не в том, что круд, а в том, что всё действия требуют работу с бд и внешними системами
источник

DS

Doge Shibu in rust_offtopic
Т.е. сейчас в расте у меня достаточно богатая модель выходит
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Тут особенность не в том, что круд, а в том, что всё действия требуют работу с бд и внешними системами
Ну с внешними это тот же Круд. Таскание данных по TCP
источник

DS

Doge Shibu in rust_offtopic
Т.к. необходимости в таком взаимодействии с бд особо нет
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Ну с внешними это тот же Круд. Таскание данных по TCP
Слишком сложная логика для круда
источник

VS

Victor Sapiens in rust_offtopic
Doge Shibu
Слишком сложная логика для круда
Хз. У меня тут тоже сейчас обращение к внешней системе делаю. У меня тут  2 сущности и то там Хренова туча логики в них. Во первых себя валидирую так что от пользователя и так что от внешней системы. Во вторых консолидируют данные друг друга чтобы определить все ли ок а если не ок то что не так. Там с криптографией связано да. Модель багатая во все поля
источник

VS

Victor Sapiens in rust_offtopic
Ну и игры люблю за то что там модель всегда веселая во все поля.
источник

DS

Doge Shibu in rust_offtopic
Victor Sapiens
Хз. У меня тут тоже сейчас обращение к внешней системе делаю. У меня тут  2 сущности и то там Хренова туча логики в них. Во первых себя валидирую так что от пользователя и так что от внешней системы. Во вторых консолидируют данные друг друга чтобы определить все ли ок а если не ок то что не так. Там с криптографией связано да. Модель багатая во все поля
Ну разница в том, что там надо было делать всё что можно именно на аггрегатах и массовых запросах, иначе всё умирало.

Поэтому и так вся логика была бы в итоге в доменных сервисах.
источник