Мова викладання в курсі – російська. Незабаром буде доступна українська версія цього курсу.
Відеозаписи лекцій без зворотного зв’язку та участі викладача. Ви отримаєте доступ до матеріалів одразу після оплати.
Чого ви навчитеся
– Визначення кількості залежностей класу
– Застосування SRP для конкретизації класів
– Визначення запаху дублювання, спричиненого порушенням OCP
– Застосування OCP для усунення або запобігання дублювання коду
– Застосування ISP для конкретизації інтерфейсів
– Визначення порушень LSP, що ламають клієнтський код
– Застосування LSP для усунення неправильного успадкування
– Застосування DIP для побудови плагіноподібної архітектури
– Побудова свого елементарного (наївного) IoC-контейнера
– Побудова “чистого” API на C#
Вимоги
– Рівень впевненого Junior у C#, Java
– Бажаний досвід у реальному проєкті хоча б пів року
Для кого цей курс:
– Джуніори з упевненим знанням C#
– Міддли, які поки що невпевнено почуваються під час проєктування рішень на C#
Опис
SOLID – це абревіатура, що позначає SRP, OCP, LSP, ISP і DIP. Ці п’ять абревіатур, у свою чергу, означають:
– Принцип єдиної відповідальності (The Single Responsibility Principle)
– Принцип відкритості/закритості (The Open Closed Principle)
– Принцип підстановки Барбари Лісків (The Liskov Substitution Principle)
– Принцип розділення інтерфейсу (The Interface Segregation Principle)
– Принцип інверсії залежностей (The Dependency Inversion Principle) .
У цьому курсі ви дізнаєтеся як застосовувати SOLID і мета принципи, щоб ваш додаток прожив довге здорове життя. Це означає, що ви навчитеся писати якісний код: читабельний, розширюваний і надійний.
– Покращите свої знання в об’єктно-орієнтованому програмуванні
– Засвоїте метапринципи, на яких ґрунтуються всі інші принципи розроблення
– Навчіться розуміти симптоми наявності дефектів у коді
– Вивчіть основи принципів SOLID
– Дізнаєтеся, як виявляти порушення принципів SOLID та як розв’язувати проблеми
– Дізнаєтеся, як метапринципи й принципи SOLID пов’язані одне з одним та як знайти баланс між ними.
Основи побудови об’єктно-орієнтованої інфраструктури
Незважаючи на те, що C# – мова з багатим набором функцій, у реальному світі дуже часто можна побачити погано розроблені та реалізовані додатки. Мова сама по собі не гарантує, що архітектура додатка буде відмінною. Щоб розробляти і створювати підтримуване програмне забезпечення, нам необхідно розуміти принципи розроблення програмного забезпечення. Цей відеокурс якраз про те, як створювати чисте і зручне в обслуговуванні програмне забезпечення.
Ви, напевно, вже чули таке відоме твердження: більша частина коду – відстій. Цей курс присвячений тому, як створювати код, до якого не стосується це твердження.
Володіння навичками створення добре продуманих і реалізованих типів – необхідна умова для того, щоб інші розробники ставилися до вас як до справжнього професіонала.
Зміст та огляд
Цей курс призначений для досвідчених джуніорів і middle-розробників-початківців
Звісно, деякий досвід роботи з C # необхідний.
У цьому курсі є безліч прикладів коду, що допоможе вам засвоїти як теоретичний, так і практичний матеріал.
Починаючи з принципів SOLID, ми перейдемо до мета-принципів. У процесі вивчення принципів SOLID, ви також дізнаєтеся про пов’язані з ними патерни. Потім ми перейдемо до проблеми протиріч між різними принципами. Ви дізнаєтеся про взаємозв’язок між принципами SOLID і метапринципами.
Головними темами для вивчення в цьому курсі будуть:
– SRP
– OCP
– LSP
– ISP
– DIP
Це принципи SOLID. Ви дізнаєтеся про основні проблеми, які можна вирішити за допомогою певного принципу, що буде продемонстровано на практиці. Ви дізнаєтеся, які патерни пов’язані з кожним принципом.
Вивчаючи DIP, ви додатково дізнаєтеся, що таке впровадження залежностей, інверсія управління, контейнери IoC і які архітектурні наслідки DI.
А також до курсу включено такі теми:
– DRY – don’t repeat yourself
– KISS – keep it simple stupid
– YAGNI – You Ain’t Gonna Need It
– SoC – separation of concerns
– CQS – command query separation
– Law of Demeter
– Principle of Least Astonishment
– Information Hiding and Encapsulation
– API Development Principles
– Суперечності між SOLID і YAGNI
– Суперечності між OCP і YAGNI
– Що таке Архітектура і Проектування
Матеріали курсу
SRP і введення в SOLID
– Вступ до SOLID принципів
– Визначення SRP
– Демо порушення SRP
– Ще приклади порушення SRP
– Патерни пов’язані з SRP
– Висновки щодо секції
Принцип відкритості/закритості (OCP)
– Визначення OCP
– Демо порушення OCP
– Рефакторинг проблемного коду
– Патерни, пов’язані з OCP
– Запахи порушення OCP
– Висновки по секції
Принцип підстановки Лисків (LSP)
– Визначення LSP
– Контракти
– Демо порушення LSP
– Рефакторинг проблемного коду
– Ще приклади порушення LSP
– Запахи порушення LSP
– Висновки по секції
Принцип поділу інтерфейсу (ISP)
– Визначення ISP
– Демо порушення ISP
– Рефакторинг проблемного коду
– Демо порушення ISP #2
– Рефакторинг проблемного коду #2
– Запахи, рішення та пов’язані патерни
Принцип інверсії залежностей (DIP)
– Визначення DIP
– Залежності
– Волатильні та стабільні залежності
– Визначення IoC і DI
– Демо порушення DIP
– Рефакторинг проблемного коду
– Техніки DI
– Архітектура під час застосування DI
– Чистий DI та IoC-контейнери
– Побудова наївного IoC-контейнера
– Демо реалістичного додатка, побудованого з використанням IoC-контейнера
– Запахи порушення DIP
Метапринципи та SOLID
– DRY – Don’t Repeat Yourself
– KISS – Keep it Simple, Stupid
– YAGNI – You Ain’t Gonna Need It
– SoC – Separation of Concerns (розподіл відповідальностей)
– CQS (Command Query Separation) (розподіл команд і запитів)
– Принцип Деметри
– Принцип найменшого подиву
– Інкапсуляція та приховування інформації
– Загальні принципи побудови API
Метапринципи VS SOLID. Архітектура та дизайн
– SOLID vs YAGNI
– OCP vs YAGNI
– SRP vs ISP
– Архітектура та дизайн
Відгуки
Відгуків немає, поки що.