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

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


از دامنه تفکر - چه طراحی دامنه محور است؟


Das طراحی مبتنی بر دامنهDDD کوتاه، رویکردی است توسعه نرم افزارچه کسی دامنه کاربران طرح برجسته طراحی کاربردی نرم افزار می شود. منطقه ی تخصصی پیش بینی شده که در آن نرم افزار استفاده می شود، ساختار و عملکرد این مفهوم توسعه را تعیین می کند. هدف این است که نرمافزار را به گونه ای طراحی کنیم که حداکثر بهره وری را داشته باشد. این نباید کاهش یا معادل با قابلیت استفاده یا ثبات نرم افزار باشد (این نرم افزار مورد نیاز نرم افزار بیشتر از ابزار است). بخشی از DDD این است که برنامه نرمافزاری را از ابتدا تا انتهای بخش اداره کند.

این رویکرد ابتدایی بی نظیر، خواسته های خاصی را در مورد آن ایجاد می کند فرایند توسعه یک نرم افزار این به هر دو مربوط است توسعه دهنده، و همچنین معماری نرم افزار. به طور خاص، DDD شامل ارتباط بین توسعه دهندگان نرم افزار و متخصصان دامنه همچنین یک لایه کاربر را درون مدل نرم افزار جدا می کند.

لایه کاربر یکی از اجزای اساسی درون ساختار است نرم افزار و برای کاربر دلیل واقعی برای استفاده از آنها را در همه.

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

رویکرد توسعه DDD توسط نویسنده اریک ایوانز در کتاب Domain-Driven Design: Complexity در قلب نرم افزار شناخته شده و منتشر شد.


مدل ها و معماری


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

تحت مدل سازی سقوط اما همچنین معماری DER نرم افزاراست. معماری یک نرم افزار این کار را انجام می دهد جریان برنامه جدول ارجاع سلسله مراتبی اجزای عملکردی در سیستم نرم افزاری را ترسیم و توصیف می کند. بنابراین معماری نرم افزار، ساختار اصلی نرم افزار را نشان می دهد و ویژگی های اجزای آن و همچنین روابط آنها را با یکدیگر شرح می دهد. تعریف اجزاء بر اساس اصل مسئولیت است، یعنی هر یک از این مولفه ها متمایز و توصیف شده توسط معماری مسئول تنها یک کار است. اکنون می توان این مولفه ها را با توجه به وظایف و روابط بین آنها، لایه ها نام برد. عناصر مرتبط یا به شدت وابسته به یک لایه مشترک هستند. در ساده ترین حالت این می تواند یک لایه ورودی (که در آن تمام عملیات ورودی قرار گرفته است)، یک لایه پردازش (همه پردازش پردازش داده ها در اینجا اتفاق می افتد) و یک خروجی. معماری یک نرم افزار پیاده سازی دقیق فنی آن را توصیف نمی کند بلکه یک مدل سازمانی انتزاعی از تعامل بلوک های فردی را فراهم می کند.

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

در طراحی نرم افزار مبتنی بر دامنه، تمام وظایف خاص دامنه در حال حاضر در یک لایه ترکیب شده است. این لایه خاص برنامه شامل تمام اجزای مرتبط با دامنه، از جمله پردازش داده مربوط به دامنه، و همچنین تمام روال های مسئول منطق دامنه است. در تفکر DDD، تمام لایه های دیگر ذهنی و مفهومی در اطراف این لایه گروه بندی می شوند.


یک زبان مشترک را پیدا کنید


رویکرد خاص موضوع توسعه نرم افزار با مشخص شدن این واقعیت است که منطق متخصص، جنبه مهمی در مدل معماری است نرم افزار است. بنابراین در حرفه های توسعه و توسعه دهنده نرم افزار با هم. برای ارتباط برقرار کردن نیاز به زبان مشترک دارد. این نوع زبان مشترکی به عنوان رابط کاربری بین آن عمل می کند توسعه دهندگان نرم افزار و حرفه ای ها، در سراسر دانشکده و در تمام مراحل و زمینه های این حوزه شکل گرفته است توسعه نرم افزار در حال حاضر. به همین دلیل است که هم فراگیر است، یعنی زبان فراگیر. این یکی نیست زبان برنامه نویسی یا یک زبان مدل صریح آموزنده، بلکه یک توصیف روابط، ویژگی ها و فرایندهای پردازش بخش در ارائه رسمی و با استفاده از کامپیوتر است.

این زبان همه جا برای مفهوم سازی مدل دامنه استفاده می شود که شامل مجموعه ای از تمامی جنبه های دامنه است. مدل دامنه تلاش می کند تا به طور مناسب فعالیت های بخش را به نمایش بگذارد. این معمولا به یک مدل کسب و کار منجر می شود. یک عنصر مهم در مفهوم مدل دامنه غنی سازی معنایی است. بنابراین، مدل شامل نه تنها اجرای رسمی یک منطق موضوعی بلکه همچنین روابطی است که در دامنه رخ می دهد. نه تنها "چگونگی" فرآیند، بلکه "چرا" نیز نشان داده شده است. بنابراین، نه تنها توالی فرایندهای قابل پردازش ایجاد می شود، بلکه این به دلیل اهمیت آنها برای رویدادهایی که می تواند اثبات و تحلیل شود، غنی می شود.

این غنی سازی معنایی نیز ضروری است، زیرا در عملیات پیچیده دامنه، مانند خرید آنلاین، ویژگی های مختلف اشیاء، در مورد خرید، مقاله، ممکن است مربوط باشد. بنابراین Z وجود دارد. همانطور که در پست الکترونیکی سفارش می دهیم بخش های مختلفی که مراحل مختلف خرید، ارائه مقاله، بسته بندی، حمل و نقل، و غیره را در اختیار دارند، و اصطلاح مقاله نیز هر یک از معانی متمایز متفاوتی دارند. اصطلاحات زیر از زیر دامنه ها صحبت می کنند. یک دامنه، یک منطقه تخصصی مانند کسب و کار سفارش پستی، می تواند به مناطق متفاوتی متفاوتی تقسیم شود. به طوری که مقاله چندین بار با تاکید اهمیت خاص در هر حوزه زیردری انجام نمی شود، این معانی مختلف باید کاملا در مفهوم مقاله مقاله باشد.

در نهایت، در رویکرد همه جا ممکن است یک شیء داده با یک تاریخ فراهم شود، یعنی یک سری تغییرات. این همچنین کمک می کند تا به طور رسمی ضبط معانی برجسته ای را که یک دوره در فرآیندهای درون حوزه تجربه می کند، جذب کند.

زبان فراگیر در نتیجه دو عمل مهم را انجام می دهد. در مرحله اول، تکنسین ها و متخصصین دامنه را قادر می سازد تا با یکدیگر ارتباط برقرار کنند و دوم اینکه تضمین می کند که محتویات عملیات دامنه مانند فرآیندهای کسب و کار به درستی در مدل مدل سازی شده است.


بخش هایی از کل


به یک مدل خاص دامنهمن پنج پایه ساختمانی پایه ای را که بر اساس اشیا و انجمن ها است، توسعه می دهم. اشیاء بخشی از مدل است که می تواند با هویت، ویژگی یا ترکیب هر دو مشخص شود.

اشخاصی هستند که تنها ویژگی هویت هستند. آنها هیچ خواص ندارند. برای مثال، کاربران یک پیشنهاد آنلاین باید فقط از طریق هویت خود از یکدیگر جدا شوند، که شامل نام کاربری و رمز عبور آنهاست. شما نیازی به داشتن خواص بیشتر ندارید افراد همچنین سابقه ای دارند که تغییرات آنها را نشان می دهد و چگونگی عبور از زیر دامنه ها یا زمینه های کاربردی مختلف را می دهند. این می تواند Z باشد به عنوان مثال، مجموعه ای از حقوق دسترسی یک کاربر به سرویس آنلاین. نهاد ها همچنین "حامل" پایه منطق دامنه هستند. برای انجام یک کار در یک بخش، یک نهاد باید قوانین اجرای آن را ارائه کند. بنگاه ها به این ترتیب فرآیندهای لازم را برای تکمیل یک کار در بخش فراهم می کنند.

