آموزش فلاتر و دارت: اصول جامد و الگوهای طراحی برتر

Flutter & Dart: SOLID Principles and Top Design Patterns

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: یاد بگیرید که چگونه کد فلاتر و دارت خود را از طریق تسلط بر اصول S.O.L.I.D و الگوهای طراحی برتر GoF بهبود بخشید. *به مهمترین و اساسی ترین الگوهای طراحی در مهندسی نرم افزار مدرن در چارچوب *Flutter* با استفاده از *Dart* مسلط شوید. درک عمیقی از چه، چرا و چگونه برای آن *الگوهای طراحی اساسی* داشته باشید. یک نمایشگاه کامل معماری (با UML) از هر الگو و همچنین سناریوهای *دنیای واقعی* با مثال های کدگذاری عملی برای هر الگو دریافت کنید. روی تکالیف مبتنی بر دارت کار کنید و آن ها را کامل کنید که درک شما از آن الگوها را عمیق تر و اساسی تر می کند. بیاموزید که چگونه *بهترین الگو* را برای چالش معماری داده شده شناسایی کنید. پیش نیازها: فرض بر این است که شما مسیر خود را در اطراف فلاتر و دارت می دانید. فقط تجربه اولیه مورد نیاز است. شما باید بتوانید کد Dart را که همراه با دوره ارائه شده است اجرا کنید. ما از کد ویژوال استودیو به عنوان IDE خود استفاده می کنیم، اما شما می توانید از هر IDE که دوست دارید استفاده کنید. دسترسی به کامپیوتر یک سیستم عامل مک، ویندوز یا لینوکس به همان اندازه خوب است. همه ابزارها مستقل از سیستم عامل هستند. شما باید به یک دستگاه تلفن همراه دسترسی داشته باشید اما این کاملاً ضروری نیست زیرا ابتدا کد خود را بر روی یک شبیه ساز/شبیه ساز توسعه می دهیم.

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

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

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

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


همه اینها در چارچوب Flutter Framework با استفاده از دارت.


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

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


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

  1. زمان‌بندی‌ها با تغییر نیازمندی‌ها طولانی می‌شوند.

  2. چند برنامه‌نویس برای هماهنگ کردن تلاش‌های خود مشکل دارند.

  3. افزونگی کد.

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

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


همه یک دیدگاه را می‌فهمند و از آن پیروی می‌کنند.


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

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

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

شناخته می شوند


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

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


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

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


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

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



سرفصل ها و درس ها

معرفی Introduction

  • الگوهای طراحی چیست و چرا به آنها نیاز داریم؟ What are Design Patterns and why do we need them?

  • الگوهای طراحی پوشش داده شده در این دوره. The Design Patterns Covered in This course.

  • آزمون سریع در مورد خانواده الگوهای طراحی Quick Quiz about design pattern families

  • چرا معماری نرم افزار. The WHY Of Software Architecture.

  • چرا از UML استفاده کنیم؟ Why use UML?

  • کد سازمان‌یافته در مقابل کد سازمان‌یافته. Organized vs. Unorganized code.

  • *اختیاری*: تجدید کننده UML. *OPTIONAL*: UML Refresher.

چه چیزی یک معماری عالی را می سازد؟ What makes a Great Architecture?

  • نشانه های معماری خوب Hallmarks of Good Architecture.

  • اصول طراحی S.O.L.I.D. S.O.L.I.D Design Principles.

  • SOLID *جلسه تمرین* - اصل مسئولیت واحد (SRP) SOLID *Practice Session* - Single Responsibility Principle(SRP)

  • جامد *جلسه تمرین* - اصل باز/بسته (OCP) SOLID *Practice Session* - Open/Closed Principle (OCP)

  • جامد *جلسه تمرین* - اصل تعویض لیسکوف (LSP) SOLID *Practice Session* - Liskov Substitution Principle (LSP)

  • SOLID *جلسه تمرین* - اصل جداسازی رابط (ISP) SOLID *Practice Session* - Interface Segregation Principle (ISP)

  • جامد *جلسه تمرین* - اصل وارونگی وابستگی (DIP) SOLID *Practice Session* - Dependency Inversion Principle (DIP)

  • آزمون اصول جامد SOLID Principles Quiz

