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