@oop_ru

Страница 510 из 785
Alex
20.02.2018
13:08:46
#жизнь_говно

Roman
20.02.2018
13:08:48
Посоны, специально для вас стикерпак

Sergey
20.02.2018
13:08:49
и это тоже

Артур Евгеньевич
20.02.2018
13:09:06
сук пока читал вашу хуйню напутал события и команды

Google
Maksim
20.02.2018
13:09:26
Артур Евгеньевич
20.02.2018
13:09:35
бросай cqs) до добра не доведёт)
я только начал вникать

это ахуенно

я прям переосмысли подход к разработке

Roman
20.02.2018
13:09:53
В чем кстати разница cqs и cqrs?

Артур Евгеньевич
20.02.2018
13:10:41
т.е я понимаю что сейчас у меня может возникнуть период, когда я буду чрезмерно его использовать(типо как "ООП головного мозга" при знакомстве с паттернам) но подход очень хорош

Maksim
20.02.2018
13:11:14
что бы лишний раз не копипастить)

cqs действует на уровне методов/функций, cqrs повыше

для cqs не требуется разделение никакого. у тебя есть один интерфейс с двумя методами. Один для сайд эффектов но не возвращающий ничего и второй для чтения. То есть мы тут регламентируем ограничения для методов. Пример метода/функции которая нарушает CQS - array_pop.

CQRS это архитектурный паттерн, суть которого в том что бы разделить операции чтения и записи на уровне интерфейсов. Для записи один интерфейс и для чтения другой.

это разделение дает тебе свободу как именно будет происходить запись и чтение, будет ли это через один сторадж или несколько и т.д. свои модели чтения и т.п. Ну то есть все это уже детали реализации этих интфрейсов

Google
Артур Евгеньевич
20.02.2018
13:13:09
или я, как вариант

Maksim
20.02.2018
13:13:30
может ты dto как то не так используешь?)
ну так-то по логике вещей твоё описание ближе к правде

Bohdan
20.02.2018
13:13:45
я тоже предпочитаю в дто держать валидацию но по другой причине - они ближе к контроллеру и отдать ошибку на клиент проще

Maksim
20.02.2018
13:15:26
вот да, просто у меня дтошки всегда в валидном состоянии. Говна не возят

Артур Евгеньевич
20.02.2018
13:19:28
вот да, просто у меня дтошки всегда в валидном состоянии. Говна не возят
у меня дтошка это стетхем из фильма перевозчик - простов возит товар и не спрашивает что там. Вот в фильме он зяглянул один раз, и вон че вышло...

Alexandr
20.02.2018
13:20:59
Maksim @arturpanteleev , согласен, насчет сеттеров в вашей точке зрения больше смысла)

Sergey
20.02.2018
13:24:59
еще до мэппинга на dto

еще до того как они в контроллер попали)

Bohdan
20.02.2018
13:25:12
плюс формы плюс доп данные

Sergey
20.02.2018
13:25:54
Bohdan
20.02.2018
13:26:09
пока неидеально все будет время - возьму твои объекты и под свои нужды заделаю

Sergey
20.02.2018
13:26:31
пока неидеально все будет время - возьму твои объекты и под свои нужды заделаю
когда будешь близок к этому - напиши мне и я переделаю их что бы было удобнее. Я сейчас их не юзаю, потому нет желания заниматься

Bohdan
20.02.2018
13:27:33
да хоть расскажешь свои идеи касательно них я ещё не знаю, как конкретно применять буду

Артур Евгеньевич
20.02.2018
13:40:56
валидируй реквесты
это еще зачем?

Sergey
20.02.2018
13:41:16
это еще зачем?
правильно, не валидируй входящие данные

Google
Артур Евгеньевич
20.02.2018
13:41:25
зачем слою работающему с http протоколом что то знать о том, что имя должно быть строкой а не цифрой

Sergey
20.02.2018
13:41:38
тебе надо хорошо понимать что валидация бывает разной

есть тупая валидация которую надо делать на уровне максимально близко к входу. и есть валидация бизнес ограничений и т.д.

и это разные вещи

правила в духе "тут должна быть строка а тут число в пределах диапозона" - это как раз таки хорошо вписывается.

а твое недоумение я понимаю - когда запрос и то что приходит в бизнес лэйер 1:1 мэпится то профит не виден так уж сильно

вот только далеко не всегда оно мэпится 1:1

Артур Евгеньевич
20.02.2018
13:46:09
я тупанл, по факту также делаю в контроллере, просто там 90% проверки на непустое значение обязательных полей у меня

да понял

Roman
20.02.2018
13:49:42
Sergey
20.02.2018
13:50:58
где-то это входящие данные а где-то бизнес ограничения. Чаще всего бизнесу плевать на максимальное количество символов в имени например

Roman
20.02.2018
13:51:12
Всякие мамкины кулхацкеры, осилившие в установку Kali напихают тебе туда бог весть знает чего.

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

Артур Евгеньевич
20.02.2018
13:52:29
ну так я предлагаю ДО контроллера это делать)
так у меня контроллер самый низкий слой...то есть я в нем обрабатываю $_POST из которого формирую DTO и передаю в commandBus

Maksim
20.02.2018
13:53:23
у меня в реализации валидация описана в командах в виде аннотаций. дёшево и сердито

Roman
20.02.2018
13:53:25
В плане валидации лучше перебдеть, чем недобдеть. Как говорится: "Never trust user input"

Google
Sergey
20.02.2018
13:53:51
В плане валидации лучше перебдеть, чем недобдеть. Как говорится: "Never trust user input"
тут никто не агитирует за то что не надо валидировать - вопрос где это делать

Roman
20.02.2018
13:53:55
тут никто не агитирует за то что не надо валидировать - вопрос где это делать
А тут уже зависит от того что именно мы валидируем. Есть штуки, значимые для слоя сущностей, а есть штуки, значимые для инфраструктуры. Где оно имеет значение - там и валидируем.

Maksim
20.02.2018
13:55:22
у меня в реализации валидация описана в командах в виде аннотаций. дёшево и сердито
но это, очевидно, первый рубеж валидации. бизнесовые аспекты уже сильно позже идут

Sergey
20.02.2018
13:55:30
короч разберись что мы обсуждаем

Valentin
20.02.2018
18:47:20
Что-то не пойму. С 23 числа сообщений не было?))

Shmaltorhbooks
20.02.2018
18:53:52
Не посчитайте за оскорбление администрации, но я нашёл однодумцев @fesor

Admin
ERROR: S client not available

Shmaltorhbooks
20.02.2018
18:53:57


Извините, больше не буду в картинки)

Sergey
20.02.2018
18:55:56
creepy

Sergey
20.02.2018
18:59:09
лет 5 назад

Artur
20.02.2018
19:00:20
не надо в контроллере делаь сеты

но делать их надо

Sergey
20.02.2018
19:04:21
но делать их надо
ты правильно заметил что это бизнес процесс подразумевающий взаимодействие кучи сущностей

но сеттеры тут не нужны

смена паспорта - это по сути создание новой сущности

Google
Sergey
20.02.2018
19:05:02
ну и многие другие взаимодействия можно заменить с мутации через сеттеры на порождение новых сущностей и vo

но это не интуитивно потому что большая часть разработиков привыкла строить модель данных через UI

da horsie
20.02.2018
19:10:04
creepy
Скорее crepy ;)

Artur
20.02.2018
20:07:53
номер паспорта я хз меняется или нет

но есть куда более простые изменения

при смене фам у юзера точно не стоит менять айди юзера

Maksim
20.02.2018
20:09:00
это не программистам решать, как правило)

Artur
20.02.2018
20:09:22
кек

Bohdan
20.02.2018
20:09:42
ну, иногда приходится быть продукт овнером тоже

Sergey
20.02.2018
20:13:15
id юзера менять не стоит )
а ты когда паспорт меняешь у тебя айдишка меняется?)

у паспорта еще есть время пока он валидный, то есть свой цикл жизни

Artur
20.02.2018
20:15:38
всё так и ты говоришь добавю юзеру новый паспорт

но у нас нормализация реальности

у пользователя есть имя в паспорте

а есть имя пользователя

мисс/миссис

госпожа

ув.

это не обязательно отдельные сущьности

и едвали там нужен экшен. как не назови по сути будет сет

Страница 510 из 785