@oop_ru

Страница 525 из 785
f4rt~
23.02.2018
18:05:08
сделай коменты через гитхаб issue

Maxim
23.02.2018
18:18:13
Вот вы критикуете, а показать ничего своего не можете в пример

Sergey
23.02.2018
18:18:29
что тебе показать, что рассказать)

Google
Sergey
23.02.2018
18:18:50
а то у меня в голове только чатики да уберы (потому что это можно сделать за разумное время)

хочу свежих идей для пет проджектов

Maksim
23.02.2018
18:27:39
Sergey
23.02.2018
18:28:04
он простой и не совсем круд

ну и я довольно часто им пользуюсь, знаю людей которые пилят похожие сервисы (и некоторые нюансы которые не на поверхности)

Artur
23.02.2018
18:29:17
ну короч можно намного более мелкие контексты выделять
я смотрю ты решил в каждый онлайн магазин завозить по ооп? )

Maksim
23.02.2018
18:29:45
ладно) почитаем что тут в качестве идей накидают) а то у меня мысли ток о платёжных агрегаторах) а убер не хочу)

Sergey
23.02.2018
18:29:52
я смотрю ты решил в каждый онлайн магазин завозить по ооп? )
"эктор модел" - это нынче хайповая штука по идее)

обмажутся всякими akka-ми со скалами и чейнят друг друга

Artur
23.02.2018
18:34:41
А если хотите полного драйва с блэкджеком и VO, то вам сюда: http://www.elisdn.ru/blog/104/domain-entities-modelling
public function getId(): EmployeeId { return $this->id; } ... $this->id = new EmployeeId( $this->getAttribute('employee_id') ); o_0

серьёзный подход

прям как выше с $item_id . $mod_id

Maxim
23.02.2018
18:36:56
что тебе показать, что рассказать)
Напиши интернет-магазин с ддд, чтоб все поняли как это - ддд Я вот не совсем пойму

Google
Sergey
23.02.2018
18:41:04
Напиши интернет-магазин с ддд, чтоб все поняли как это - ддд Я вот не совсем пойму
не выйдет. DDD не про код, а про общение с бизнесом. Если ты придумаешь как реализовать это в контексте гитхаба что бы можно было продемонстрировать вопросы бизнесу, как это влияет на принимаемые решения и т.д. - может быть)

ну то есть.... если дать посмотреть на проект где DDD и где это самое DDD оправдано - ты просто ничего не поймешь)

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

Artur
23.02.2018
18:41:58
Сергей лучше бы ты примерами крыл

ну типа так не надо. надо так

Dmitry
23.02.2018
18:42:10
ты разбирался как работает UoW в ситуации когда ты коммитишь одну сущность?
Разбирался. Будет сохранён корень, его embeddables и все cascade-связи. Это вместе и есть агрегат.

Artur
23.02.2018
18:42:21
я бы даже в избранное добавил

Sergey
23.02.2018
18:50:01
Ну вот. Это методология а не код. А то устроили срач на целые сутки из за Repository в имени класса. И какие-то "ошибки" якобы нашли.
ну у тебя там полно сомнительных решений вызванных ограничением инфраструктуры, которые выглядят как дикий трэш

возможно в контексте твоего воркшопа ты объясняешь детали

но люди потом просто приходят в твой гитхаб и офигивают

f4rt~
23.02.2018
18:50:57
"эктор модел" - это нынче хайповая штука по идее)
Только рожая женщина может понять ту боль, которую испытывает програмист отлаживая код на акторах

Sergey
23.02.2018
18:51:10
ну и опять же, есть еще нюансы с one-to-many и еще - для того что бы это работало надо явно настраивать каскады.

Только рожая женщина может понять ту боль, которую испытывает програмист отлаживая код на акторах
меня забавляет эта шутка но я пока не могу ее принять. В моем разумении все упирается в возможность упростить отладку. Как никак и роды у определенного процента проходят безболезненно)

Dmitry
23.02.2018
18:55:36
серьёзный подход
Маппинг из полей БД в VO и обратно в обработчиках afterFind и beforeSave. В чём проблема?

ну у тебя там полно сомнительных решений вызванных ограничением инфраструктуры, которые выглядят как дикий трэш
Что сомнительного в использовании любой конкретной ORM кроме Doctrine или своего DM?

Sergey
23.02.2018
19:01:30
если мы не гнушаемся делать кастыли вида $files = $this->files;$files[] = $file;$this->files[] = $files то сильно заморачиваться на тему чистоты нам не нужно. А это значит что и закрывать репозиторием AR нам не особо нужно.