الگوی طراحی Singleton Singleton Design Pattern

  • درک الگوی سینگلتون Understanding the Singleton Pattern

  • ملاحظات معماری برای الگوی Singleton Architectural Considerations for Singleton Pattern

  • کدگذاری الگوی Singleton در دارت Coding the Singleton Pattern in Dart

  • مسابقه تک تن Singleton Quiz

  • تمرینات کدگذاری الگوی تک تن Singleton Pattern Coding Exercises

الگوی طراحی روش کارخانه Factory Method Design Pattern

  • درک الگوی روش کارخانه Understanding Factory Method Pattern

  • ملاحظات معماری برای الگوی روش کارخانه Architectural Considerations for Factory Method Pattern

  • کدگذاری الگوی روش کارخانه در دارت Coding the Factory Method Pattern in Dart

  • آزمون الگوی روش کارخانه Factory Method Pattern Quiz

  • تمرینات کدگذاری الگوی روش کارخانه Factory Method Pattern Coding Exercises

الگوی طراحی سازنده Builder Design Pattern

  • درک الگوی طراحی سازنده Understanding Builder Design Pattern

  • ملاحظات معماری برای الگوی طراحی سازنده Architectural Considerations for Builder Design Pattern

  • کدگذاری الگوی سازنده در دارت Coding the Builder Pattern in Dart

  • آزمون الگوی سازنده Builder Pattern Quiz

  • تمرینات کدگذاری الگوی طراحی ساز Builder Design Pattern Coding Exercises

الگوی طراحی آداپتور Adapter Design Pattern

  • آشنایی با الگوی طراحی آداپتور Understanding the Adapter Design Pattern

  • ملاحظات معماری برای الگوی آداپتور Architectural Considerations for the Adapter Pattern

  • کدگذاری الگوی آداپتور در دارت Coding the Adapter Pattern In Dart

  • آزمون الگوی آداپتور Adapter Pattern Quiz

  • تمرینات کدگذاری الگوی طراحی آداپتور Adapter Design Pattern Coding Exercises

الگوی طراحی استراتژی Strategy Design Pattern

  • درک الگوی طراحی استراتژی Understanding the Strategy Design Pattern

  • ملاحظات معماری برای الگوی طراحی استراتژی Architectural Consideration for the Strategy Design Pattern

  • کدگذاری الگوی طراحی استراتژی Coding the Strategy Design Pattern

  • آزمون الگوی استراتژی Strategy Pattern Quiz

  • تمرین کدگذاری الگوی طراحی استراتژی Strategy Design Pattern Coding Exercise

الگوی طراحی ناظر Observer Design Pattern

  • درک الگوی طراحی مشاهدهگر Understanding the Observer Design Pattern

  • ملاحظات معماری برای الگوی طراحی Observer Architectural Consideration for the Observer Design Pattern

  • کدنویسی با الگوی طراحی Observer قسمت 1 - setState() Coding with Observer Design Pattern Part 1 - setState()

  • کدنویسی با الگوی طراحی Observer قسمت 2 - Streams Coding with Observer Design pattern Part 2 - Streams

  • آزمون الگوی مشاهده Observer Pattern Quiz

  • تمرین کدگذاری الگوی طراحی مشاهدهگر Observer Design Pattern Coding Exercise

الگوی طراحی دولتی State Design Pattern

  • درک الگوی طراحی حالت Understanding the State Design Pattern

  • ملاحظات معماری برای الگوی طراحی دولتی Architectural Consideration for the State Design Pattern

  • کدگذاری الگوی طراحی حالت Coding the State Design Pattern

تکلیف دوره - بازی زندگی Course Assignment - The Game of Life

  • درباره بازی شبیه سازی زندگی جان کانوی About John Conway's Game Of Life Simulation

  • سخنی در مورد معماری "بازی زندگی". A Word about the "Game of Life" Architecture

افکار نهایی Final Thoughts

  • از اینجا کجا میری؟ Where do you go from here?

  • متشکرم! Thank you!

نمایش نظرات

آموزش فلاتر و دارت: اصول جامد و الگوهای طراحی برتر
جزییات دوره
4 hours
45
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,830
4.6 از 5
دارد
دارد
دارد
Piotr Paweska
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Piotr Paweska Piotr Paweska

مهندس نرم افزار