[Udemy] Чистая архитектура на практике [Денис Цветцих]

80

Чистая архитектура в продакшене. Миграция со слоистой архитектуры на чистую. Масштабирование чистой архитектуры
Чему вы научитесь

  • Применение чистой архитектуры в продакшен-проектах
  • Масштабирование проекта от стартапа к большому проекту в соответствии с чистой архитектурой
  • Руководство по перепроектированию от слоистой к чистой архитектуре

Требования

  • Базовые знания C#

Описание
О чем этот курс?

Курс показывает слушателю как применять чистую архитектуру на практике при разработке бэкенда бизнес-приложений (да-да, тот самый кровавый enterprise). В качестве демо-проекта используется интернет-магазин, не по наслышке знакомый огромному количеству программистов. Дядя Боб говорит о том, что количество компонентов может меняться, однако он не говорит какие компоненты могут добавляться и для решения каких задач. Курс показывает какие компоненты нужно будет создавать кто тех, что описаны Дядей Бобом, каково содержимое каждого компонента и какими будут ссылки между компонентами.
Также вы найдете ответы на вопросы:

  • Куда поместить сross-cutting сoncerns (сквозная функциональность) и хелперы, которые есть в любом реальном проекте
  • Обязательно ли использовать Rich-модель и как изменится архитектура при использовании анемичной модели
  • Чем отличается и где находится бизнес-логика и логика приложения
  • Как организовать доступ к данным, обязательно ли создавать абстракцию для ORM в виде репозиториев
  • Как изменится архитектура, если в системе будет много интеграций с внешними системами и инфраструктуры
  • Какие есть подходы к реализации интерактора, какой подход лучше выбрать и почему
  • Какова роль ApplicationServices в чистой архитектуре
  • Контроллеры Дяди Боба и контроллеры MVC-фреймворка — это одно и то же или нет
  • Всегда ли работает правило зависимостей
  • Нужно ли писать обертки для всех используемых в проекте библиотек и фреймворков

Демо-приложение изначально реализовано по слоистой архитектуре. По ходу погружения в чистую архитектуру происходит поэтапное перепроектирование проекта в соответствии с чистой архитектурой. Так что слушатели курса получат подробный гайд по миграции любой существующей системы на чистую архитектуру.
Отдельно рассматривается вопрос масштабирования архитектуры. Курс показывает как реализовать в соответствии с чистой архитектурой минимальный проект, а потом масштабировать его, н потеряв соответствие чистой архитектуре. В качестве минимального проекта показан микросервис, он масштабируется до стартапа, стартап — до среднего проекта, а средний — до большого, в котором будет несколько входных точек (Backend For Frontend).
Наконец, рассматриваются два популярных демо-проекта с гитхаба, который реализованы в соответствии с чистой архитектурой. Производится обзор и анализ архитектуры этих проектов, их достоинств и недостатков (последних, увы, будет немало). И, конечно, показывается как отрефакторить эти проекты в соответствии с чистой архитектурой.
Что такое чистая архитектура?
Чистая архитектура была предложена Дядей Бобом. Она основана на созданных до него луковой и гексагональной (ее еще называют «порты и адаптеры») архитектурах, однако содержит достаточно много нового. Чистая архитектура говорит о том, что ядром системы должны быть бизнес-сущности и бизнес-правила, независимые от инфраструктуры (например, базы данных). Следующий слой — юскейсы, это реализация логики приложения. Далее слой контроллеров, а вся инфраструктура находится на внешнем слое фреймворков. При этом действует правило зависимостей: внешние слои могут использовать внутренние, но внутренние не могут использовать внешние.
Курс отвечает на вопрос в чем похожи и чем отличаются эти три архитектуры, а также в чем их принципиальная разница со слоистой архитектурой. Курс рассказывает как реализовать проект, соответствующий сразу и чистой, и луковой, и гексагональной архитектурам.
Для кого этот курс?
Курс предназначен для backend-разработчиков бизнес-приложений, которые хотят чувствовать гордость за проделанную работу, создавая системы, в которых добавление новых фич и исправление багов вызывает радость и счастье, а не боль и страдание.
Демо-проект курса сделан на C# и ASP.NET Core, но без использования специфических фич как языка программирования, так и платформы. Так что идеи и подходы, описанные в курсе, будут понятны и полезны backend-разработчикам на любом языке программирования и любой платформе (Java, Python, JavaScript, Ruby, Go, PHP итд).
Для кого этот курс:

  • Middle и Senior разработчики
  • Архитекторы
  • Тимлиды и Техлиды