Найдено 47 результатов

glagola
2017.06.11, 14:52
Форум: Архитектура, дизайн, ООП
Тема: Использование в Entity Repository или Domain service
Ответы: 11
Просмотры: 6926

Re: Использование в Entity Repository или Domain service

Лично я считаю, что это абсолютно правильно - инжектить разные объекты через конструктор в сущность, хотя многие с этим не согласятся. Тогда тот кто создает ваши сущности начинает, либо зависеть от инфраструктуры (от используемого DI контейнера), либо выступает в роли Proxy класса, импортируя завис...
glagola
2017.06.11, 14:35
Форум: Архитектура, дизайн, ООП
Тема: Слоение очередей
Ответы: 5
Просмотры: 3446

Re: Слоение очередей

Я реализую это через Domain Event'ы - ну т.е. в инфраструктурном слое есть слушатели событий, которые могут, либо выполнять действия сразу, либо помещать задание в очередь (в зависимости от того что требуется - выполнить в рамках одной транзакции или нет). Что касается транзакционности - у меня по ф...
glagola
2017.06.08, 14:14
Форум: Архитектура, дизайн, ООП
Тема: Как правильно связывать bounding context'ы?
Ответы: 2
Просмотры: 2446

Re: Как правильно связывать bounding context'ы?

[*] Где осуществялется подписка на событие? В инфраструктурном слое приложения? Да. Например, контроллеры это инфраструктура (ui). Подписчик тоже будет инфраструктурой, через которую сообщения попадают в домен. [*] Что должен вызывать обработчик события в другом контексте? Application сервис или мо...
glagola
2017.06.02, 18:54
Форум: Архитектура, дизайн, ООП
Тема: Как правильно связывать bounding context'ы?
Ответы: 2
Просмотры: 2446

Как правильно связывать bounding context'ы?

Всем привет! Каждый из bounding context'ов генерирует определенный набор событий, чтобы корректно связать несколько контекстов, нужно подписаться на событие определенного контекста и вызвать в другом контексте какое-то действие. Возникают вопросы: Где осуществялется подписка на событие? В инфраструк...
glagola
2017.06.01, 16:35
Форум: Архитектура, дизайн, ООП
Тема: Статистика по DDD
Ответы: 6
Просмотры: 3656

Re: Статистика по DDD

Вот так делать не надо. Это просто целочисленный счетчик просмотров, никто не борется с накрутками и не обеспечивается проверка уникальности. К тому же, есть и другой софт, который использует эту БД, так что я не могу ее менять. Есть только надежда что в обозримом будущем возьмусь и за него, тогда ...
glagola
2017.06.01, 13:29
Форум: Архитектура, дизайн, ООП
Тема: Статистика по DDD
Ответы: 6
Просмотры: 3656

Re: Статистика по DDD

Я бы тоже реализовал как отдельный контекст и, наверное, даже не проверял бы, есть ли сейчас объявление или нет. У меня тоже была такая мысль, но проблема в том, что новая версия сайта строится поверх уже существующей инфраструктуры (и в том числе БД), и складывать статистику приходится в таблицу с...
glagola
2017.06.01, 13:22
Форум: Архитектура, дизайн, ООП
Тема: Статистика по DDD
Ответы: 6
Просмотры: 3656

Re: Статистика по DDD

Спасибо за ответы! Владелец бизнеса делает данную статистику не для себя, а для пользователей сайта. Любая статистика это агрегации - и тут чистая реляционка пошла. В DDD все по объектам. Да, я храню статистику в реляционной БД. В DDD все по объектам. При запросе агрегирую собранную статистику и воз...
glagola
2017.05.29, 23:24
Форум: Архитектура, дизайн, ООП
Тема: Статистика по DDD
Ответы: 6
Просмотры: 3656

Статистика по DDD

Всем привет! Впал в ступор, нужно организовать сбор статистики по объявлениям на сайте, пока считаем 2 показателя: кол-во показов индивидуальной страницы объявления кол-во авторизованных пользователей, проявивших интерес к данному объявлению Вопрос в том как это сделать, как часть Агрегата объявлени...
glagola
2017.04.21, 14:38
Форум: Архитектура, дизайн, ООП
Тема: Domain exception mapping
Ответы: 6
Просмотры: 3457

Re: Domain exception mapping

