Язык преподавания в курсе – русский. Вскоре будет доступна украинская версия этого курса.
Видеозаписи лекций без обратной связи и участия преподавателя. Вы получите доступ к материалам сразу после оплаты.
Чему вы научитесь
– Определение количества зависимостей класса
– Применение 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
– Архитектура и дизайн
Отзывы
Отзывов пока нет.