Найдено 47 результатов
- 2017.06.11, 14:52
- Форум: Архитектура, дизайн, ООП
- Тема: Использование в Entity Repository или Domain service
- Ответы: 11
- Просмотры: 6926
Re: Использование в Entity Repository или Domain service
Лично я считаю, что это абсолютно правильно - инжектить разные объекты через конструктор в сущность, хотя многие с этим не согласятся. Тогда тот кто создает ваши сущности начинает, либо зависеть от инфраструктуры (от используемого DI контейнера), либо выступает в роли Proxy класса, импортируя завис...
- 2017.06.11, 14:35
- Форум: Архитектура, дизайн, ООП
- Тема: Слоение очередей
- Ответы: 5
- Просмотры: 3446
Re: Слоение очередей
Я реализую это через Domain Event'ы - ну т.е. в инфраструктурном слое есть слушатели событий, которые могут, либо выполнять действия сразу, либо помещать задание в очередь (в зависимости от того что требуется - выполнить в рамках одной транзакции или нет). Что касается транзакционности - у меня по ф...
- 2017.06.08, 14:14
- Форум: Архитектура, дизайн, ООП
- Тема: Как правильно связывать bounding context'ы?
- Ответы: 2
- Просмотры: 2446
Re: Как правильно связывать bounding context'ы?
[*] Где осуществялется подписка на событие? В инфраструктурном слое приложения? Да. Например, контроллеры это инфраструктура (ui). Подписчик тоже будет инфраструктурой, через которую сообщения попадают в домен. [*] Что должен вызывать обработчик события в другом контексте? Application сервис или мо...
- 2017.06.02, 18:54
- Форум: Архитектура, дизайн, ООП
- Тема: Как правильно связывать bounding context'ы?
- Ответы: 2
- Просмотры: 2446
Как правильно связывать bounding context'ы?
Всем привет! Каждый из bounding context'ов генерирует определенный набор событий, чтобы корректно связать несколько контекстов, нужно подписаться на событие определенного контекста и вызвать в другом контексте какое-то действие. Возникают вопросы: Где осуществялется подписка на событие? В инфраструк...
- 2017.06.01, 16:35
- Форум: Архитектура, дизайн, ООП
- Тема: Статистика по DDD
- Ответы: 6
- Просмотры: 3656
Re: Статистика по DDD
Вот так делать не надо. Это просто целочисленный счетчик просмотров, никто не борется с накрутками и не обеспечивается проверка уникальности. К тому же, есть и другой софт, который использует эту БД, так что я не могу ее менять. Есть только надежда что в обозримом будущем возьмусь и за него, тогда ...
- 2017.06.01, 13:29
- Форум: Архитектура, дизайн, ООП
- Тема: Статистика по DDD
- Ответы: 6
- Просмотры: 3656
Re: Статистика по DDD
Я бы тоже реализовал как отдельный контекст и, наверное, даже не проверял бы, есть ли сейчас объявление или нет. У меня тоже была такая мысль, но проблема в том, что новая версия сайта строится поверх уже существующей инфраструктуры (и в том числе БД), и складывать статистику приходится в таблицу с...
- 2017.06.01, 13:22
- Форум: Архитектура, дизайн, ООП
- Тема: Статистика по DDD
- Ответы: 6
- Просмотры: 3656
Re: Статистика по DDD
Спасибо за ответы! Владелец бизнеса делает данную статистику не для себя, а для пользователей сайта. Любая статистика это агрегации - и тут чистая реляционка пошла. В DDD все по объектам. Да, я храню статистику в реляционной БД. В DDD все по объектам. При запросе агрегирую собранную статистику и воз...
- 2017.05.29, 23:24
- Форум: Архитектура, дизайн, ООП
- Тема: Статистика по DDD
- Ответы: 6
- Просмотры: 3656
Статистика по DDD
Всем привет! Впал в ступор, нужно организовать сбор статистики по объявлениям на сайте, пока считаем 2 показателя: кол-во показов индивидуальной страницы объявления кол-во авторизованных пользователей, проявивших интерес к данному объявлению Вопрос в том как это сделать, как часть Агрегата объявлени...
- 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...
- 2017.04.21, 12:26
- Форум: Архитектура, дизайн, ООП
- Тема: Domain exception mapping
- Ответы: 6
- Просмотры: 3457
- 2017.04.20, 23:52
- Форум: Архитектура, дизайн, ООП
- Тема: Domain exception mapping
- Ответы: 6
- Просмотры: 3457
Re: Domain exception mapping
Я немного не об этом (хотя спасибо за идею, пригодится). Меня интересует место, где бы можно было расположить маппинг из примера, чтобы с его помощью мапить все исключения во всех контроллерах/экшенах приложения написанного на Yii.
- 2017.04.20, 23:36
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944
Re: DI в DDD проектах
А кто какой DI контейнер использует в проектах на Yii? и как вы его интегрируете c Yii (если используете сторонний)?
- 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...
- 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();...
- 2017.04.19, 14:32
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944
Re: DI в DDD проектах
Если хочется синглтона, пропиши сервис. Не хочется - не прописывай и получай разные инстансы, что ожидаемо. Так, вот я и задавал этот вопрос выше: как часто вы сталкивались c ситуацией, что injected dependency должна создаваться с 0 каждый раз (учитывая, что среда в которой обрабатывается запрос ум...
- 2017.04.19, 14:10
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944
Re: DI в DDD проектах
Если происходит резолв класса, которого нет в контейнере, то это не должен быть синглтон. Я хочу противоположенного: Если происходит резолв класса, которого нет в контейнере, то это должен быть синглтон. Итак, вот о чем я: Если класс не был задекларирован как создаваемый по требованию в контейнере,...
- 2017.04.19, 13:54
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944
Re: DI в DDD проектах
то есть когда вы вызываете \Yii::$container->get(Hoo::class);, он автоматически резолвится БЕЗ ДОБАВЛЕНИЯ HOO в контейнер? В таком случае логично, что это не синглтон. то есть если вы явно прописали резолв класса в контейнер, то это должен быть синглтон. Если происходит резолв класса, которого нет ...
- 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; } } ...
- 2017.04.19, 00:05
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944
Re: DI в DDD проектах
Проблема - классов без состояния и классов, подподающих под роль синглтона, много и они постоянно меняются. Я постоянно забываю пометить их как
Код: Выделить всё
\Yii::$container->setSingleton(...)
- 2017.04.18, 23:59
- Форум: Архитектура, дизайн, ООП
- Тема: DI в DDD проектах
- Ответы: 30
- Просмотры: 11944