Вообщем, вот к чему я пришел. Переопределяем компонент errorHandler return [ ... 'components' => [ ... 'errorHandler' => [ 'class' => ErrorHandler::class, 'errorAction' => 'site/error', ], ... ], ... ]; Ну и сам класс ErrorHandler: class ErrorHandler extends \yii\web\ErrorHandler { protected functio...
glagola
2017.04.21, 12:26
Форум: Архитектура, дизайн, ООП
Тема: Domain exception mapping
Ответы: 6
Просмотры: 3457

Re: Domain exception mapping

anton_z писал(а): 2017.04.21, 02:33 Но это будет типа GoD класс, знающий обо всех исключения домена.
Согласен, не лучший вариант, поэтому я все-же придерживаюсь, что смапить исключения нужно на территории инфраструктуры. Продолжаю искать варианты.
glagola
2017.04.20, 23:52
Форум: Архитектура, дизайн, ООП
Тема: Domain exception mapping
Ответы: 6
Просмотры: 3457

Re: Domain exception mapping

Я немного не об этом (хотя спасибо за идею, пригодится). Меня интересует место, где бы можно было расположить маппинг из примера, чтобы с его помощью мапить все исключения во всех контроллерах/экшенах приложения написанного на Yii.
glagola
2017.04.20, 23:36
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

А кто какой DI контейнер использует в проектах на Yii? и как вы его интегрируете c Yii (если используете сторонний)?
glagola
2017.04.20, 23:33
Форум: Архитектура, дизайн, ООП
Тема: Domain exception mapping
Ответы: 6
Просмотры: 3457

Domain exception mapping

Всем привет, у меня из контроллера в контроллер кочует код маппинга исключений домена на исключения Yii. Пример: try { // domain call // ... } catch (UserNotFoundException $e) { throw new ServerErrorHttpException; } catch (AdvertisementNotFound $e) { throw new NotFoundHttpException; } catch (OnlyOwn...
glagola
2017.04.19, 15:38
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

Небольшой пример реализации вышеописанного примера с PHP-DI : class Foo { public function __construct() { echo "Foo", PHP_EOL; } } class Bar { public function __construct(Foo $foo) { } } class Hoo { public function __construct(Foo $foo, Bar $bar) { } } $builder = new DI\ContainerBuilder();...
glagola
2017.04.19, 14:32
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

Если хочется синглтона, пропиши сервис. Не хочется - не прописывай и получай разные инстансы, что ожидаемо. Так, вот я и задавал этот вопрос выше: как часто вы сталкивались c ситуацией, что injected dependency должна создаваться с 0 каждый раз (учитывая, что среда в которой обрабатывается запрос ум...
glagola
2017.04.19, 14:10
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

Если происходит резолв класса, которого нет в контейнере, то это не должен быть синглтон. Я хочу противоположенного: Если происходит резолв класса, которого нет в контейнере, то это должен быть синглтон. Итак, вот о чем я: Если класс не был задекларирован как создаваемый по требованию в контейнере,...
glagola
2017.04.19, 13:54
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

то есть когда вы вызываете \Yii::$container->get(Hoo::class);, он автоматически резолвится БЕЗ ДОБАВЛЕНИЯ HOO в контейнер? В таком случае логично, что это не синглтон. то есть если вы явно прописали резолв класса в контейнер, то это должен быть синглтон. Если происходит резолв класса, которого нет ...
glagola
2017.04.19, 13:25
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

ну так вы пробрасываете же их в контейнер как-то? Нет, это зависимости, которые резолвятся в процессе конструирования объекта контейнером (на github'e тоже возникло недопонимание), например: class Foo { public function __construct() { // Foo will be created twice echo "Foo", PHP_EOL; } } ...
glagola
2017.04.19, 00:05
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

zelenin писал(а): 2017.04.19, 00:01 проблема же не забыть сделать синглтоном? или я не правильно вас понял?
Проблема - классов без состояния и классов, подподающих под роль синглтона, много и они постоянно меняются. Я постоянно забываю пометить их как

Код: Выделить всё

\Yii::$container->setSingleton(...)
glagola
2017.04.18, 23:59
Форум: Архитектура, дизайн, ООП
Тема: DI в DDD проектах
Ответы: 30
Просмотры: 11944

Re: DI в DDD проектах

zelenin писал(а): 2017.04.18, 23:46 ну так именно "не забыть" оно и решает. есть реестр и есть обертка, написанная один раз.
Реестр кто будет заполнять? или вы предлагаете написать скрипт, который будет искать классы без состояния и добавлять их в реестр автоматически?