آموزش عملی و پروژه محور Domain Driven Design و CQRS #2 قسمت دوم از یک سری آموزشی از وبسایت پرووید است که در رابطه با Domain Driven Design و CQRS تنظیم شده است. پس از این دوره ی آموزشی می توانید از بسته های آموزشی وبسایت پرووید در رابطه با Domain Driven Design را استفاده کنید.

در قسمت قبلی از این آموزش در مورد تعریف Domain مسئله صحبت کردیم.

تعریف Event ها

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

بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design دیدن کنید.

با توجه به سناریوی که در قسمت بالا معرفی شد و تمرکز کردن بر روی زبانی که در آن استفاده می شود ما با کلماتی برخورد می‌کنیم که اشاره به اتفاقاتی دارند که رخ می دهند. این موضوع ما را به سمت اطلاعات جدید در Domain رهنمود می‌شود. ما این اتفاقات را به Event ها نگاشت می کنیم و از آنجایی که Event ها در رابطه با اتفاقاتی هستند که در گذشته رخ داده اند آنها را در با زمان گذشته نامگذاری میکنیم.

در ادامه لیستی از Event هایی که ممکن است در دومین ما مطرح شوند را می بینید:

  • TabOpened
  • DrinksOrdered
  • FoodOrdered
  • DrinksCancelled
  • FoodCancelled
  • DrinksServed
  • FoodPrepared
  • FoodServed
  • TabClosed

نکته بسیار مهمی که در رابطه با Event ها باید به آن اشاره کنیم این است که Event ها با تمرکز کامل بر روی Domain تعریف می شوند.

بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design دیدن کنید.

برای مثال تفاوت بین سفارش دادن نوشیدنی و سفارش دادن غذا در Domain بسیار مهم است بنابراین ما Event های متفاوتی برای آنها در نظر گرفته ایم.

در قسمت بعدی از این آموزش در مورد تعریف Command ها صحبت خواهیم کرد.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *