تسلط به اصول GRASP در طراحی شیءگرا
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- هدف واقعی GRASP و اینکه چرا برای طراحی شیءگرا ضروری است را درک کنید.
- تخصیص صحیح مسئولیتها با Information Expert به جای حدس و گمان
- طراحی کنترلرهایی که رویدادهای سیستم را بدون تبدیل شدن به کلاسهای God مدیریت میکنند.
- ایجاد تعادل بین Low Coupling و انسجام بالا در تصمیمگیریهای واقعی طراحی
- جایگزینی شرطیها با پلیمورفیسم، فقط زمانی که باعث بهبود قابلیت نگهداری میشود.
- اعمال Pure Fabrication بدون تخریب مدل دامنه
- استفاده از Indirection برای کاهش coupling و در عین حال حفظ شفافیت
- محافظت از بخشهای ناپایدار سیستم با تغییرات محافظت شده
- شناسایی و فیکس کردن ضدالگوهای رایج GRASP در کدهای موجود
- انجام مبادله صریح در زمان تعارض اصول GRASP
- اعمال GRASP در لایههای دامنه، اپلیکیشن و زیرساخت
- چگونگی ارتباط GRASP با الگوهای طراحی SOLID و GoF را درک کنید.
پیشنیازهای دوره
- دانش اولیه در مورد مفاهیم برنامهنویسی شیءگرا (کلاسها، اشیا، وراثت و رابطها)
- تجربه کار با حداقل یک زبان شیءگرا (جاوا، سی شارپ یا مشابه آنها)
- توانایی خواندن و درک نمودارهای کلاس ساده و نمونه کدها
- آشنایی با مفاهیم اولیه طراحی مانند کپسولهسازی و تفکیک نگرانیها
- بدون نیاز به دانش قبلی در مورد GRASP
توضیحات دوره
این دوره یک راهنمای عمیق، کاربردی و صادقانه برای GRASP است و یک بررسی تئوری یا انتزاعی مبتنی بر اسلاید نمیباشد.
اصول GRASP یکی از مفاهیم پایهای طراحی شیءگرا است که به شدت مورد سواستفاده قرار گرفته است. بسیاری از توسعهدهندگان نام این اصول را شنیدهاند، اما تقریباً هیچکس نمیداند چگونه آنها را به درستی به کار بگیرد، چگونه با هم تعارض دارند و تصمیمهای واقعی طراحی واقعا چگونه اتخاذ میشوند. این دوره این مشکل را حل میکند.
شما فقط یاد نمیگیرید هر اصل GRASP چیست.
شما یاد میگیرید چگونه مانند یک طراح فکر کنید.
آنچه این دوره را متفاوت میکند:
- یک دوره برای تعاریف نیست.
- یک دوره درباره تصمیمگیری است.
آنچه خواهید دید:
- چرا GRASP ضروریتر از SOLID است؟
- چرا بسیاری از «بهترین شیوهها» مستقیماً GRASP را نقض میکنند؟
- چرا پیروی کورکورانه از اصول باعث ایجاد طراحیهای بدتر میشود؟
- معماران حرفهای در واقعیت چگونه در مبادلهها تعادل برقرار میکنند؟
هر اصل را از طریق موارد زیر توضیح میدهیم:
- مدلهای ذهنی شفاف
- مثالهای واقعی مبتنی بر دامنه
- ضدالگوهای صریح
- ریفکتورینگ لایو و دموها
- زمینه معماری، نه کلاسهای ایزوله شده
آنچه یاد خواهید گرفت:
شما به تخصیص مسئولیت مسلط خواهید شد که مهارت اصلی پشت تمام سیستمهای شیءگرای خوب است.
هر موضوع شامل موارد زیر است:
- مثالهای صحیح
- مثالهای نادرست
- توضیح شفاف در مورد اینکه چرا یک طراحی شکست میخورد و دیگری موفق میشود.
فراتر از اصول فردی:
اصول GRASP به صورت جداگانه کار نمیکنند. این دوره به صراحت تعامل آنها با یکدیگر را آموزش میدهد.
شما درک خواهید کرد:
- چرا Information Expert اغلب با Low Coupling تعارض دارد؟
- چرا پلیمورفیسم و تغییرات محافظت شده یکدیگر را تقویت میکنند؟
- تصمیمگیریهای مربوط به کنترلر چگونه بر انسجام و coupling در لایهها تأثیر میگذارند؟
- چگونه در زمان تعارض قوانین، اصل غالب را انتخاب کنیم؟
این بخش را اکثر دورهها کاملاً نادیده میگیرند.
GRASP در معماری واقعی:
اصول GRASP فقط در مورد کلاسها نیست.
شما خواهید دید چگونه در لایههای معماری اعمال میشود:
- لایه دامنه: مسئولیت، رفتار و مدلسازی
- لایه اپلیکیشن: ارکستراسیون و کنترل جریان
- لایه زیرساخت: مرزها، indirection و جداسازی تغییرات
- موارد واضحی که در آنها GRASP اصلاً نباید اعمال شود.
استفاده نادرست از GRASP در جاهایی که به آن تعلق ندارد را متوقف خواهید کرد.
GRASP در مقابل SOLID در مقابل GoF:
این دوره به وضوح موضوعات زیر را توضیح میدهد:
- GRASP واقعاً چه مشکلاتی را حل میکند؟
- چرا SOLID بعداً آمد و بر پایه ایدههای GRASP ساخته شد؟
- چگونه الگوهای GoF بهطور طبیعی از تصمیمگیریهای GRASP پدیدار میشوند؟
- چگونه بدون محمولهپرستی اصول GRASP را به SOLID و GoF نقشهبرداری کنیم؟
بعد از این بخش، اصول طراحی بالاخره به عنوان یک سیستم برای شما معنا پیدا میکنند و دیگر صرفا چکلیست نیستند.
این دوره برای شما ایدهآل است، اگر:
- کد شیءگرا مینویسید، اما احساس میکنید طراحیهای شما به مرور زمان فرسوده میشوند.
- اصول SOLID را میشناسید، اما در اجرای مداوم آن با مشکل روبرو هستید.
- میخواهید از «کدی که کار میکند» به سمت «کدی که ماندگار است» حرکت کنید.
- هدف شما این است که مانند یک مهندس ارشد یا معمار نرمافزار فکر کنید.
- از نصیحتهای مبهم خسته شدهاید و به دنبال استدلالهای طراحی شفاف هستید.
نتیجه:
پس از اتمام این دوره، شما به موارد زیر دست پیدا خواهید کرد:
- کلاسها را با اعتمادبهنفس طراحی میکنید.
- تصمیمگیریهای طراحی خود را توضیح داده و از آنها دفاع میکنید.
- طراحیهای بد را بلافاصله تشخیص میدهید.
- GRASP را بهصورت طبیعی و نه مکانیکی اعمال میکنید.
- سیستمهایی مینویسید که تغییر، تست و گسترش آنها آسانتر است.
این دوره قانونها را یاد نمیدهد.
قضاوت کردن را آموزش میدهد.
اگر میخواهید طراحی شیءگرا را واقعا درک کنید، این همان دورهای است که به دنبال آن بودید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان نرمافزار که در کار روزانه خود از برنامهنویسی شیءگرا استفاده میکنند.
- توسعهدهندگان سطح مقدماتی و متوسط که میخواهند مهارتهای طراحی خود را ارتقا دهند.
- توسعهدهندگان ارشد که میخواهند تفکر طراحی خود را تقویت و سیستماتیک کنند.
- معماران نرمافزار که به دنبال یک فریمورک طراحی شفاف مبتنی بر مسئولیت هستند.
- توسعهدهندگان آشنا با SOLID که میخواهند اصول عمیقتر را درک کنند.
- مهندسانی که با پایگاه کدهای شیءگرای قدیمی کار میکنند و به راهنمای بهتری برای ریفکتورینگ نیاز دارند.
تسلط به اصول GRASP در طراحی شیءگرا
-
آشنایی با GRASP 17:46
-
Information Expert 20:11
-
سازنده 24:43
-
کنترلر 27:12
-
Low Coupling 26:39
-
انسجام بالا 27:29
-
پلیمورفیسم 27:05
-
Pure Fabrication 22:27
-
Indirection 24:43
-
تغییرات محافظت شده 25:32
-
الگوهای GRASP چگونه تعامل برقرار میکنند؟ 18:23
-
GRASP در لایههای معماری 19:35
-
GRASP در مقابل SOLID در مقابل GoF 15:57
مشخصات آموزش
تسلط به اصول GRASP در طراحی شیءگرا
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:همه سطوح
- تعداد درس:13
- مدت زمان :04:58:26
- حجم :3.75GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy