Anonymous
Ну не знаю. Я бы не стал в ооп передавать везде строки
Maxim Kainov
Ну не знаю. Я бы не стал в ооп передавать везде строки
Ну форма же маппит данные сразу на ентити
Eugen Su
Необходимость в дто приходит на больших проектах, когда много методов и разные констреинты на одно и тоже поле итак далее
Maxim Kainov
Сериалайзером
Eugen Su
Все к этому приходят сами
Eugen Su
А группы валидации?
Они только создадут мешанину
Eugen Su
Тетёхнешся прописывать группы и правила и все такое
Anonymous
Я не хочу чтоб на энтити сразу маппилось что-то. Я хочу принять в контроллере объект, провалидировать его, отдать в сервисный слой и там уже засунуть в транзакцию данные, и создать энтити
Maxim Kainov
Необходимость в дто приходит на больших проектах, когда много методов и разные констреинты на одно и тоже поле итак далее
Да и редко по моему такое бывает, что много разных констрейнтов. Может это от проекта зависит
Anonymous
У тебя может в одном посте придти три разных енума, куча Collection и ещё всякая гавна
Eugen Su
Вот и я говорю, есть проекты, где ты сам понимаешь необходимость в этом, частенько бывает таак, что ты это изобретаешь, а потом читаешь и такой о бля, это же дто)))
Anonymous
У даДаты в респонсе около 40 полей, каждый из которых может быть чем угодно, и все их надо валидировать перед тем, как запихнуть в твою энтити
Anonymous
Вот поэтому я не понимаю нафига формы)
Eugen Su
Формы оверхед дичайший, у меня как то совпало, что я на двух проектах занимался как раз таки их выпиливанием
Eugen Su
Например в платежках, у тебя интеграция с 200 платёжными системами, с формами это будет слегка утомительно
Anonymous
К сожалению дто это гвозди. И не все в мире молоток
Maxim Kainov
У даДаты в респонсе около 40 полей, каждый из которых может быть чем угодно, и все их надо валидировать перед тем, как запихнуть в твою энтити
Зачем их валидировать ) я несколько нужных сохраняю в поля, а остальное в джсон поле на всякий случай )
Eugen Su
))) чем ты думаешь я занимаюсь
Ахах, ну тогда ход мыслей понятен)
Anonymous
Зачем их валидировать ) я несколько нужных сохраняю в поля, а остальное в джсон поле на всякий случай )
Если у тебя все 40 залетают в энтити, значит надо строго настрого определить, что в них может быть, а что нет)
Anonymous
К сожалению дто это гвозди. И не все в мире молоток
И вот я пока не до конца понял, что придёт на замену дто
Anonymous
Че то лишнее действие какое то
У нас строгая типизация и ооп тут ващето )
Eugen Su
Че то лишнее действие какое то
У дтотю как минимум нет сеттеров и ты можешь гарантировать иммутабельность
Eugen Su
Вот какой она пришла, такой и будет, а у ентити сеттеры, которые в будущем могут прострелить ногу
Eugen Su
Тут ты гарантируешт, что до базы донесешь валидные данные и никто на них лапки не наложит
Anonymous
Слои можно интерфейсами разделить без дто
А между слоями ты данные передашь в plain value?
Anonymous
Даже не представляю как можно подстрелить здесь ногу
Мы на пыхе пишем, что угодно может выстрелить куда угодно
Eugen Su
Даже не представляю как можно подстрелить здесь ногу
Пффф изи бризи, когда у тебя данные гуляют по десятку событий, в каком то новом событии кто нибудь что нибудь неполумав засетит
Anonymous
Писали бы мы на расте - мы бы на этапе фида в ДТО уже получили бы по ебалу
Maxim Kainov
А зачем
Чтобы ногу не подстрелить )
Anonymous
Чтобы ногу не подстрелить )
Если ты не используешь все возможности своих инструментов - ты выбрал неверный инструмент)))
Anonymous
Если ты купил молоток, то забивай гвозди им, а не обухом топора
Maxim Kainov
А между слоями ты данные передашь в plain value?
Ну если ентити реализует интерфей, и через этот интерфейс маппить
Maxim Kainov
Энтити... Интерфейс....
А в чем проблема?
Anonymous
Сумимасен что??? Зачем???
Eugen Su
А если без событий?
Ну если круд, то чтобы нет) я как в начале и сказал, дто приходит когда ты в нем нуждаешься
Сергей
ДТО как очки - когда будут нужны, ты поймешь)) как то так про vuex кто то говорил
Anonymous
Я сегодня писал кастомные Command, уже ломается человеческая логика, ребята
Eugen Su
Но за фразу лютый плюс
Maxim Kainov
Ну чтобы слои отделить
Eugen Su
Просто у тебя не было кровавого энтерпрайза)
Eugen Su
Ага, кровавая)))
Eugen Su
Рекомендую окунуться на годик, многие вещи в жизни пересмотришь)
Anonymous
Ну чтобы слои отделить
Впервые слышу о таком. Я обычно все же неймспейсами и по гайдлайну разделяю
Eugen Su
На самом деле это дико холиварная тема, пушто каждый понимает слои по своему
Eugen Su
Для меня есть слой бд, слой бизнес логики и слой представления, то бишь репозитории, сервисы с хэндлерами и контролёры консюмеры
Eugen Su
И жизнь стала проще, жизнь стала веселее
Maxim Kainov
На самом деле это дико холиварная тема, пушто каждый понимает слои по своему
Ну это уровень абстракции. Чем ближе к вводу выводу, тем ниже уровень
Eugen Su
И в такой ситуации сущности нужны перед записью в бд только, я знаю что создание сущности у меня ток в одном месте и я всегда знаю куда смотреть если что то с записью пошло не так
Anonymous
У нас вот контролёры кое где тыкаются в репозиторий. В своём коде я такой хуйни допустить не могу))))
Eugen Su
Ууу эт да, выглядит диковато
Maxim Kainov
Интерфейсами не делал
Почитай https://m.habr.com/ru/company/mobileup/blog/335382/
Anonymous
Слишком андроидно
Eugen Su
Почитай https://m.habr.com/ru/company/mobileup/blog/335382/
Ну по факту тут под ентитис не аниюемичные подразумеваются
Eugen Su
То есть тут как раз таки и описано бд, бизнес логика и презентер
Anonymous
Ну вообще они и рекомендуются быть Rich
Anonymous
А не anemic
Eugen Su
Просто анемичные сущности я бы больше к слою бд отнёс
Anonymous
https://thevaluable.dev/anemic-domain-model/
Eugen Su
Не играет роли.
Ну здрасьте, у тебя сущность это просто обертлчка над колонкой и усё, а вся логика работы с ней в сервисе
Maxim Kainov
Ну по факту тут под ентитис не аниюемичные подразумеваются
Тут ентити не доктриновские имеются в виду
Eugen Su
Ну вообще они и рекомендуются быть Rich
Я на спринге зуячу рич модели и прям тащусь, но увы в нашей стране в симфони такое не пройдёт