جاوا: آموزش اصول SOLID و برترین الگوهای طراحی - آخرین آپدیت

دانلود Java: Master SOLID Principles and Top Design Patterns

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش جامع اصول SOLID و الگوهای طراحی GoF برای توسعه جاوا

معماری راهکارهای قدرتمند را بیاموزید!

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

آنچه در این دوره خواهید آموخت:

  • تسلط بر اصول S.O.L.I.D طراحی، همانند توسعه‌دهندگان ارشد مجرب.
  • درک عمیق از چیستی، چرایی و چگونگی الگوهای طراحی بنیادی.
  • یادگیری تشریح کامل معماری (با UML) هر الگو، همراه با سناریوهای دنیای واقعی با مثال‌های کدنویسی عملی برای هر الگو.
  • کار بر روی پروژه‌های عملی جاوا شیءگرا که درک شما از الگوها را عمیق‌تر و اساسی‌تر می‌کند.
  • یادگیری نحوه تشخیص بهترین الگو برای چالش‌های معماری مختلف.

پیش‌نیازها:

آشنایی اولیه با زبان برنامه‌نویسی جاوا ضروری است. در صورت نیاز، یک دوره یادآوری مفاهیم OOP نیز در دسترس است.

  • توانایی اجرای کدهای ارائه شده در دوره.
  • استفاده از Visual Studio Code به عنوان IDE (امکان استفاده از IDE دلخواه وجود دارد).
  • دسترسی به کامپیوتر با سیستم عامل Mac، Windows یا Linux. تمام ابزارها مستقل از سیستم عامل هستند.

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

این دوره شما را در مسیر رسیدن به این هدف قرار می‌دهد.

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

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

همه این‌ها در بستر زبان برنامه‌نویسی جاوا ارائه می‌شوند.

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

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

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

  1. افزایش زمان‌بندی به دلیل تغییر الزامات.
  2. مشکل هماهنگی تلاش‌های چند توسعه‌دهنده.
  3. تکرار کد.

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

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

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

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

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

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

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

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

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

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

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

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


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

Introduction

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

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

  • آزمون کوتاه درباره خانواده الگوهای طراحی (design pattern families) Quick Quiz about design pattern families

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

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

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

  • راه اندازی IDE و محیط Java Setting Up the IDE and Java Environment

  • *اختیاری*: یادآوری 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)

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

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

  • تمرین SOLID - اصل تفکیک اینترفیس (ISP) SOLID *Practice Session* - Interface Segregation Principle (ISP)

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

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

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

  • درک الگوی Singleton Understanding The Singleton Pattern

  • الگوی Singleton - ملاحظات معماری بخش #1 - رویکرد ساده Singleton Pattern - Architectural Considerations Part#1 - Simple Approach

  • بخش کدنویسی #1A - مثال عملی Logger با استفاده از Singleton ساده در Java Coding Part #1A - Practical Logger Example using Simple Singleton in Java

  • بخش کدنویسی #1B - مثال Abstract Logger با استفاده از Singleton ساده در Java Coding Part #1B- Abstract Logger Example using Simple Singleton in Java

  • بخش کدنویسی #1C - مثال کامل SOLID Logger با استفاده از Singleton ساده در Java Coding Part #1C- Full SOLID Logger Example using Simple Singleton in Java

  • کار با الگوی Singleton Working with the Singleton Pattern

  • الگوی Singleton - بازبینی ایمنی Thread - راه حل‌های بهتر Singleton Pattern - Thread-Safety Revisited - Better Solutions

  • الگوی Singleton - ملاحظات معماری بخش #2 - حملات Singleton Singleton Pattern - Architectural Considerations Part#2 - Singleton Attacks

  • الگوی Singleton - ملاحظات معماری بخش #3 - Enum Singletons Singleton Pattern - Architectural Considerations Part#3 - Enum Singletons

  • الگوی Singleton - بخش #1 - تمرینات کدنویسی **اضافی Singleton Pattern - Part#1 - **Extra** Coding Exercises

الگوی طراحی Factory Method Factory Method Design Pattern

  • درک الگوی Factory Method Understanding the Factory Method Pattern

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

  • کدنویسی الگوی Factory Method در Java Coding the Factory Method Pattern in Java

  • آزمون الگوی Factory Method Factory Method Pattern Quiz

  • تمرینات کدنویسی الگوی Factory Method Factory Method Pattern Coding Exercises

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

  • درک الگوی طراحی Builder Understanding Builder Design Pattern

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

  • کدنویسی الگوی Builder در Java Coding the Builder Pattern in Java

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

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

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

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

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

  • کدنویسی الگوی Adapter در Java Coding the Adapter Pattern in Java

  • آزمون الگوی Adapter Adapter Pattern Quiz

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

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

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

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

  • کدنویسی الگوی طراحی Strategy در Java Coding the Strategy Design Pattern in Java

  • آزمون الگوی Strategy Strategy Pattern Quiz

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

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

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

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

  • کدنویسی با الگوی Observer - برنامه Chat Coding With Observer Pattern - Chat Application

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

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

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

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

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

  • کدنویسی با الگوی State بخش #1 - معرفی برنامه Media Player Coding With State Pattern Part #1 - Introducing the Media Player Application

  • کدنویسی با الگوی State بخش #2 - معماری برنامه Media Player Coding With State Pattern Part #2 - Architecting Media Player Application

  • کدنویسی با الگوی State بخش #3 - کدنویسی برنامه Media Player Coding With State Pattern Part #3 - Coding the Media Player Application

تکلیف دوره - بازی زندگی 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!

نمایش نظرات

جاوا: آموزش اصول SOLID و برترین الگوهای طراحی
جزییات دوره
5.5 hours
52
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
154
4.9 از 5
دارد
دارد
دارد
Piotr Paweska
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Piotr Paweska Piotr Paweska

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