Domain model + Data mapper + Service Layer
Всем привет. После прочтения кучи материалов из книг и интернета образовалась каша в голове, и путаница в терминах. Может есть кто особо просвещенные? В инете много бесед по этому поводу, но все они обрываются на самых интересных местах без ответа. Начнем…
Для простоты и понимания предлагаю сначала нивелировать все обсуждение на livestreet. Проблема в организации модели данных. На сколько я могу понимать в livestreet используется domain model(с минимальной логикой домена) + data mapper. (Это паттерны из Фаулера) Смотрим ссылку , тут человек пишет, что в модели должен быть еще сервисный слой. Если я правильно понимаю, то в livestreet — это главный файл модуля. Но по Фаулеру сервисный слой это совсем другое, и применительно к livestreet — этот слой был бы прослойкой между контроллером и главным файлом модуля. То есть контроллер дергал был сервисный уровень, а уровень уже модуль.
Вопросы:
1) Правильно ли я понимаю картину?
2) Чем на самом деле является главный файл модуля? К чему его относить? К domain model?
Для простоты и понимания предлагаю сначала нивелировать все обсуждение на livestreet. Проблема в организации модели данных. На сколько я могу понимать в livestreet используется domain model(с минимальной логикой домена) + data mapper. (Это паттерны из Фаулера) Смотрим ссылку , тут человек пишет, что в модели должен быть еще сервисный слой. Если я правильно понимаю, то в livestreet — это главный файл модуля. Но по Фаулеру сервисный слой это совсем другое, и применительно к livestreet — этот слой был бы прослойкой между контроллером и главным файлом модуля. То есть контроллер дергал был сервисный уровень, а уровень уже модуль.
Вопросы:
1) Правильно ли я понимаю картину?
2) Чем на самом деле является главный файл модуля? К чему его относить? К domain model?
21 комментарий
Вполне подходит для модуля LS
Не все должно быть по Фаулеру =)
Кроме того с моей кашей в голове сейчас, я не могу понять, что вы хотите сказать. Давай выражаться более полными предложениями, дабы еще больше не запутаться, кто и что имеет в виду =)
Поэтому объектная модель ЛС не на все 100% соответствует предложенной М. Файлером =)
Я бы сказал что файл модуля это 1 + 2
Он реализует функции BLL и SL.
Мне кажется что примерно нам понадобится в произвольном порядке
Насчет обсуждений
zendframework.ru/forum/index.php?topic=2303.0
первые страницы стоит прочитать. В свое время мне самому немного прояснили, когда я после ZFшного quick start'a пытался более серьезные вещи заставить работать )
Хочется Фаулера 1 в 1? Разделите модуль на сервисный слой и логику и вуаля.
Ну может быть еще изначально доступ маппера, например к сущности не «православен» или еще какие то запросы следует пускать через сервис.
Во всем этом нет смысла, если у вас нет конкретной ситуации, в которой существующая схема не предоставляет достаточной гибкости или мешает скорости работы приложения.
Я может ошибаюсь, но не помню, чтобы Фаулер давал указания по построению архитектуры от и до. Но зато у него есть Service Layer
который
Этого в ЛС нет по сути.