جلسه اول دوره آموزشی domain driven design به تدریس مهندس علیرضا ارومند با موفقیت برگزار شد.
مباحثی که در این جلسه مطرح شد به شرح ذیل است:
1- یک چالش بزرگ
اولین جلسه دوره DDD با یک چالش بزرگ شروع شد. به عنوان یک برنامه نویس حرفهای و رهبر و پیشرو باید بتوانیم به جای عملکرد منفعل در سازمان، یک عملکرد فعال از خود به جای بگذاریم و به جای انتظار برای اینکه شانس به سراغ ما بیاید باید به دنبال ایجاد موقعیتهای کاری باشیم. برای آشنایی با این چالش ابتدای کلاس از دوستان حاضر خواهش کردیم که به صورت خودجوش اقدام به تشکیل تیمهای ۳ نفره برنامه نویسی کنند که در این کار هدف ما آشنایی دوستان با عملکرد فعال بود و اینکه در صورتی که در جریان کارها به انتظار بنشینیم به جای اینکه بتوانیم برای خود تصمیم بگیریم برای ما تصمیم خواهند گرفت. به جای اینکه پیشرفت کنیم از ما به عنوان وسیله پیشرفت استفاده خواهند کرد. در ادامه نکاتی کوتاه در مورد عملکرد فعال بیان شد.
2- حل چند مسئله
بعد از تعیین گروههای برنامه نویسی و آشنایی با تواناییهای موجود در هر تیم، مسئلههایی به تیمها ارائه شد که باید تیمها با دانش و توانایی موجود در تیم به بهترین روشی که میتوانستند مسئله را حل کنند. در این بین با چند مشکل رایج در تیمهای برنامه نویسی آشنا شدیم. یکی از این مشکلات پیش بینی بدون نیاز بود. همه ما به عنوان برنامه نویس با شرایطی مواجه شده ایم که صورت مسئلهای به ما داده میشود و در جریان طراحی و پیاده سازی بدون اینکه کارفرما نیاز داشته باشد اقدام به بال و پر دادن به مسئله میکنیم و اسم آنرا طراحی بهینه و آینده نگرانه میگذاریم. غافل از اینکه این آینده نگری بیهوده باعث از دست رفتن زمان و هزینه میشود و در پایان کار با توجه به نشتی زمان و هزینه ای که داشته ایم کار اصلی با کیفیت پایینی انجام میشود و این یکی از دلایل همیشگی نارضایتی کارفرمایان است. یکی دیگر از ایراداتی که در اغلب تیمها وجود داشت توجه بیش از حد به جزئیات پیش از انجام تصیمات کلان در پروژه بود که نکاتی در این مورد نیز خدمت دوستان ارائه گردید.
3- نحوه صحیح معماری و چیدمان پروژه
بعد از اینکه تیمها برنامه را تا حدی به صورت گروهی انجام دادند نوبت به ارائه قسمت اصلی درس امروز رسید. بخش اصلی درس امروز در مورد نحوه صحیح معماری و چیدمان پروژه بود. ابتدا به بررسی دو نوع پروژه دامنه محور و داده محور پرداختیم و بعد از اینکه با کلیات این موارد آشنا شدیم کمی در مورد معماری پروژههای دامنه محوه بیشتر دقیق شدیم و سه الگویی که در اصل یکسان هستند ولی در ظاهر تفاوتهایی با هم دارند را باهم بررسی کردیم.
این الگوها عبارتند از:
۱- Hexagonal Architecture
2- Onion Architecture
3- Clean Architecture
که در کل عملکرد یکسانی دارند اما در برخی مفاهیم تفاوتهایی با هم دارند.
بعد از آشنایی با این موارد اقدام به ایجاد ساختار پروژههای دامنه محور کردیم و دیدیم چگونه میتوانیم برای یک پروژه از صفر شروع به چیدمان پروژهها کنیم و چگونه ارتباط بین پروژهها را برقرار کنیم که کدی تمیزتر و قابل انعطافتر داشته باشیم.
جهت کسب اطلاعات بیشتر میتوانید به دوره بسیار کاربردی Domain Driven Design مراجعه کنید.