اصل Bounded Context در توسعه نرم افزار

به عنوان آخرین موضوعی که در این قسمت بررسی می‌کنیم قرار است که قطع رابطه با مفهوم Bounded contexts ها صحبت کنیم. مفهوم Bounded contexts یک الگوی بسیار ضروری و مهم در طراحی دامنه محور و یا Domain Driven Design می باشد. در رابطه با Domain Driven Design آموزش های متعددی بر روی وب سایت پرووید قرار گرفته اند که برای مثال می توانید از بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design استفاده کنید. Bounded contexts ها روشی را در اختیار ما قرار می‌دهند تا بتوانیم پیچیدگی های مربوط به اپلیکیشن های بزرگ را با شکستن آنها به ماژولهای کوچکتر مدیریت کنیم. هر ماژول نمایانگر یک contexts است که از دیگر contexts ها جدا گردیده است. به همین دلیل هم از واژهBounded استفاده می‌کنیم معنی واژه Bounded مرزبندی شده می باشد حال تمامی Bounded contexts ها می توانند مستقل از یکدیگر تکامل پیدا کنند. هر Bounded contexts باید به صورت ایده‌آل بتواند به سادگی نام های مورد نظر خود را برای لحاظ نمودن مفاهیم آن Bounded contexts انتخاب کند و می بایست دسترسی کاملی به Persistence Store و یا مکان ذخیره سازی منحصر به فرد خود داشته باشد. مفهوم Bounded contexts در معماری مایکرو سرویس ها نیز اهمیت زیادی پیدا می‌کند که در این رابطه می توانید از بسته ی آموزش ویدئویی شروع به کار با معماری مایکروسرویس ها دیدن کنید. به طور ایده آل هر وب اپلیکیشن می‌بایست تلاش کند که Bounded contexts منحصر به فرد خود باشد و Persistence Store خاص خود برای business model خاص خود را داشته باشد و عملاً نیازی به اشتراک گذاشتن دیتابیس با دیگر اپلیکیشن ها را نداشته باشد. ارتباط بین Bounded contexts ها از طریق اینترفیس ها اتفاق می افتد و دیتابیس ها هیچ گاه به صورت مشترک استفاده نمی شوند. این موضوع باعث می‌شود که business logic و business event ها بتوانند در پاسخ به اتفاقاتی که رخ می‌دهند ایجاد بگردند. همانطور که گفته شد Bounded contexts ها نگاشت بسیار نزدیکی به معماری مایکروسرویس ها هستند. در رابطه با این موضوع می توانید از بسته‌های مختلف معماری مایکروسرویس و Domain Driven Design سایت پرووید استفاده کنید. یکی از بهترین بسته های آموزشی در رابطه با Domain Driven Design ها بسته ی آموزش ویدئویی کاربردی طراحی نرم افزار Domain Driven Design می باشد.