Распределенная архитектура приложения сейчас является наиболее актуальным выбором при проектировании корпоративных информационных систем. Такие архитектурные шаблоны как сервисно-ориентированная архитектура (SOA) и трехзвенная архитектура (3-tier architecture) являются de-facto стандартами в разработке корпоративных приложений.
Зачастую, главной проблемой в разработки является борьба со сложностью решаемой задачи, при этом для приложений уровня предприятия сложность с каждым годом стремительно увеличивается. Одним из наиболее эффективных средств борьбы с растущей сложностью является методология проектирования на основе модели предметной области (Domain Driven Design, DDD).
Каждый, кто пытался применить DDD в приложениях, имеющих распределенную архитектуру, будь то сервисы или клиент-сервер, знает с каким количеством трудностей приходится сталкиваться. В докладе будут рассмотрена целесообразность применения DDD в приложениях с сервисно-ориентированной архитектурой и в многозвенных приложениях, будут освещены трудности, возникающие при использовании DDD, и обозначены пути их преодоления. Будут даны ответы на вопросы:
- Стоит ли использовать DDD при разработке распределенных приложений?
- Как использовать DDD при использовании различных архитектурных стилей?
- Какую роль играют библиотеки, инструменты и фреймворки в разработке на основе модели предметной области?
- Какова эффективность использования DDD в agile-процессе разработки распределенных приложений?
7. Domain Driven Design Проектирование по модели – проектирование архитектуры, при котором соблюдается максимально точное соответствие между некоторым подмножеством элементов программы и элементами модели (Эрик Эванс) 7
13. Domain Driven Design DDD – проекция языка предметной области на объектно ориентированный язык программирования 13
14. Почему DDD? Эффективный способ борьбы со сложностью Единый язык Низкая стоимость разработки и сопровождения 14
15. Почему DDD в Agile? Расстояние между заказчиком и разработчиком невелико Заказчик и разработчик разговаривают на одном языке Итеративная разработка – постепенное изменение модели 15
16. ORM (Object-relational mapping) ORM – технология программирования для конвертации данных между несовместимыми типами систем в объектно-ориентированные языки 16
66. 3-х звенная архитектура Тонкий клиент – см. клиент-сервер Толстый клиент: Мало логики – не использовать DDD на клиенте Средне логики – помещать инфраструктурный код в доменную модель Много логики – разработать свой слой преобразования данных 66
67. SOA и ESB Удаленного взаимодействия немного – поместить логику преобразования данных в доменную модель Иначе – разработать свой слой преобразования данных 67
72. Так что же делать? Оценить: Сложность доменной модели Необходимость сильно распределенной архитектуры Стоимость разработки собственных инструментов 72
73. Вопросы? Докладчик: Николай Гребнев e-mail: ngrebnev@gmail.com http://www.slideshare.net/ngrebnev/domain-driven-design-6988494 73