جهت مشاهده چالش هفته ۱۶ اینجا کلیک کنید.
پیشزمینه:
در این چالش، به دنیای پیچیده مدلسازی سفارش در یک سامانه جامع خدمات گردشگری آنلاین میپردازیم. این سامانه طیف وسیعی از خدمات از جمله رزرو بلیط هواپیما، قطار، اقامتگاه، اجاره خودرو، خرید بیمه سفر و رزرو تورهای گردشگری را ارائه میدهد.
⭕️سناریو:
شما در حال پیادهسازی و طراحی یک سیستم مدیریت سفارشات در شرکت MyGlobalTravel.Com هستید. این سامانه به کاربران امکان میدهد تا ترکیبی از خدمات مختلف را در یک سفارش خریداری کنند. برای مثال، یک کاربر میتواند همزمان بلیط هواپیما، رزرو هتل، اجاره خودرو و بیمه سفر را در یک سفارش خریداری کند. همچنین، سامانه باید قابلیت شخصیسازی سفارشها را برای کاربران فراهم کند. به عنوان مثال، یک کاربر میتواند برای پرواز خود صندلی خاص، وعده غذایی ویژه یا خدمات اضافی را درخواست کند.
❓صورت مسئله:
با توجه به سناریوی بالا، به سوالات زیر پاسخ دهید:
🔶سفارش را مدلسازی کنید. آیا سفارش یک Aggregate است؟ اگر بله، مرزهای آن را مشخص کنید. چه مفاهیمی مانند جزئیات مسافر، آیتمهای سفارش (بلیط، اقامتگاه، اجاره خودرو، بیمه)، وضعیت پرداخت، تاریخ سفر، درخواستهای ویژه و … را در این Aggregate قرار میدهید؟
🔶چندین مدل برای سفارش ارائه دهید.
چگونه روابط بین آیتمهای مختلف یک سفارش را مدل میکنید؟ مثلاً چگونه یک سفارش میتواند شامل چندین بلیط برای مسافران مختلف باشد و هر بلیط دارای ویژگیهای خاص خود باشد؟
🔶چگونه سفارشهای گروهی را مدل میکنید؟
چگونه سفارشهای سفارشی را با درخواستهای ویژه کاربران مدیریت میکنید؟
🔶چگونه روشهای پرداخت مختلف (کارت اعتباری، پرداخت آنلاین، پرداخت نقدی) را مدل میکنید؟
🔶چگونه پرداختهای چند مرحلهای را مدیریت میکنید؟
⭕️اهداف چالش:
درک عمیقتر مفاهیم DDD
طراحی یک مدل سفارش جامع و انعطافپذیر برای یک سامانه گردشگری آنلاین پیچیده
بررسی چالشهای مربوط به شخصیسازی، مدیریت موجودی، پرداخت و تغییرات در سفارشها
تقویت مهارتهای مدلسازی دامنه در حوزههای پیچیده
این چالش به شما کمک میکند تا درک عمیقتری از مفاهیم DDD پیدا کرده و بتوانید مدلهای دامنه پیچیده را به صورت مؤثر طراحی کنید.