آموزش Clean Architecture

خرید دوره
۲۰۰۰۰۰ تومان
راهنمای ثبت نام
برای اطمینان از کیفیت دوره روی علامت منفی هر بخش کلیک کنید تا سکشن باز شود و ویدیوی رایگان مرتبط با آن بخش را ببینید
دوره ها

این دوره به شکل رایگان به تدریج در یوتیوب قرار خواهد گرفت. در صورت خرید مبلغ آن صرف امور خیریه خواهد شد.

در این دوره به کمک asp.net Core به بررسی Clean Architecture می پردازیم.
پیش نیاز این دوره آشنایی با سی شارپ و دات نت کور در حد ابتدایی است و مفاهیم تا حد امکان به شکلی توضیح داده شده که افراد مبتدی نیز بدون مشکل ویدیوها را دنبال کنند.
این دوره بر اساس مقالاتی که در ویرگول با همین نام نوشته شده تهیه شده است.

آیا این دوره برای من مناسب است؟

اگر برنامه نویسی هستید که دوست دارد تمرکزش را روی منطق برنامه نویسی بگذارد و هر بار درگیر از صفر آغاز کردن نشود دوره مناسبی را انتخاب کرده اید. در این دوره شما شکل دهی به یک پروژه را یاد خواهید گرفت و به شکل تئوری و عملی با یک پروژه ساختارمند کار خواهید کرد.

در این دوره به چه مباحثی پرداخته خواهد شد؟

نام این دوره آموزش Clean Architecture است. سرفصل مطالب را میتوانید در پایین همین صفحه ببینید اما بطور کلی شما ابتدا با لایه بندی سنتی آشنا میشوید و تفاوت آن با Clean Architecture توضیح داده خواهد شد. اگر میخواهید خیلی عمیق تر مطالب گفته شده در این دوره را بیاموزید حتما یک نگاهی به این سلسله مقالات بیاندازید؛ اما نگران نباشید اگر حوصله خواندن ندارید خلاصه آن مطالب در این دوره بیان شده است.

در این دوره یک پروژه ساده مدیریت محتوا ساخته و در حد توضیح معماری جزئیات آن بررسی میشود. 
در مورد ریپازیتوری و الگوی پیاده سازی آن در پروژه توضیح داده میشود. اینکه سرویس چیست و چه نقشی در بیزنس دارد بخشی از مطالبیست که بیان شده است.
همچنین در مورد Entity Framework و ارتباط آن با ریپازیتوری توضیحاتی داده شده است.
لایه های Core و Infrastructure و مفاهیمی همچونPresenter و Domain و Entity و UseCase و Service و Interactor و ... در این دوره برای شما روشن خواهند شد.

در انتهای دوره با MediatR آشنا میشویم و آن را روی پروژه خود پیاده می کنیم.

 

دوره آموزشی Clean Architecture
کل ویدیوهای مربوط به آموزش معماری کلین، در یک فصل ارائه میشود. این فصل شامل 19 بخش مختلف است که به توصیف مفاهیم مختلف و پیاده سازی یک پروژه می پردازد. انتظار میرود برنامه نویس بعد از مشاهده این فصل بتواند یک پروژه با معماری کلین را توسط دات نت کور پیاده سازی نماید.
مقدمه دانلود پیش نمایش
۸ دقیقه و ۴۷ ثانیه
در این بخش آنچه در مورد CA در مقالات گفته شد شبیه یک کلاس درس به شکل خلاصه توضیح داده میشود. لایه بندی سنتی را خواهیم دید و تفاوت آن با CA را بررسی خواهیم کرد. اینکه وظیفه اصلی هر کدام از لایه ها چیست و چگونه با هم تعامل دارند در این بخش توضیح داده شده است.
خلاصه ای از معماری دانلود پیش نمایش
۱۰ دقیقه و ۲۲ ثانیه
در این بخش تصویر معروف Clean Architecture بر اساس توضیحات موجود در مقدمه تفسیر میشود. با مشاهده این بخش دیگر مشکلی در برقراری ارتباط با این دیاگرام نخواهید داشت
چگونه کد بنویسیم دانلود پیش نمایش
۸ دقیقه و ۰ ثانیه
در این بخش ملاحظاتی که برای کد نویسی تحت یک معماری باید لحاظ کنیم گفته شده است. اینکه نباید کورکورانه لایه ها را ساخت و قبل از مشخص شدن پروژه قواعد تکراری و به درد نخور را به عنوان چارچوب تعیین کرد.
تعریف پروژه دانلود پیش نمایش
۴ دقیقه و ۱۳ ثانیه

