Персональные инструменты
 

Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011)

Материал из CustisWiki

Перейти к: навигация, поиск

Аннотация

Докладчик
Николай Гребнев

Распределенная архитектура приложения сейчас является наиболее актуальным выбором при проектировании корпоративных информационных систем. Такие архитектурные шаблоны как сервисно-ориентированная архитектура (SOA) и трехзвенная архитектура (3-tier architecture) являются de-facto стандартами в разработке корпоративных приложений.

Зачастую, главной проблемой в разработки является борьба со сложностью решаемой задачи, при этом для приложений уровня предприятия сложность с каждым годом стремительно увеличивается. Одним из наиболее эффективных средств борьбы с растущей сложностью является методология проектирования на основе модели предметной области (Domain Driven Design, DDD).

Каждый, кто пытался применить DDD в приложениях, имеющих распределенную архитектуру, будь то сервисы или клиент-сервер, знает с каким количеством трудностей приходится сталкиваться. В докладе будут рассмотрена целесообразность применения DDD в приложениях с сервисно-ориентированной архитектурой и в многозвенных приложениях, будут освещены трудности, возникающие при использовании DDD, и обозначены пути их преодоления. Будут даны ответы на вопросы:

Стоит ли использовать DDD при разработке распределенных приложений?

Как использовать DDD при использовании различных архитектурных стилей?

Какую роль играют библиотеки, инструменты и фреймворки в разработке на основе модели предметной области?

Какова эффективность использования DDD в agile-процессе разработки распределенных приложений?

Видео


Для этого доклада нужен подкаст (аудиозапись)?

  •  Да, многое понятно и без видео части, есть смысл его прослушать.
  •  Нет, аудиозапись бесполезна (не понять без видео или вообще мало смысла в докладе).

Презентация

Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf

Примечания и отзывы

Из доклада я узнал только о сложностях и всевозможных проблемах данного подхода в описанных условиях. Те преимущества, которые описывал докладчик, уверенно перекрываются кучей дополнительного времени и сложностью реализации. ©

суть доклада сводиться к простому: «в DDD надо вводить распределенность в доменную модель, либо не делать распределенным», довольно очевидная вещь, и я все ждал, что вот сейчас то он расскажет ка-же это правильно делать, оказалось — нет. ©

Николай Гребнев

Презентация

Доклад прошел хорошо, слушателей набрался практически полный зал. Единственная проблема была в том, что я чуть-чуть не влез в 45 минут, но поскольку после моего доклады был обед, то я имел возможность рассказать доклад до конца. По результатам выступления понял, что с пониманием DDD пока все еще очень плохо. Весь свой рассказ я строил в предположении того, что слушатель понимает, что такое DDD и имеет опыт его использования, а самое главное представляет какие преимущества дает эта методология.

Основной задачей моего доклада было донести мысль, что если у вас распределенная система сложнее, чем клиент-сервер, и при этом вы хотите использовать DDD, то вам придется разработать свой инструментарий (на самом деле это далеко не такая очевидная мысль, как кажеться на первый взгляд) и вы должны оценить затраты на разработку этого инструментария и преимущества, которые он даст.

При этом о преимуществах DDD я рассказал вкратце, рассчитывая на то, что слушатели представляют для чего нужно тратить столько усилий в попытках использовать DDD.

Но, судя по вопросам и обсуждению в твиттере, аудитория оказалась к этому не готова. Более того судя по отзывам, некоторые вообще не поняли суть доклада и считают моей основной мыслью необходимость распределенной доменной модели, хотя я прямым текстом говорил о том, что такой случай не является темой доклада. Описанию DDD, его сути, а также преимуществам можно было стоило посвятить практически все время и даже более того, сконцентрировать акцент на преимуществах DDD и причин, по которым за него стоит бороться, а проблемы и пути решения просто задекларировать.

Коля рассказывал живо и интересно…

Хотя видно, что волновался.. иногда говорил много лишних слов. Вначале немного спотыкался, но к середине разогнался.

Но к сожалению месседж доклада не понятен :(.. Судя по отзывам народа в кулуарах и в твиттере. Доклад народу не понравился :(

Докладчик
Николай Гребнев
Компания
CustIS
Презентация
Документ на slideshare.net

Доклад Коли должен был следовать за докладом Антона Бевзюка «Архитектура для Автоматизированного тестирования UI» (доклада не было, но он доступен на slideshare.net) и продолжать, в какой-то степени, доклад Андрея Бибичева.

Доклад Коли также отличался образностью (например, слайд номер 20:

Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf

для иллюстрации терминов Rich и Anemic).

Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011).pdf

Связь доклада с Agile (слайд номер 15) кажется надуманной, но это вовсе неплохо.

Интересный доклад, достойно продолживший доклад Андрея Бибичева.

Николай Гребнев

Обзорный доклад на тему применимости DDD в распределенных приложениях. Добротно, но без откровений. Также было заметно, что аудиторию разочаровало отсутствие хотя бы упоминания новых подходов (типа CQRS).



Репликация: База Знаний «Заказных Информ Систем» → «Domain Driven Design в условиях разработки распределенных приложений (Николай Гребнев, AgileDays-2011)»

Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».