طراحی دامنه-محور

طراحی دامنه-محور یا DDD (به انگلیسی: Domain-driven design) یک رویکرد رایج در طراحی نرم‌افزار است که تمرکز اصلی آن، مدل کردن نرم‌افزاری است که دامنه نرم‌افزار با دانش دریافتی از متخصصان آن دامنه، مطابقت داشته باشد.

در این رویکرد طراحی، ساختار و زبان کد نرم‌افزار (نام کلاس‌ها، نام متدها، نام متغیرهای کلاس) باید با دامنه کسب و کار مطابق داشته باشد. به عنوان مثال اگر قرار است نرم‌افزاری جهت پردازش درخواست های وام پیاده‌سازی شود، این نرم‌افزار باید شامل کلاسی با عنوان مشتری (Customers) و متدی با عناوینی همچون پذیرش درخواست (AcceptOffer) و انصراف (Withdraw) باشد.

مهندسان نرم‌افزار، با پیاده‌سازی برنامه به روش طراحی دامنه-محور، اهداف زیر را دنبال می‌کنند:

  • گذاشتن بیشترین تمرکز بر روی دامنه اصلی (Core Domain) و منطق دامنه؛
  • پایه‌گذاری طرح‌های پیچیده بر اساس مدل دامنه؛
  • آغاز یک همکاری خلاقانه بین متخصصان فنی و متخصصان دامنه برای اصلاح مکرر یک مدل مفهومی که قرار است، مسائل یک دامنه خاص را حل کند.

منتقدان طراحی دامنه-محور بر این عقیده هستند که در این رویکرد، معمولاً توسعه دهندگان مجبور هستند، تا حد زیادی از انزوا و کپسوله سازی را اجرا کنند تا یک مدل را به عنوان ساختاری خالص و مفید حفظ کنند. در حالی که طراحی دامنه-محور، مزایایی همچون قابلیت نگهداری بالا را دارد، توصیه مایکروسافت این است که تنها برای دامنه‌های پیچیده‌ای که در آن‌ها، استفاده از مدل باعث افزایش درک مشترک از دامنه می‌شود، از این رویکرد استفاده شود.

اصطلاح طراحی دامنه-محور توسط اریک ایوانز در کتاب خود با همین عنوان که در سال ۲۰۰۳ منتشر شد، ابداع شده‌است.

جستارهای وابسته ویرایش

منابع ویرایش