در این بخش توضیح میدهیم که قرار است چه پروژه ای در قالب وب سایت مدیریت محتوایی دارای جداول Post و Category و Tag و Comment و User ایجاد شود.

هر پست میتواند یک کتگوری داشته باشد و یک کتگوری میتواند چند پست داشته باشد.
هر پست میتواند چند تگ داشته باشد و یک تگ میتواند چند پست داشته باشد.
هر پست میتواند چند کامنت داشته باشد و هر کامنت مرتبط با یک پست است.
هر پست توسط یک کاربر ایجاد میشود و طبیعتا یک کاربر میتواند چندین پست داشته باشد.

پیاده سازی لایه Domain در دل لایه Core دانلود پیش نمایش
۸ دقیقه و ۴۰ ثانیه
در این بخش یک پروژه جدید ایجاد و لایه Core تعریف میشود و مدل های مربوط به دامین ساخته میشوند.
تعریف Repository دانلود پیش نمایش
۹ دقیقه و ۴۹ ثانیه
در این بخش قرار است وظایفی را که لایه Core به لایه Persistence محول میکند را به شکل اینترفیس تعریف کنیم. میخواهیم برای موجودیت Category یک Crud داشته باشیم و برای بخش های دیگر هم قابلیت هایی تنظیم کنیم. نگاه ما در تولید فانکشن یک نگاه بیزنسی است و بر اساس خواسته ی UI قابلیت ها را تعریف میکنیم و به فکر شکل جداول نیستیم.
آنچه باید در مورد EF و ریپازیتوری بدانیم دانلود پیش نمایش
۴ دقیقه و ۴۲ ثانیه
در این بخش توضیح میدهم که چرا پیاده سازی ریپازیتوری در کنار EfCore ممکن است کار بیهوده ای باشد.
تعریف اینترفیس ها دانلود پیش نمایش
۳ دقیقه و ۸ ثانیه
در این بخش اینترفیس های مورد نیاز را تعریف میکنیم.
تفاوت ریپازیتوری و سرویس های بیزنسی دانلود پیش نمایش
۴ دقیقه و ۲۴ ثانیه
در این بخش در مورد تفاوت ریپازیتوری و usecase ها میپردازیم و در مورد شباهات های آنها در برخی مواقع هم صحبت میکنیم.
ایجاد لایه Infrastructure دانلود پیش نمایش
۹ دقیقه و ۲۲ ثانیه
در این بخشentity های معادل جداول دیتابیس را ایجاد و تنظیمات مربوط به هر جدول را به کمک Fluent Api انجام میدهیم
انجام مایگریشن دانلود پیش نمایش
۶ دقیقه و ۳۷ ثانیه
به کمک دستورات dotnet میتوانیم مدل ها را به دیتابیس منتقل کنیم.
پیاده سازی Repository دانلود پیش نمایش
۱۴ دقیقه و ۲۹ ثانیه
در این بخش در لایه Persistence یا Date قابلیت هایی که در لایه Core تعریف کردیم را پیاده سازی میکنیم
پیاده سازی endpointها دانلود پیش نمایش
۹ دقیقه و ۴۵ ثانیه
در این بخش به راحت ترین شکل endpoint ها را تعریف میکنیم. معرفی آدرس دیتابیس و هچنین معرفی اینجکشن ها را در Startup انجام میدهیم
پیاده سازی async برای endpointها دانلود پیش نمایش
۵ دقیقه و ۱ ثانیه
در این بخش برای ریپازیتوری کتگوری Crud را به شکل async مینویسیم.
ایجاد یکپارچگی در شکل خروجی دانلود پیش نمایش
۵ دقیقه و ۴۰ ثانیه
در این بخش با تعریف چند متد در BaseController خروجی های خود را یکپارچه میکنیم. میتوانیم این بخش را Presenter هم بنامیم.
MediatR چیست؟ دانلود پیش نمایش
۸ دقیقه و ۰ ثانیه
در این بخش در مورد پترن Mediator صحبت میکنیم و توضیح ساده ای خواهیم داد در مورد اینکه چرا از این پترن استفاده میکنیم.
پیاده سازیMediatR برای حالت Query: دانلود پیش نمایش
۱۲ دقیقه و ۳ ثانیه
در این بخش با نصب کتابخانه MediatR به کدهای خود سامان میدهیم. علاوه بر ساماندهی کد ما آماده تبدیل به CQRS است. یک نمونه برای endpoint مرتبط با کوئری گرفتن از دیتابیس را پیاده سازی میکنیم.
پیاده سازی MediatR برای حالت Command : دانلود پیش نمایش
۱۱ دقیقه و ۵۴ ثانیه
در این بخش اضافه کردن یک پست جدید را به کمک MediatR انجام خواهیم داد. در این حالت از هندلر Command استفاده میکنیم.
UseCase چیست؟ دانلود پیش نمایش
۴ دقیقه و ۴۵ ثانیه
در این بخش بررسی میکنیم اگر بخواهیم بدون حضور MediatR چیزی شبیه به آن بنویسیم و خودمان بیزنس را هندل کنیم چه کار باید انجام دهیم.
پیاده سازی بر اساس UseCase و Presenter دانلود پیش نمایش
۳۳ دقیقه و ۳۸ ثانیه
در این بخش ما ساختاری برای UseCase ها ایجاد میکنیم و به جای MediatR از UseCase های خودمان استفاده میکنیم.
اعتبار سنجی به کمک Jwt

