Архитектура ПО: Meta и SOLID принципы в ООП

Продвиньтесь в понимании ООП, изучая мета и SOLID принципы. Примеры кода на C#.

Ratings: 4.55 / 5.00




Description

Добро пожаловать на курс «Архитектура программного обеспечения: Meta и SOLID принципы в ООП».

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

  • Что такое Архитектура и Проектирование

Запишитесь на курс и начните изучать, как развивать архитектуру, учитывая принципы SOLID и мета-принципы.

What You Will Learn!

  • Определение количества зависимостей класса
  • Применение SRP для конкретизации классов
  • Определение запаха дублирования вызванного нарушением OCP
  • Применение OCP для устранения или предотвращения дублирования кода
  • Применение ISP для конкретизации интерфейсов
  • Определение нарушений LSP, ломающих клиентский код
  • Применение LSP для устранения неправильного наследования
  • Применение DIP для построения плагинообразной архитектуры
  • Построение своего элементарного (наивного) IoC-контейнера
  • Построение "чистого" API на C#

Who Should Attend!

  • Джуниоры с уверенным знанием C#
  • Миддлы, пока ещё неуверенно чувствующие себя при проектировании решений на C#