Python: SOLID Principles and Top Design Patterns
شرح

همه ما می‌خواهیم توسعه‌دهندگان نرم‌افزار بهتری شویم و بتوانیم خود را «مهندس نرم‌افزار» یا «معمار نرم‌افزار» بنامیم، اما برای انجام این کار ابتدا باید بر تعدادی از الگوهای طراحی تسلط داشته باشید.

این دوره شما را در مسیر رسیدن به آن مقصد قرار می دهد.

ما به شما یاد خواهیم داد که چگونه تشخیص دهید که چه زمانی باید از الگوهای طراحی خاص برای ساختن سیستم‌های پیچیده به شیوه‌ای تقسیم و غلبه کنید تا پیچیدگی کاهش یافته و انتزاع شود.

اما به‌جای یادگیری همه الگوهای طراحی، مهم‌ترین، برترین الگوهای طراحی GoF را برای شما انتخاب کرده‌ایم.

همه اینها در زمینه پایتون شی گرا.

ما با درک کامل از اصول طراحی S.O.L.I.D و نحوه ارتباط آنها با آن الگوهای طراحی شروع می کنیم. ما همه چیز را در زمینه مشکلات دنیای واقعی و همچنین نمونه کدهای خاص توضیح می دهیم.

اگر به یک تجدید کننده Python OOP نیاز دارید، ما آن را برای شما داریم. همه چیز از کلاس ها تا رابط ها و کلاس های انتزاعی پوشش داده شده است. همچنین نحوه کدنویسی با استفاده از pygame (پلتفرم بازی پایتون) را به شما نشان خواهیم داد.

در پایان دوره با کدنویسی شبیه سازی بازی زندگی جان کانوی که روی دستگاه تلفن همراه شما اجرا می شود، به راه حل معمار خواهید رسید.

سیستم های نرم افزاری پیچیده با سه مشکل عمده روبرو هستند:

با تغییر نیازمندی ها، جدول زمانی طولانی می شود.
توسعه دهندگان متعدد برای هماهنگ کردن تلاش های خود مشکل دارند.
افزونگی کد.

این به نوبه خود مشکلاتی را با نگهداری و انعطاف پذیری کلی برای افزودن ویژگی های جدید ایجاد می کند. به طور کلی این بدان معنی است که سیستم هایی با طراحی ضعیف که نگهداری آنها سخت است و سازگار نیستند.

یک پاسخ به تمام مشکلات فوق داشتن طراحی و معماری مناسب است. به ساخت یک آسمان خراش فکر کنید. همیشه یک طرح اولیه در سطح بالا وجود دارد. این طرح برای نشان دادن همه افراد درگیر (از معماران گرفته تا زنجیره تامین گرفته تا کارگران ساختمانی تا زمان‌بندی ماشین‌آلات و غیره) مورد استفاده قرار می‌گیرد.

به این ترتیب، همه همان دیدگاه را می‌فهمند و دنبال می‌کنند.

یک طرح دارای تعدادی از عناصر رایج است که در بسیاری از پروژه ها تکرار می شوند. به عنوان مثال، همه ساختمان ها به سیم کشی برق و لوله کشی نیاز دارند، ممکن است به آسانسور، سیستم های خنک کننده، و پارکینگ های زیرزمینی و البته پله ها نیاز داشته باشند. آنها همچنین معمولاً به شبکه برق و منبع آب و همچنین ... جاده ها متصل هستند.

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

در مهندسی نرم افزار نیز مجموعه ای از عناصر داریم که در بسیاری از پروژه ها تکرار می شوند. به عنوان مثال، همه برنامه های نرم افزاری نیاز به ایجاد اشیاء دارند، آنها باید تغییر حالت را در سراسر آن اشیاء ارتباط برقرار کنند، آنها باید بتوانند از مجموعه هایی از آن اشیا عبور کنند. به عبارت دیگر، اگر می‌خواهید توسعه‌دهنده بهتری باشید، باید در عناصری که زمان تست شده‌اند، مهارت داشته باشید. در دنیای مهندسی نرم افزار این عناصر به عنوان "الگوهای طراحی" شناخته می شوند.

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

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

الگوهای طراحی مهم هستند زیرا دستور العمل های آزمایش شده یا راه حل هایی برای مشکلات شناخته شده مهندسی نرم افزار هستند. هنگام ایجاد برنامه‌های نرم‌افزاری، مشکلات خاصی به‌صورت کاملاً قابل پیش‌بینی تکرار می‌شوند، بنابراین به‌جای «اختراع مجدد» چرخ، در صورت تمایل، مجموعه‌ای از چرخ‌ها را برای انتخاب خواهیم داشت.

ما این را به روشی کمی متفاوت از آنچه قبلاً به شما آموزش داده شده است به شما آموزش خواهیم داد. ما یک رویکرد عملی (یعنی نمونه‌های خاص) خواهیم داشت، اما قدرت الگوهای طراحی از «مفهوم» آن‌ها نشأت می‌گیرد و مفهوم آن الگوهای طراحی را به شما آموزش می‌دهیم تا کاملاً بتوانید آنها را تغییر دهید و مطابق با نیاز خود تغییر دهید. علاوه بر این، چگونگی ترکیب همه آن الگوها را در چیزی بزرگتر بررسی خواهیم کرد: یک معماری.

یک معماری خوب طراحی شده این چیز جادویی است که در آن کل بزرگتر از مجموع اجزای آن است.

این چیزی است که ما سعی خواهیم کرد به شما آموزش دهیم.
این دوره برای چه کسانی است:

توسعه دهندگان *Python* که می خواهند طراحی، معمار و در نهایت *کد بهتر* را بیاموزند.
توسعه‌دهندگانی که می‌خواهند درک عمیقی از آنچه که معماری نرم‌افزار عالی را ایجاد می‌کند به دست آورند.

الزامات

فرض بر این است که شما راه خود را در پایتون می دانید. فقط تجربه اولیه مورد نیاز است. اگر به آن نیاز دارید، یک تجدید کننده OOP داریم.
شما باید بتوانید کد پایتون را که همراه با دوره ارائه شده است اجرا کنید. ما از کد ویژوال استودیو به عنوان IDE خود استفاده می کنیم، اما شما می توانید از هر IDE که دوست دارید استفاده کنید.
دسترسی به کامپیوتر. یک سیستم عامل مک، ویندوز یا لینوکس به همان اندازه خوب است. همه ابزارها مستقل از سیستم عامل هستند.

آخرین به روز رسانی 5/2023