и что помимо репозиториев есть другие подходы

Google
Sergey
23.02.2018
19:03:30
которые позволяют переместить кастыли описанные выше на чуть другой уровень или вообще спрятать за счет явных персистеров которые явно сохраняют весь граф

это не особо сложно но зато намного проще в отладке

ну то есть я понимаю что "волшебный бихейвер который надо руками тригернуть что бы он понял что надо сохранять" это просто и удобно

и что без этого неокрепшие умы могут и послать ибо "сложна"

но все же

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

Dmitry
23.02.2018
19:06:17
но люди потом просто приходят в твой гитхаб и офигивают
Ну вот здесь пришли "диагональщики" в незнакомый им фреймворк и офигели с криком "ААААА! Что это??? Где DM!!! Persistance Ignorance нет значит не DDD!!!"

Sergey
23.02.2018
19:06:57
Ну вот здесь пришли "диагональщики" в незнакомый им фреймворк и офигели с криком "ААААА! Что это??? Где DM!!! Persistance Ignorance нет значит не DDD!!!"
ну для меня фреймворк более-менее знаком. И нет, я таких стремных вещей на нем не делал (делел другие вещи, возможно еще более стремные, но это было давно)

по поводу persistence ignorance - ты там что-то говорил про SOLID вообще-то

при том что я не вижу что бы код его соблюдал

а если он его и соблюдает местами - то это solid ради solid без какого либо профита даже с точки зрения тестирования

потому что тебе так или иначе придется учитывать вещи в духе того же тригера бихейверов для рилейшенов

Sergey
23.02.2018
19:08:30
это чем-то схоже с подходом "а давайте мы зафлашим не UoW а конкетную сущность, наверняка человеки разобрались как это работает"

Dmitry
23.02.2018
19:08:32
Все сервисы соблюдают

Sergey
23.02.2018
19:08:45
Все сервисы соблюдают
а сущности и не должны)

p.s. сервисы не смотрел

Dmitry
23.02.2018
19:11:10
А сущности в чём именно так критично его не соблюдают? Только S из-за неразбиения на контексты?

Sergey
23.02.2018
19:12:00
явная связанность с фреймворком была заменена менее явной но более жесткой связанностью

ну короч, ты серьезно думаешь что это удобно поддерживать? если так - я просто отстану и пойду по своим делам

Google
Admin
ERROR: S client not available

Sergey
23.02.2018
19:13:44
а в прочем...

можешь и не отвечать

Sergey
23.02.2018
19:23:40
я про class EntityId
ммм... это как раз таки норм)

обычная практика в виду того что php не умеет в тайп элиасы

а как было бы красиво... type UserID = string;

Artur
23.02.2018
19:34:52
я понимаю что нормально всё абстрагировать и заимплементировать в сущьность

где-то в параллельной нормальности

Sergey
23.02.2018
19:36:38
где-то в параллельной нормальности
не, тут именно контроль типов, не более того. Я ленюсь так делать... хотя иногда хочется

Artur
23.02.2018
19:37:12
было бы норм если бы на проекте везде были бы uuid

и был класс его чекающий и вот это всё

Sergey
23.02.2018
19:37:22
ммм...

Artur
23.02.2018
19:37:38
но uuid не нужны в нашей реляционно-объектной реальности

Sergey
23.02.2018
19:37:42
чем это отличается от string?)

Artur
23.02.2018
19:37:51
да ничем

f4rt~
23.02.2018
19:37:59
схема графкл

Sergey
23.02.2018
19:38:27
да ничем
то есть если нам нужен не просто uuid а именно uuid юзера нам всеравно придется фигачить UserID

Google
Artur
23.02.2018
19:38:33
я ни разу не видел проблем из-за айди )

даже намёков

Sergey
23.02.2018
19:39:41
я ни разу не видел проблем из-за айди )
с постгрессом - проблем нет. С мускулем - есть нюансы...

Artur
23.02.2018
19:39:49
опа

имхо наоборот

но ты продолжай

Maksim
23.02.2018
19:40:23
с мускулем можно хранить юид в бинарном виде и всё ок

Sergey
23.02.2018
19:40:28
меня больше забавляет что человек который не так давно кричал что "убирать тип в подптипах грех!" на поверху вообще не волнует вопрос типов

Maksim
23.02.2018
19:40:31
не так удобно, но в целом ок

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