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

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

پیاده سازی Domain Logic و اولین Command و Event

تمامی سناریوها با باز شدن یک تب آغاز می‌شوند. بنابراین ما در قسمت پایین TabOpened را به عنوان یک Event تعریف می کنیم.

public class TabOpened
{
    public Guid Id;
    public int TableNumber;
    public string Waiter;
}

در این Event پروپرتی هایی برای یک شناسه یکتا برای تبی که باز شده است شماره میز مشتری و همچنین گارسون یا گارسون هایی که مسئول سرو کردن سفارش برای آن تب هستند وجود دارد. کلاس های Event می‌توانند از کلاس Base ی ارث بری کنند. یکی از مهمترین اتفاقاتی که توصیه می‌کنیم برای Event ها بیفتد تعریف یک Id از نوع Guid در آنها است.

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

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

تعریف Command مربوط به باز کردن بک تب با نام OpenTab نیز بسیار شبیه به Event بالا می‌باشد. تعریف آن را در قسمت پایین میبینید:

public class OpenTab
{
    public Guid Id;
    public int TableNumber;
    public string Waiter;
}

قرار دادن کلمه ی Event در پایان نام Event ها و یا کلمه ی Command در پایان نام Command ها توصیه نمی‌شود چرا که باعث ایجاد نویز می گردد. نام گذاری مناسب برای Event ها و Command ها می تواند به تنهایی گویای ماهیت آنها باشد.

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

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

در این راستا توصیه می‌کنیم بسته آموزشی کد نویسی تمیز برای انسان‌ ها را از وبسایت پروید مشاهده کنید.

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

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

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