در این بخش به پروژه، اعتبارسنجی کاربر شامل ثبت نام و لاگین یا همان آتوریزیشن را اضافه می کنیم. با مفهوم token در jwt آشنا خواهیم شد و در مورد Claim صحبت خواهیم کرد.

مقدمه
۷ دقیقه و ۵۳ ثانیه
در این ویدیو با آنچه در این فصل بیان خواهد شد آشنا خواهید شد و مفهوم آتنتیکیشن توضیح داده خواهد شد.
اعتبار سنجی با توکن به چه معنی است؟
۴ دقیقه و ۱۹ ثانیه
در این بخش به شکل عملی به شما نشان خواهم داد که توکن چگونه میتواند مجوز دسترسی کاربر به یک api باشد.
Jwt چیست؟
۴ دقیقه و ۳۴ ثانیه
در این بخش با سایت jwt.io و مکانیزم انکدینگ در jwt آشنا میشویم و ساختار توکن را بررسی میکنیم.
تنظیمات اولیه برای راه اندازی Jwt روی پروژه
۱۰ دقیقه و ۵۳ ثانیه
در این بخش با تنظیمات Startup به منظور استفاده از قابلیت ولیدیشن توکن آشنا میشویم
چطور توکن تولید کنیم؟
۱۵ دقیقه و ۹ ثانیه
در این بخش متد لاگین را به شکل شبه کد مینویسیم و بر اساس توکنی که تولید میکنیم دسترسی به یک api تستی را بررسی میکنیم. همچنین به مفهوم Claim و استخراج اطلاعات Claim در این بخش میپردازیم
چطور کلمه عبور مطمئن بسازیم
۲ دقیقه و ۵۷ ثانیه
در این بخش یکی از روش های خوب ذخیره سازی کلمه عبور را بررسی میکنیم
جدول کاربران و نحوه ذخیره کلمه عبور
۳ دقیقه و ۵۰ ثانیه
در این بخش جدول User را میسازیم و تایپ ستون کلمه عبور را بررسی میکنیم.
ثبت نام کاربر
۲۵ دقیقه و ۱ ثانیه
متد ثبت نام کاربر را پیادهسازی میکنیم
لاگین کاربر
۱۷ دقیقه و ۱ ثانیه
متد لاگین کاربر را پیاده سازی میکنیم
تست ثبت نام و لاگین
۵ دقیقه و ۲۸ ثانیه
در این بخش api هایی که تا الان پیاده سازی شده اند را تست میکنیم و مکانیزم توکن سازی را بررسی میکنیم.