در این سری آموزشی از وب سایت پرووید قصد داریم در رابطه با Tactical Domain-Driven Design صحبت کنیم. در ابتدای کار توصیه میکنیم که اگر در رابطه با Domain Driven Design اطلاعات کمی دارید، حتماً از بسته ی آموزش ویدئویی اصول طراحی نرم افزار Domain Driven Design و بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design استفاده کنید.
در حقیقت Tactical Domain-Driven Design مجموعه ای از الگوهای طراحی و یا Des gin Pattern هایی هستند که در طراحی سیستم ها با استفاده از Domain-Driven Design مورد استفاده قرار میگیرند. حتی برای سیستم هایی که در آنها از Domain-Driven Design یا طراحی دامنه محور استفاده نکرده اید میتوانید از این الگوهای طراحی و Building Block ها استفاده کنید. در یکی از قسمت های ابتدایی سری آموزشی Domain-Driven Design از وب سایت پرووید خدمت شما عرض کردیم که منظور از کلمه Building Block اجزای تشکیل دهنده یک معماری و یا طراحی میباشد.برای مطالعه آن آموزش از بررسی اجزای تشکیل دهنده طراحی دامنه محور Domain Driven Design استفاده کنید.
علاوه بر مفهوم Tactical Design، مفهوم Strategic Domain-Driven Design را نیز داریم. منظور از Strategic Domain-Driven Design مباحث مربوط به مفاهیم انتزاعی میباشد. حال آنکه Tactical Domain-Driven Design بیشتر با کد نویسی سر و کار دارد و با مفاهیمی از قبیل کلاس ها و ماژول ها کار میکند. هدف از Tactical Domain-Driven Design طراحی کردن Domain Model به نحوی است که بتواند به راحتی به کد تبدیل بشود.
روند توسعه دادن Domain Model یک روند تکراری و یا اصطلاحاً Iterative میباشد که در آن ترکیبی از Strategic Design و Tactical Design را در کنار یکدیگر خواهیم داشت. به بیان ساده ابتدا کار را با Strategic Design آغاز کرده و سپس کار را با Tactical Design ادامه میدهیم. شکل گرفتن های اساسی Domain Model زمانی اتفاق می افتد که Tactical Design اعمال بشود و این به نوبه خود بر روی Strategic Design نیز تاثیر گذارده و فرایند توسعه دادن Domain Model تکرار میشود.
مباحثی که در این سری آموزشی ارائه میشوند بر اساس کتاب Domain-Driven Design: Tackling Complexity in the Heart of Software از اقای Eric Evans و کتاب Implementing Domain-Driven Design از Vaughn Vernon میباشد. در همین جا توصیه میکنیم که تمامی کسانی که توانایی مناسبی برای خواندن زبان انگلیسی دارند، از این کتاب ها استفاده کنند. امیدواریم که سری اول آموزش Domain-Driven Design از وب سایت پرووید را مطالعه کرده باشید تا بتوانید از مفاهیم مطرح شده در این قسمت نهایت استفاده را ببرید.
پرووید: مرکز آموزش تخصصی برنامه نویسی و توسعه نرم افزار