همه ما میخواهیم توسعهدهندگان نرمافزار بهتری شویم و بتوانیم خود را «مهندسین نرمافزار» یا «معمار نرمافزار» بنامیم، اما برای انجام این کار ابتدا باید بر تعدادی از الگوهای طراحی تسلط داشته باشید.
این دوره شما را در مسیر رسیدن به آن مقصد قرار می دهد.
ما به شما یاد میدهیم که چگونه تشخیص دهید که چه زمانی از الگوهای طراحی خاص برای ساختن سیستمهای پیچیده به شیوهای تقسیم و غلبه کنید تا پیچیدگی کاهش یافته و انتزاع شود.
اما به جای یادگیری همه الگوهای طراحی، مهمترین و برترین الگوهای طراحی GoF را برای شما انتخاب کردهایم.
همه اینها در چارچوب Flutter Framework با استفاده از دارت.
ما با درک کامل از اصول طراحی S.O.L.I.D و نحوه ارتباط آنها با آن الگوهای طراحی شروع می کنیم. ما همه چیز را در زمینه مشکلات real-wprld و همچنین نمونه های کد خاص توضیح می دهیم.
در پایان دوره، با کدنویسی شبیهسازی بازی زندگی جان کانوی که روی دستگاه تلفن همراه شما اجرا میشود، به راهحل معمار خواهید رسید.
سیستم های نرم افزاری پیچیده با سه مشکل عمده مواجه هستند:
زمانبندیها با تغییر نیازمندیها طولانی میشوند.
چند برنامهنویس برای هماهنگ کردن تلاشهای خود مشکل دارند.
افزونگی کد.
این به نوبه خود مشکلاتی را با نگهداری و انعطافپذیری کلی برای افزودن ویژگیهای جدید ایجاد میکند. به طور کلی این به معنای سیستمهایی است که طراحی ضعیفی دارند و نگهداری آنها سخت است و سازگار نیستند.
یک پاسخ به تمام مشکلات فوق داشتن طراحی و معماری مناسب است. به ساخت یک آسمان خراش فکر کنید. همیشه یک طرح اولیه در سطح بالا وجود دارد. این طرح برای نشان دادن همه افراد درگیر (از معماران گرفته تا زنجیره تامین گرفته تا کارگران ساختمانی تا زمانبندی ماشینآلات و غیره) مورد استفاده قرار میگیرد.
همه یک دیدگاه را میفهمند و از آن پیروی میکنند.
یک طرح اولیه دارای تعدادی عناصر رایج است که در بسیاری از پروژه ها تکرار می شوند. به عنوان مثال، همه ساختمان ها به سیم کشی برق و لوله کشی نیاز دارند، ممکن است به آسانسور، سیستم های خنک کننده، و پارکینگ های زیرزمینی و البته پله ها نیاز داشته باشند. آنها همچنین معمولاً به شبکه برق و منبع آب و همچنین ... جاده ها متصل هستند.
همه این عناصر مشترک از استانداردهای خاصی پیروی می کنند که در طی سالیان متمادی و در بسیاری از پروژه ها بهبود یافته اند. آنها به خوبی درک شده اند و تقریباً مانند دستور العمل ها قابل استفاده هستند.
در مهندسی نرم افزار ما همچنین مجموعه ای از عناصر داریم که خود را در بسیاری از پروژه ها تکرار می کنند. به عنوان مثال، همه برنامه های نرم افزاری نیاز به ایجاد اشیاء دارند، آنها باید تغییر حالت را در سراسر آن اشیاء ارتباط برقرار کنند، آنها باید بتوانند از مجموعه هایی از آن اشیا عبور کنند. به عبارت دیگر، اگر میخواهید توسعهدهنده بهتری باشید، باید در عناصری که زمان تست شدهاند، مهارت داشته باشید. در دنیای مهندسی نرم افزار، این عناصر به عنوان "الگوهای طراحی"
شناخته می شونداین دوره به دانشآموزان آموزش میدهد که چگونه تشخیص دهند که چه زمانی از الگوهای طراحی خاص برای ساختن سیستمهای پیچیده به شیوهای تقسیم کن و غلبه کن، به طوری که پیچیدگی کاهش و انتزاع شود.
این به شما کمک میکند تا پروژهها را به شیوهای معماری طراحی کنید قبل از هر گونه توسعه بزرگ و میتوان از آن برای کوتاه کردن زمان توسعه و کاهش هزینههای نگهداری استفاده کرد.
الگوهای طراحی مهم هستند زیرا دستور العمل های آزمایش شده یا راه حل هایی برای مشکلات شناخته شده مهندسی نرم افزار هستند. هنگام ایجاد برنامههای نرمافزاری، مشکلات خاصی بهصورت کاملاً قابل پیشبینی تکرار میشوند، بنابراین بهجای «اختراع مجدد» چرخ، در صورت تمایل، مجموعهای از چرخها را برای انتخاب خواهیم داشت.
ما این را به روشی کمی متفاوت از آنچه احتمالاً قبلاً آموزش داده اید به شما آموزش خواهیم داد. ما یک رویکرد عملی (یعنی نمونههای خاص) خواهیم داشت، اما قدرت الگوهای طراحی از «مفهوم» آنها نشأت میگیرد و مفهوم آن الگوهای طراحی را به شما آموزش میدهیم تا کاملاً بتوانید آنها را تغییر دهید و مطابق با نیاز خود تغییر دهید. علاوه بر این، نحوه ترکیب همه آن الگوها را در چیزی بزرگتر بررسی خواهیم کرد: یک معماری.
یک معماری خوب طراحی شده این چیز جادویی است که در آن کل بزرگتر از مجموع اجزای آن است.
این چیزی است که ما سعی خواهیم کرد به شما آموزش دهیم.
مهندس نرم افزار
نمایش نظرات