@symfony_php

Страница 156 из 1418
Sergey
28.03.2017
08:37:37
если слышал есть такое понетия - стоимость перевода. Это мол когда ты переводишь что-то во что-то смысл теряется немного

Boris
28.03.2017
08:37:47
Sergey
28.03.2017
08:37:55
Sergey
28.03.2017
08:38:04
DDD как раз и форсит что бы ты в коде использовал единый язык, тот язык который ты составляешь общаясь с представителями бизнес.

Google
Sergey
28.03.2017
08:38:09
ее и по ентити размазали в том числе)
короч самая главная штука в DDD - единый язык

Boris
28.03.2017
08:38:39
эт тоже было)

но это все тоже лирика имхо )

Sergey
28.03.2017
08:39:06
не, это на самом деле важно особенно на проектах где сложный домен

Boris
28.03.2017
08:39:09
кароч надо перечитать ддд книги )

вновь

Sergey
28.03.2017
08:39:12
или не сложный, но какой-то специфичный

просто у большинства DDD ассоциируется тупо со слоеными архитектурами. Что не есть правда

Boris
28.03.2017
08:40:07
кстати по гескогональной архитектуре никто не упарывался на продакшине?

а то у меня дальше просмотра лекции не пошло

Sergey
28.03.2017
09:28:01
а то у меня дальше просмотра лекции не пошло
ну тип идея простая. У тебя есть слои, в частности внутри у тебя приложенька а снаружи инфраструктура. Ну и все это между собой связано через инверсию зависимостей (порты на стороне слоя приложеньки и адаптеры к этим портам в слое инфраструктуры)

Google
Sergey
28.03.2017
09:29:15
профит - ты можешь крутить и вертеть инфраструктурой как хочешь

Aleh
28.03.2017
09:30:38
ну было немного, сча меньше
сча меньше почему?

Like
28.03.2017
09:31:57
Зачем так много умных слов?(

Sergey
28.03.2017
09:44:59
сча меньше почему?
потому что начал эксперементировать и в итоге у меня сильно смешалась инфраструктура и логика, хотя это казалось удобным

ну то есть там по мелочи

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

ну короч я там по итогу и области ответственности посмешивал

Sergey
28.03.2017
11:26:14
Всем привет, я уже как-то спрашивал, но походу суть не уловил. Объясните правильный подход к flush в доктрине. В какой момент грамотно делать flush. Вот например есть репозиторий с юзерами, там метод add. В нем делать только persist? или persist и flush?

Roman
28.03.2017
11:27:25
в репозах лучше не делать ни персист ни флаш, я так думаю

Sergey
28.03.2017
11:27:50
почему?

Roman
28.03.2017
11:27:53
ну персист еще ладно

но в идеале флаш должен быть один перед отдачей респонза

хотя подходы у всех разные, некоторые любят флашть после персиста я сторонник флаша в контроллере перед return

Sergey
28.03.2017
11:33:07
флаш нужно делать чем раньше тем лучше, т.к как только закончилась бизнес транзакция

а не собирать все в кучу

Aleh
28.03.2017
11:35:42
persist в репе норм

у вас ж стопро есть методы аля public function add

Sergey
28.03.2017
11:36:25
но в идеале флаш должен быть один перед отдачей респонза
может быть не один, если ты батч запрос хэндлиш например. Поричем по реквесту и делаешь сразу несколько бизнес транзакций

Sergey
28.03.2017
11:36:38
уже были набросы на эту тему, даже окрамиус сказал persist/flush внутри метода репоса эт ок

Sergey
28.03.2017
11:36:56
я так понимаю добавить пользователя это бизнес транзакция?)

Google
Sergey
28.03.2017
11:37:04
Roman
28.03.2017
11:37:05
да, вполне

Sergey
28.03.2017
11:37:06
без UoW

Roman
28.03.2017
11:37:13
вопрос в том где она заканчивается

Sergey
28.03.2017
11:37:32
у меня есть сервисы хэнделы которые жестко определяют границу бизнес транзакции

RegisterUserHandler например

Sergey
28.03.2017
11:37:39
чем раньше ты закроешь транзакцию, тем лучше

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

Sergey
28.03.2017
11:40:38
RegisterUserHandler внутри собирает только то что касается регистрации юзера верно? Может ли быть внутри еще бизнес транзакция?

Roman
28.03.2017
11:45:30
принимание реквеста, его обработка и сохранение в базу - это одна транзакция

Sergey
28.03.2017
11:45:55
ты не путай жизненный цикл запроса и транзакции в базу

Sergey
28.03.2017
11:47:08
иногда это больше одной бизнес транзакции

Roman
28.03.2017
11:47:41
не путаю это простой бизнес-кейс принять данные из реквеста, их обработать и сохранить

больше одной - это если надо разослать мыло с подтверждением например

это я так понимаю

Google
Sergey
28.03.2017
11:51:41
а несколько юз-кейсов за один запрос, это например импорт товаров

Boris
28.03.2017
11:57:38
а доктрина , что на 5 персистов и 1 флаш все равно шлет 5 запросов ,А не 1 балк инсерт к примеру?

Sergey
28.03.2017
11:58:23
да, 5 запросов

Sergey
28.03.2017
12:03:57
потому что bulk insert не умеют все СУБД которые хочет поддерживать доктрина

Boris
28.03.2017
12:06:31
https://github.com/stas29a/doctrine2

кто-то пробовал?

Sergey
28.03.2017
12:08:15
https://github.com/stas29a/doctrine2
он тут свой persister добавил и все

Sergey
28.03.2017
12:08:50
кто-то пробовал?
чет не хочется юзать форк доктрины для решения одной маленькой проблемки

Admin
ERROR: S client not available

Sergey
28.03.2017
12:09:05
если бы он кастомный персистер сделал и дал возможность его подменять, то было бы норм

Sergey
28.03.2017
12:11:28
кстати, а он делал реквест в доктрину? что они сказали?

Sergey
28.03.2017
18:17:12
я поковырялся в доктрине и она грустна внутри

очень грустна(

изучил как работают гидраторы и мэппинг результатов

расширять это добро боль

Sergey
28.03.2017
18:20:17
и твой пулреквест никто не примет)

Sergey
28.03.2017
18:20:32
ну я как бы пока и не собираюсь

Sergey
28.03.2017
18:20:43
я уже понял что на ближайшие пол года контрибьютить в доктрину смысла нет

Google
Sergey
28.03.2017
18:22:01
а почему?
потому что: - у них фича фриз, они хоть завтра могут выпустить доктрину 2.6 и на этом конец ветке 2x - у них только один чувак сейчас активно ее поддерживает. и то последние 2 месяца у него небыло времени - ближайшее время переписывается система метаданных доктрины, от слова полностью. И на этом завязано почти все, а потому пока это не будет сделано распаралелить разработку над третьей версией нельзя. Ну и как реультат - пока нечем помочь

принимают максимум пул реквесты с багфиксами и только если все покрыто тестами

потому многие фиксы которые мне например пипец были критичны все еще висят в открытых пул реквестах - тесты недописаны или написаны плохо

потому я юзаю свой форк доктрины)

Aleh
28.03.2017
18:25:05
воу)

Sergey
28.03.2017
18:25:58
можно помочь краудфандингом

например)

оплачивать разработку доктрины

я бы сотку кидал каждый месяц

лишь бы побыстрее пилили

p.s. интересный факт - из доктрины 3 выпилены embeddable) ну потому что во 2-ой версии они были сделаны кастылями а в третьей потом сделают нормально

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

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

из маленьких и простых ништяков например

Sergey
28.03.2017
18:28:12
да на гидраторах можно много чего делать

Sergey
28.03.2017
18:28:34
сделал так что бы ArrayHydrator сохранял структуру объектов

в целом уже этого мне хватает что бы кое какие вещи сильно упростить

но пока оч плохо тещено

а вообще у меня была безумная идея (но это я только в Мае буду пробовать) - сделать сбоку от доктрины систему вьюшек

ну мол какие-то проекции сущностей

по сути своя реализация DQL

с кодогенерацией и все такое

Страница 156 из 1418