طراحی دامنهمحور – Domain-Driven Design(DDD)
اسلاید 1: محسن دارچینی تبریزی
اسلاید 2: این مبحث را اولین بار آقای Eric Evans در سال ۲۰۰۳ در کتاب خود با عنوانDesign Domain-Driven مطرح کرد.طراحی دامنه محور((Domain-Driven Design یا به اختصار DDD مبحثی است که در سالهای اخیر مورد توجه بسیاری از شرکتهای توسعهدهندهی نرمافزار بوده و رویکرد آنها را برای تحلیل و توسعه نرمافزارها به خصوص نرمافزارهای بزرگ و پیچیده، به شدت مورد تاثیر قرار داده است.طراحی دامنه محورDomain Driven Design
اسلاید 3: منظور از توسعه دامنه محور یا DDD DDDرویکردی است برای طراحی و توسعه نرمافزارهایی که دارای فرآیندهای پیچیده و قوانین زیاد بوده و مکرراً در حال تغییر میباشند.اصطلاح Domain به حوزه فعالیتی گفته میشود که نرمافزار برای پیادهسازی آن توسعه مییابد.بنیان DDD مجموعهای از مفاهیم و تکنیکهایی است که برای تجزیه و تحلیـل Domain و ساخت یک مدل متناظر از روی آن ( (Domain Modelبه کار برده میشود. اهمیت این مدل خروجی به قدری است که تمرکز و توجه اصلی این رویکرد بر روی توسعهی آن میباشد.Domain Model طراحی شده همراه با جزئیات دقیق بوده و تمام مفاهیم و قوانینBusiness Rules) ) مورد نیاز در آن پیادهسازی میشود.
اسلاید 4: منظور از توسعه دامنه محور یا DDDدر DDD تاکید زیادی بر ارتباط دو طرفهی تیم توسعهی نرمافزار و افراد متخصصDomain دارد. از آنجا که ممکن است در این ارتباط دو طرفه، تیم توسعهی نرمافزار در فهمیدن برخی مفاهیم و مسائل دچار اشتباه و دوگانگی شوند لذا ایجاد زبان یکسان بین دو تیم، در مورد مفاهیمDomain امری الزامی است. (Ubiquitous Language)DDD همچنین راهکارهایی برای تقسیم نرمافزار به بخشهای جدا و مستقل (Bounded Context) و همچنین ارتباط این بخشها با یکدیگر ارائه میکند. این امر سبب میشود تا فرآیند توسعهی نرمافزار به صورت موازی بین چند تیم انجام شده و همچنین معماران سیستم را قادر میسازد تا از معماریها و تکنولوژیهای مختلف در بخشهای مختلف استفاده نمایند.
اسلاید 5: منظور از توسعه دامنه محور یا DDDاستفاده از DDD در پروژههای کوچک و ساده و یا پروژههایی که صرفاً نیاز به ذخیره و خواندن اطلاعات دارند و پیچیدگی Business خاصی ندارند، ممکن است تنها زمان و هزینهی پروژه را افزایش داده و مزیتی خاصی به همراه نداشته باشد.از DDD بیشتر برای سیستمهای Enterprise کهBusiness آنها پیچیده(منطق و شرطهای پیچیده و فراوان، تعداد entity و controller بسیار بالا، تغییر مداوم فرایندهای سیستم و قوانین آن و...) و همچنین طول عمر آنها بالاست، استفاده میشود. راهحلهای DDD باعث میشود طراحی سیستم Flexible بوده و بعد از یک مدت نیاز به Redesign نداشته باشد.
اسلاید 6: مدل دامنهDomain Modelدر اغلب پروژههای نرمافزاری دغدغه اصلی تیم توسعه، طراحی دقیق و درست فرآیندها و قوانین نرمافزار میباشد. تیم توسعهی نرمافزار میتواند با تمرکز بر رویDomain و طراحی Domain Model و همچنین با رعایت مفاهیم و تکنیکهایDDD از پیادهسازی درست این فرآیندها اطمینان حاصل کند.بیشتر راهحلهایی که در DDD مطرح میشود برای سادهسازی و جداسازی یک domain پیچیده به بخشهای کوچکتر و ارائه راهحل برای هر کدام از آن قسمتهاست. تاکید DDD بر شناخت خوب مسئله و بعد ارائه راه حل است.
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.