این دوره یک راهنمای عمیق، عملی و صریح برای GRASP است - نه یک مرور تئوریک و نه یک ارائه اسلایدمحور انتزاعی.
اصول GRASP یکی از مفاهیمی است که بیشترین سوءتفاهم و استفاده نادرست در طراحی شیگرا را دارد. بسیاری از توسعهدهندگان نام این اصول را شنیدهاند، اما تقریباً هیچکس نمیداند چگونه آنها را به درستی به کار ببرد، کجا با هم تداخل دارند و تصمیمات واقعی طراحی چگونه گرفته میشوند. این دوره این مشکل را حل میکند.
شما فقط یاد نمیگیرید که هر اصل GRASP چیست.
شما یاد میگیرید که چگونه مانند یک طراح فکر کنید.
چه چیزی این دوره را متفاوت میکند؟
این یک دوره تعریف مفاهیم نیست.
این یک دوره تصمیمگیری است.
شما خواهید دید:
چرا GRASP بنیادینتر از SOLID است
چرا بسیاری از «بهترین روشها» (Best Practices) مستقیماً اصول GRASP را نقض میکنند
چرا پیروی کورکورانه از اصول، منجر به طراحیهای بدتر میشود
معماران حرفهای چگونه توازن بین Trade-offها را برقرار میکنند
هر اصل از طریق موارد زیر توضیح داده میشود:
مدلهای ذهنی شفاف
مثالهای واقعی مبتنی بر دامنه (Domain-driven)
ضدالگوهای صریح
ریفاکتورینگ زنده و دموها
زمینه معماری، نه کلاسهای ایزوله
آنچه خواهید آموخت
شما در تخصیص مسئولیتها (Responsibility Assignment) استاد خواهید شد که مهارت اصلی در پس تمام سیستمهای شیگرای خوب است.
به طور خاص، یاد میگیرید که چگونه:
متخصص اطلاعات (Information Expert) واقعی را در مدل دامنه شناسایی کنید، به جای ایجاد متخصصهای جعلی و کلاسهای داده (Data Classes)
تصمیم بگیرید چه زمانی جفتشدگی پایین (Low Coupling) مهمتر از جایگذاری کامل مسئولیت است
از ایجاد کنترلرهای خدایی (God Controllers) اجتناب کرده و رویدادهای سیستم را به درستی به کنترلرها مپ کنید
کلاسها را با پیوستگی بالا (High Cohesion) طراحی کرده و نقضهای پیوستگی را در مراحل اولیه شناسایی کنید
دستورات شرطی را با چندریختی (Polymorphism) جایگزین کنید، تنها زمانی که واقعاً طراحی را بهبود ببخشد
از Pure Fabrication استفاده کنید بدون اینکه سیستم خود را به مجموعهای از سرویسهای پراکنده تبدیل کنید
از Indirection برای کاهش جفتشدگی بدون از بین بردن شفافیت استفاده کنید
از بخشهای ناپایدار سیستم با استفاده از Protected Variations و انتزاعها محافظت کنید
هر مبحث شامل موارد زیر است:
مثالهای صحیح
مثالهای غلط
توضیح شفاف در مورد اینکه چرا یک طراحی شکست میخورد و دیگری موفق میشود
فراتر از اصول تکبهتک
اصول GRASP به صورت ایزوله عمل نمیکنند. این دوره صراحتاً آموزش میدهد که آنها چگونه با هم تعامل دارند.
شما درک خواهید کرد:
چرا Information Expert اغلب با Low Coupling در تضاد است
چرا Polymorphism و Protected Variations یکدیگر را تقویت میکنند
تصمیمات مربوط به کنترلر چگونه بر پیوستگی و جفتشدگی در لایههای مختلف تأثیر میگذارد
زمانی که قوانین با هم تداخل دارند، چگونه اصل غالب را انتخاب کنید
این بخشی است که اکثر دورهها کاملاً نادیده میگیرند.
GRASP در معماری واقعی
اصول GRASP فقط مربوط به کلاسها نیست.
خواهید دید که این اصول چگونه در لایههای معماری اعمال میشوند:
لایه دامنه (Domain): مسئولیت، رفتار و مدلسازی
لایه اپلیکیشن (Application): ارکستراسیون و جریان کنترل
لایه زیرساخت (Infrastructure): مرزها، Indirection و ایزولهسازی تغییرات
موارد واضحی که در آنها GRASP اصلاً نباید اعمال شود
دیگر از استفاده نادرست از GRASP در جاهایی که کاربرد ندارد، دست برمیدارید.
مقایسه GRASP در مقابل SOLID و GoF
این دوره به وضوح توضیح میدهد:
GRASP در واقع چه مشکلاتی را حل میکند
چرا SOLID دیرتر آمد و بر اساس ایدههای GRASP بنا شد
الگوهای GoF چگونه به طور طبیعی از تصمیمات GRASP بیرون میآیند
چگونه اصول GRASP را به SOLID و GoF مپ کنید بدون اینکه دچار تقلید کورکورانه شوید
بعد از این بخش، اصول طراحی بالاخره به عنوان یک «سیستم» معنا پیدا میکنند، نه فقط یک «چکلیست».
این دوره برای چه کسانی است؟
این دوره برای شما ایدهآل است اگر:
کد شیگرا مینویسید اما احساس میکنید طراحیهای شما به مرور زمان افت کیفیت میکنند
اصول SOLID را میشناسید اما در بهکارگیری سازگار آن مشکل دارید
میخواهید از «کدی که فقط کار میکند» به «کدی که ماندگار است» برسید
هدف شما تفکر مانند یک مهندس ارشد یا معمار نرمافزار است
از توصیههای مبهم خسته شدهاید و استدلالهای طراحی شفاف میخواهید
نتیجه نهایی
پس از اتمام این دوره، شما قادر خواهید بود:
کلاسها را با اعتمادبهنفس طراحی کنید
تصمیمات طراحی خود را توضیح داده و از آنها دفاع کنید
طراحیهای بد را بلافاصله شناسایی کنید
اصول GRASP را به صورت طبیعی و نه مکانیکی اعمال کنید
سیستمهایی بنویسید که تغییر، تست و توسعه آنها آسانتر باشد
این دوره قوانین را آموزش نمیدهد.
این دوره «قدرت تشخیص» را آموزش میدهد.
اگر میخواهید واقعاً طراحی شیگرا را در هسته اصلیاش درک کنید، این همان دورهای است که به دنبالش بودید.
Andrii Piatakha
بنیانگذار و مدیر عامل شرکت IT-Bulls ، بنیانگذار بستر Learn-IT بنیانگذار و مدیر عامل شرکت IT-Bulls. خالق برنامه موبایل Learn-IT برای افرادی که می خواهند آماده مصاحبه و یادگیری جاوا شوند. مدرس با 4+ سال تجربه. مربی کلیدی جاوا در شرکت های برون سپاری. Andrii کمک می کند تا مهندسان نرم افزار جاوا را از صفر تا تعیین تکلیف اول به آنها آموزش دهد. دوره جاوا وی برای آموزش افرادی با دانش برنامه نویسی صفر استفاده می شود تا آنها را برای کار واقعی در شرکت های مختلف آماده کند. هنگامی که دوره های Andrii را می گذرانید می توانید مطمئن باشید که چیزهای درست را در کمترین زمان ممکن به روش صحیح فرا خواهید گرفت. تمام دوره های Andrii توسط داستان و موفقیت دانشجویان ثابت می شود. در گذشته همه مدرسان برنامه نویس حرفه ای نبودند. تجربه مهندسی زیاد به آندری اجازه داد تا شرکت IT خود را اداره کند. در طول تدریس ، آندری توجه دانش آموزان را فقط به مهمترین موارد متمرکز می کند.
نمایش نظرات