مکمل یک نهاد در مدل دامنه شیء ارزش است. این شیء هیچ هویت ندارد، اما خواص. به عنوان مثال، عملکرد روز هفته دارای هویت نیست، مگر آنکه با تاریخ تکمیل شود. دوشنبه می تواند هر دوشنبه در طول زمان باشد. با این حال، عملکرد روز هفته دارای خواص مربوط به روز هفته است. همین امر در مورد "صبح" بدون تصمیم گیری بیشتر صادق است. ویژگی این زمان روزی که آن جهنم می شود بدون هویت این "شی" داده می شود. همچنین یک عدد "number" یا مقدار ارز نمونه هایی از اشیاء ارزش هستند. آنها یکسان نیست "ایستادن برای خود"، مقدار یا مقدار ارز هر یک از اشیاء تطبیق را توصیف می کند. این همچنین شامل عملکرد مهم Object ارزش است. شما می توانید خواص را به هویت اختصاص دهید. یک جسم کامپوزیت با هویت و خواص، به اصطلاح aggregate است.

از اهمیت زیادی برای مفهوم مدل دامنه اشیاء سرویس (خدمات) هستند. آنها توابع عملیاتی را خلاصه می کنند و با هویت ها، اشیای ارزشمند و یا ارقام آنها عمل می کنند. آنها موارد استفاده را نشان می دهند، مانند فراخوانی های یک تابع که توسط یک نهاد انجام می شود. به صورتی که آنها اشیای لازم را برای پرونده مربوطه جمع آوری می کنند. یک درخواست می تواند سفارش در یک فروشگاه آنلاین باشد. در اینجا، اشخاص "سبد خرید" و "مشتری" در شیء سرویس "فرآیند سفارش" با اشیاء مربوط به ارزش مرتبط نامیده می شوند.

همانطور که در مدل نرم افزاری علاوه بر آن است مدل دامنه هنوز لایه های دیگر یا نمونه هایی وجود دارد که توابع مورد نیاز برای اجرای مورد استفاده قرار می گیرند، باید یک interface وجود داشته باشد که میان لایه دامنه و لایه های دیگر، مانند لایه دسترسی به داده ها، میانجی است. این توسط مخازن انجام می شود. یک مخزن را می توان به عنوان یک ظرفی که می تواند محتوا مانند اجسام را نگهداری کند، در نظر گرفته شده است. مخازن یک الگوی طراحی در معماری نرم افزار، الگوهای طراحی رویکرد اثبات شده برای حل مشكلات تكراری در معماری نرم افزاری است.

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

اشیاء مدل دامنه می تواند در رابطه با یکدیگر متفاوت باشد. این توسط انجمن ها شرح داده شده است. این روابط می توانند هر دو ایستا باشند، یعنی بین دو اشیا ثابت می شوند، بلکه همچنین به طور پویا تعریف می شوند، یعنی بر تغییر اشیا تاثیر می گذارند.


نتیجه


Das طراحی مبتنی بر دامنه بیشتر از یک فکر است و موضع توسعه به نرم افزار مدل سازی به عنوان مجموعه ای از روش ها. این مفهوم که به نظر می رسد بسیار ساده است در ابتدا، کاملا مستلزم اشتغال نزدیک تر است و اغلب مشکلات را در مراحل اولیه نشان می دهد که تا زمانی که روند توسعه بدون مفهوم مدل سازی دامنه قابل مشاهده نیست. زبان فراگیر اجازه می دهد حرفه ای ها و توسعه دهندگان فناوری اطلاعات در یک زبان سازگار و به خوبی تعریف کنند. اساسا، نگرش DDD از طریق تمرکز روی محدوده است. این همچنین منجر به قطع ارتباط "عمومی" ویژگی های نرم افزار به جای آن. این به توسعه دهندگان پروژه های نرم افزاری در مقیاس بزرگ کمک می کند تا به اهداف مورد نظر برسند. اما این تنها در صورتی امکان پذیر است که DDD به طور کلی منطقی باشد معماری سیستم به عنوان خودت لایه دامنه درگیر است علاوه بر این، انتقال ویژگی های تخصصی یک نرم افزار برای پیگیری پیشرفت ها امکان پذیر است.

آیا شما در مورد پست وبلاگ ما سوالی دارید؟ "مفهوم طراحی مبتنی بر دامنه به طور خلاصه توضیح داده شد" یا ما می خواهیم ما برای شما کار کنیم؟

به ما بنویسید یا تماس بگیرید

تماس شما:

بجر گروینولد

تلفن: 0491 960 999 00

پست الکترونیک: این آدرس ایمیل در برابر هرزنامه ها محافظت برای نمایش جاوا اسکریپت باید روشن!


نظرات
(لطفا برای ترک نظر وارد شوید / ثبت نام کنید.)
اکنون از مشاوره اولیه رایگان خود درخواست کنید!