Мова викладання в курсі — російська. Незабаром буде доступна українська версія цього курсу.
Відеозаписи лекцій без зворотного зв'язку та участі викладача. Ви отримаєте доступ до матеріалів одразу після оплати.
Чого ви навчитеся
— Определение количества зависимостей класса
— Применение 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
— Архитектура и дизайн
Відгуки
Відгуків немає, поки що.