Чистая архитектура на практике

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

Ratings: 4.17 / 5.00




Description

О чем этот курс?

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

  • Куда поместить сross-cutting сoncerns (сквозная функциональность) и хелперы, которые есть в любом реальном проекте

  • Обязательно ли использовать Rich-модель и как изменится архитектура при использовании анемичной модели

  • Чем отличается и где находится бизнес-логика и логика приложения

  • Как организовать доступ к данным, обязательно ли создавать абстракцию для ORM в виде репозиториев

  • Как изменится архитектура, если в системе будет много интеграций с внешними системами и инфраструктуры

  • Какие есть подходы  к реализации интерактора, какой подход лучше выбрать и почему

  • Какова роль ApplicationServices в чистой архитектуре

  • Контроллеры Дяди Боба и контроллеры MVC-фреймворка - это одно и то же или нет

  • Всегда ли работает правило зависимостей

  • Нужно ли писать обертки для всех используемых в проекте библиотек и фреймворков

Демо-приложение изначально реализовано по слоистой архитектуре. По ходу погружения в чистую архитектуру происходит поэтапное перепроектирование проекта в соответствии с чистой архитектурой. Так что слушатели курса получат подробный гайд по миграции любой существующей системы на чистую архитектуру.

Отдельно рассматривается вопрос масштабирования архитектуры. Курс показывает как реализовать в соответствии с чистой архитектурой минимальный проект, а потом масштабировать его, н потеряв соответствие чистой архитектуре. В качестве минимального проекта показан микросервис, он масштабируется до стартапа, стартап - до среднего проекта, а средний - до большого, в котором будет несколько входных точек (Backend For Frontend).   

Наконец, рассматриваются два популярных демо-проекта с гитхаба, который реализованы в соответствии с чистой архитектурой. Производится обзор и анализ архитектуры этих проектов, их достоинств и недостатков (последних, увы, будет немало). И, конечно, показывается как отрефакторить эти проекты в соответствии с чистой архитектурой.

Что такое чистая архитектура?

Чистая архитектура была предложена Дядей Бобом. Она основана на созданных до него луковой и гексагональной (ее еще называют "порты и адаптеры") архитектурах, однако содержит достаточно много нового. Чистая архитектура говорит о том, что ядром системы должны быть бизнес-сущности и бизнес-правила, независимые от инфраструктуры (например, базы данных). Следующий слой - юскейсы, это реализация логики приложения. Далее слой контроллеров, а вся инфраструктура находится на внешнем слое фреймворков. При этом действует правило зависимостей: внешние слои могут использовать внутренние, но внутренние не могут использовать внешние.

Курс отвечает на вопрос в чем похожи и чем отличаются эти три архитектуры, а также в чем их принципиальная разница со слоистой архитектурой. Курс рассказывает как реализовать проект, соответствующий сразу и чистой, и луковой, и гексагональной архитектурам.

Для кого этот курс?

Курс предназначен для backend-разработчиков бизнес-приложений, которые хотят чувствовать гордость за проделанную работу, создавая системы, в которых добавление новых фич и исправление багов вызывает радость и счастье, а не боль и страдание.
Демо-проект курса сделан на C# и ASP.NET Core, но без использования специфических фич как языка программирования, так и платформы. Так что идеи и подходы, описанные в курсе, будут понятны и полезны backend-разработчикам на любом языке программирования и любой платформе (Java, Python, JavaScript, Ruby, Go, PHP итд).

What You Will Learn!

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

Who Should Attend!

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