Python: SOLID Principles and Top Design Patterns
شرح

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

الزامات

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

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

فایل ها:
اصول جامد پایتون و الگوهای طراحی برتر
[TutsNode.net] - اصول جامد پایتون و الگوهای طراحی برتر
9. الگوی طراحی ناظر
3. کدنویسی با Observer Pattern.mp4 (135.0 مگابایت)
2. ملاحظات معماری برای الگوی طراحی Observer.mp4 (46.5 مگابایت)
1. درک الگوی طراحی Observer.mp4 (18.8 مگابایت)
4. تمرین کدگذاری الگوی طراحی Observer.mp4 (17.9 مگابایت)
3. آنچه که یک معماری عالی را می سازد
2.1 تمرین شماره 1.pdf (85.0 KB)
3. SOLID Principles Quiz.html (0.2 KB)
2. اصول طراحی S.O.L.I.D..mp4 (42.9 مگابایت)
1. نشانه های معماری خوب..mp4 (20.5 مگابایت)
4. الگوی طراحی Singleton
6.1 کدنویسی قسمت شماره 1 - پیاده سازی الگوی Singleton در Python.zip (4.0 KB)
7.1 کدنویسی بخش شماره 2 - نمونه های عملی Singleton. در Python.zip (3.2 کیلوبایت)
5. Singleton Quiz.html (0.2 KB)
6. کدنویسی قسمت شماره 1 - پیاده سازی الگوی Singleton در Python.mp4 (133.1 مگابایت)
7. کدنویسی قسمت شماره 2 - نمونه های عملی Singleton در Python.mp4 (132.4 مگابایت)
2. الگوی Singleton - ملاحظات معماری قسمت شماره 1 - Simple Approach.mp4 (64.5 مگابایت)
3. Singleton Pattern - Architectural Considerations Part #2 - Using Metaclasses.mp4 (49.6 MB)
1. درک الگوی Singleton.mp4 (40.9 مگابایت)
4. Singleton Pattern - Architectural Considerations Part #3 - Thread-Safety.mp4 (40.6 MB)
8. تمرینات کدگذاری الگوی تک تن.mp4 (14.7 مگابایت)
1. معرفی
3. آزمون سریع درباره خانواده‌های الگوی طراحی.html (0.2 کیلوبایت)
7. تنظیم IDE و Python Environment.mp4 (55.2 مگابایت)
8. آپشنال UML Refresher..mp4 (38.3 مگابایت)
4. The WHY Of Software Architecture..mp4 (27.5 مگابایت)
5. چرا از UML.mp4 (18.8 مگابایت) استفاده کنید
2. الگوهای طراحی پوشش داده شده در این دوره..mp4 (17.9 مگابایت)
1. الگوهای طراحی چیست و چرا به آنها نیاز داریم.mp4 (15.7 مگابایت)
6. کد سازماندهی شده در مقابل کد سازماندهی نشده..mp4 (10.1 مگابایت)
5. الگوی طراحی روش کارخانه
3.1 Coding_The_Factory_Method_Pattern_In_Python.zip (3.1 KB)
4. آزمون الگوی روش کارخانه.html (0.2 کیلوبایت)
3. کدگذاری الگوی روش کارخانه در Python.mp4 (118.9 مگابایت)
1. درک الگوی روش کارخانه.mp4 (65.8 مگابایت)
2. ملاحظات معماری برای الگوی روش کارخانه.mp4 (31.6 مگابایت)
5. تمرینات کدگذاری الگوی روش کارخانه.mp4 (10.6 مگابایت)
6. الگوی طراحی سازنده
4. Builder Pattern Quiz.html (0.2 KB)
1. درک الگوی طراحی سازنده.mp4 (73.5 مگابایت)
3. کدنویسی الگوی سازنده در Python.mp4 (53.7 مگابایت)
2. ملاحظات معماری برای الگوی طراحی سازنده.mp4 (38.8 مگابایت)
5. تمرینات کدگذاری الگوی طراحی سازنده.mp4 (5.5 مگابایت)
7. الگوی طراحی آداپتور
4. آزمون الگوی آداپتور.html (0.2 کیلوبایت)
3. کدنویسی الگوی آداپتور در Python.mp4 (53.0 مگابایت)
1. درک الگوی طراحی آداپتور.mp4 (43.6 مگابایت)
2. ملاحظات معماری برای الگوی آداپتور.mp4 (20.6 مگابایت)
5. تمرینات کدگذاری الگوی طراحی آداپتور.mp4 (10.9 مگابایت)
8. الگوی طراحی استراتژی
4. آزمون الگوی استراتژی.html (0.2 کیلوبایت)
3. کدنویسی الگوی طراحی استراتژی.mp4 (59.2 مگابایت)
1. درک الگوی طراحی استراتژی.mp4 (38.2 مگابایت)
2. ملاحظات معماری برای الگوی طراحی استراتژی.mp4 (32.0 مگابایت)
5. تمرین کدگذاری الگوی طراحی استراتژی.mp4 (16.0 مگابایت)
2. Python OOP Refresher
1. Python OOP Refresher - Theory Part #1.mp4 (88.8 مگابایت)
2. Python OOP Refresher - Theory Part #2.mp4 (75.3 مگابایت)
6. Python OOP Refresher - Code Studies Part #4.mp4 (51.7 مگابایت)
9. Python OOP Refresher - Code Studies Part #7.mp4 (50.2 مگابایت)
5. Python OOP Refresher - Code Studies Part #3.mp4 (40.9 مگابایت)
7. Python OOP Refresher - Code Studies Part #5.mp4 (39.3 مگابایت)
3. Python OOP Refresher - Code Studies Part #1.mp4 (37.9 مگابایت)
8. Python OOP Refresher - Code Studies Part #6.mp4 (33.9 مگابایت)
4. Python OOP Refresher - Code Studies Part #2.mp4 (15.9 مگابایت)
11. تکلیف دوره - بازی زندگی
1. درباره بازی John Conway's Game Of Life Simulation.mp4 (76.1 مگابایت)
2. سخنی در مورد معماری بازی زندگی.mp4 (14.9 مگابایت)
10. الگوی طراحی حالت
3. کدنویسی الگوی طراحی حالت.mp4 (61.3 مگابایت)
1. درک الگوی طراحی حالت.mp4 (60.6 مگابایت)
2. ملاحظات معماری برای الگوی طراحی دولتی.mp4 (35.7 مگابایت)
12. افکار نهایی
1. از اینجا به کجا می روید.mp4 (10.5 مگابایت)
2. ممنون!.mp4 (3.3 مگابایت)
TutsNode.net.txt (0.1 کیلوبایت)
[TGx]دانلود از torrentgalaxy.to .txt (0.6 کیلوبایت)
پد
0 (384.7 کیلوبایت)
1 (437.9 کیلوبایت)
2 (132.4 کیلوبایت)
3 (63.8 کیلوبایت)
4 (186.1 کیلوبایت)
5 (423.0 کیلوبایت)
6 (183.3 کیلوبایت)
7 (0.9 کیلوبایت)
8 (156.0 کیلوبایت)
9 (30.2 کیلوبایت)
10 (200.1 کیلوبایت)
11 (387.3 کیلوبایت)
12 (283.2 کیلوبایت)
13 (341.9 کیلوبایت)
14 (293.6 کیلوبایت)
15 (36.5 کیلوبایت)
16 (344.0 کیلوبایت)
17 (288.2 کیلوبایت)
18 (405.3 کیلوبایت)
19 (463.7 کیلوبایت)
20 (386.1 کیلوبایت)
21 (102.7 کیلوبایت)
22 (64.8 کیلوبایت)
23 (124.9 کیلوبایت)
24 (439.7 کیلوبایت)
25 (240.9 کیلوبایت)
26 (232.6 کیلوبایت)
27 (245.0 کیلوبایت)
28 (307.3 کیلوبایت)
29 (131.4 کیلوبایت)
30 (300.5 کیلوبایت)
31 (99.2 کیلوبایت)
32 (465.5 کیلوبایت)
33 (432.4 کیلوبایت)
34 (7.4 کیلوبایت)
35 (361.9 کیلوبایت)
36 (508.9 کیلوبایت)
37 (199.6 کیلوبایت)
38 (250.6 کیلوبایت)
39 (52.6 کیلوبایت)
40 (63.3 کیلوبایت)
41 (502.1 کیلوبایت)
42 (64.7 کیلوبایت)
43 (285.7 کیلوبایت)
44 (120.3 کیلوبایت)
45 (342.8 کیلوبایت)
46 (136.2 کیلوبایت)
47 (388.7 کیلوبایت)
48 (46.4 کیلوبایت)
49 (391.6 کیلوبایت)
50 (501.8 کیلوبایت)