Скачать C#: Создаём API для маркетплейса на микросервисах [Stepik] [Сергей Камянецкий]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
132.652
Реакции
76.218
Складчина: C#: Создаём API для маркетплейса на микросервисах [Stepik] [Сергей Камянецкий]



Курс предлагает комплексное обучение разработке микросервисов на .NET и C# с использованием современных технологий: CQRS, MediatR, gRPC, Marten, PostgreSQL, MySQL, Dapper, Entity Framework, Redis, RabbitMQ, MassTransit, Docker, Docker Compose, GitHub Actions, Serilog, ELK Stack, Prometheus, Grafana, k6 и Portainer.

Вы создадите микросервисы с продвинутой архитектурой, научитесь их тестировать, логировать и мониторить, а также организуете автоматическое управление инфраструктурой

Чему вы научитесь:

Использовать CQRS и MediatR для четкого разделения команд и запросов,
Настраивать и использовать базы данных PostgreSQL и MySQL с Marten, Dapper ORM и Entity Framework,
Версионировать и документировать API с помощью Swagger,
Реализовывать высокопроизводительный синхронный gRPC и асинхронный обмен сообщениями через RabbitMQ и MassTransit,
Внедрять Redis для кэширования и увеличения производительности,
Автоматизировать CI/CD процессы с GitHub Actions, создавать шаблоны проектов,
Строить централизованную систему логирования на базе Serilog и ELK Stack,
Настраивать сбор и визуализацию метрик через Prometheus и Grafana,
Проводить нагрузочное тестирование сервисов с k6,
Управлять контейнеризированной инфраструктурой с помощью Docker и Portainer,
Применять лучшие паттерны проектирования и практики аудита для повышения надежности приложений.
О курсе:

Этот курс — полное практическое пошаговое руководство по разработке микросервисов на .NET, охватывающее все этапы: от создания шаблона и архитектуры до настройки взаимодействия, логирования и мониторинга.
Вы научитесь строить масштабируемые, отказоустойчивые системы с использованием современных технологий: CQRS, gRPC, RabbitMQ, Docker, Serilog, ELK, Prometheus и Grafana.
Курс выделяется глубокой проработкой практических задач и интеграцией DevOps-процессов, таких как CI/CD и автоматизация. В процессе вы будете создавать и развивать реальные микросервисы, настраивать обмен сообщениями и кэширование, организовывать централизованное логирование и управлять контейнерами.
Курс разделен на модули с последовательными заданиями, которые помогут закрепить знания и сформировать комплексные навыки для профессиональной работы с микросервисной архитектурой.
Если вы не уверены в том, подходите вы для этого курса или нет - напишите мне
Курс идеально подходит для backend-разработчиков и архитекторов, желающих освоить современные практики построения микросервисной архитектуры от начала до production-уровня.
Для кого этот курс:

Курс предназначен для backend-разработчиков, архитекторов и инженеров DevOps, которые хотят освоить построение современных микросервисных решений на .NET. Он будет полезен тем, кто планирует разрабатывать распределённые системы с применением CI/CD, автоматизированной инфраструктуры, централизованного логирования, мониторинга и интеграций посредством gRPC и брокеров сообщений.
Перед началом требуется уверенное понимание отличий чистой архитектуры от слоёной, осознанное представление о назначении минимального API, принципах REST и практике работы с Docker. Человек, собирающийся пройти курс, должен хорошо отличать и применять паттерны проектирования — такие как CQRS, Декоратор, Спецификация — и понимать их место в архитектуре современных сервисов.
Курс будет особенно актуален:
разработчикам, переходящим от монолита к микросервисам;
специалистам, желающим внедрить лучшие практики аналитики, мониторинга и логирования в свои проекты;
разработчикам, которые хотят с нуля познакомиться с поэтапным построением современных приложений

Начальные требования:

Уверенное владение .NET и C#, знание принципов объектно-ориентированного программирования.
Практический опыт работы с ASP.NET Core и REST API.
Четкое понимание разницы между слоёной и чистой архитектурами, знание основных паттернов проектирования.
Опыт использования Docker и контейнеризации приложений.
Навыки работы с системами контроля версий (Git).
Базовое понимание работы с реляционными базами данных и основ SQL.
Способность работать с системой командной строки (CLI) и элементарно взаимодействовать с Linux-окружением приветствуется.
Желательно: базовое представление о брокерах сообщений и принципах обмена сообщениями между сервисами.
Программа курса:

Старт
Создание и публикация шаблона микросервиса
Создание и настройка микросервиса каталога
CQRS и MediatR в каталога
Расширение и Production-ready
Микросервис корзины: CQRS, кэширование и продакшн-подготовка
Микросервис промоакций на gRPC: CQRS, Dapper, MySQL и продакшн
Интеграция промосервиса и корзины
Микросервис заказов
Событийная интеграция с RabbitMQ: MassTransit
Инфраструктура


Спойлер: Подробно
Старт:

Приветствие
Описание проекта
Дополнение
Начало разработки
Создание и публикация шаблона микросервиса:

Введение в создание шаблона микросервиса
Создание структуры проекта с уточнением по файлу решения
Настройка зависимостей
Настройка Swagger для API документации
DependencyInjection для API слоя
DependencyInjection для остальных слоев
Настройка global usings директив
Создание GitHub Action workflow для автоматизации
Публикация пакета шаблона
Установка созданного шаблона
Использование шаблона для создания проектов
Публикация документации на GitHub Pages
Создание и настройка микросервиса каталога:

Инициализация проекта и создание первого микросервиса каталога
Настройка портов для микросервиса каталога
Создание сущностей BaseEntity, Brand, Category, CatalogItem
Добавление репозитория IBrandRepository
Добавление репозитория ICategoryRepository
Добавление репозитория ICatalogItemRepository
Обновление конфигурации подключения
Настройка Docker Compose для БД и DBeaver
Тестовые данные и интеграция библиотеки Marten с PostgreSQL
Класс для инициализации и наполнения БД тестовыми данными
Интеграция Marten и инициализация БД в DI контейнер
Реализация CatalogRepository с методами работы через Marten
Добавление пакета MediatR в проект
Запрос, обработчик и ответ для получения списка брендов
CQRS и MediatR в каталога:

BrandsController для получения брендов через MediatR
Регистрация MediatR и контроллеров в DI с MapControllers
Поддержка лицензии MediatR с ключом из конфигурации
Рефакторинг BrandsController на базовый ApiController
Исправление возврата результата в BrandsController
Версионирование API и обновление конфигурации Swagger
CQRS: запрос для получения категорий с техническим заданием
CQRS: запрос для получения товаров каталога
CQRS: запрос для получения товара по ID
CQRS: запрос для поиска товаров по названию
CQRS: запрос для получения товаров по бренду
Создание CatalogItem через CQRS с размышлениями о валидации
Расширение и Production-ready:

CQRS: команда для обновления товара
ТЗ CQRS: команда для удаления товара с техническим заданием
Универсальная модель пагинации Pagination
CQRS: запрос для получения товаров с пагинацией v2
CatalogItemControllerV2 для v2 API с Swagger аннотациями
Поддержка Swagger: документации и UI для v2 API
Модель QueryArgs с поддержкой фильтрации, поиска и сортировки
Рефакторинг для повышения производительности с техническим задан
XML: документирование для Swagger и описание сортировки
Конфигурация appsettings.json и Dockerfile
Production docker - compose
Weekly и беклог
Микросервис корзины: CQRS, кэширование и продакшн-подготовка:

Создание проекта Common.Kernel с интеграцией MediatR
Базовые интерфейсы CQRS: команд и запросов в Common.Kernel
Создание микросервиса Basket.API с базовой структурой проекта
Настройка basket_db для разработки и подключение NuGet—пакетов
Базовая интеграция Carter, Marten, MediatR и Swagger
Базовые модели ShoppingCart и ShoppingCartItem
Реализация ICartRepository и CartRepository с настройкой Marten
CQRS: команда для сохранения корзины с Mapster и Swagger
CQRS: запрос для получения корзины
Кастомный обработчик исключений
Интеграция FluentValidation
CQRS: команда для удаления корзины по accountName
Интеграция Redis кэширования с декоратором и Scrutor
Конфигурация подключений и Dockerfile для Basket.API
Production docker — compose
Weekly и беклог
Микросервис промоакций на gRPC: CQRS, Dapper, MySQL и продакшн:

Создание микросервиса с базовой структурой проект
Настройка gRPC reflection и интеграция с БД
Рефакторинг Program.cs с DependencyInjection и global usings
Интеграция MediatR для CQRS — паттерна с Common.Kernel
Настройка MySQL базы данных с Dapper ORM
Доменная модель Promo для промоакций
Инфраструктура инициализации БД с тестовыми данными
Полная инициализация БД с созданием таблицы и заполнением данных
Замена GreeterService на PromoGrpcService с тестированием
Реализация получения промоакций для gRPC сервиса
Реализация создания промоакций для gRPC сервиса
Полный CQRS: цикл для обновления промоакций с техническим задани
Конфигурация Mapster для автоматического маппинга proto — моделе
Полный CQRS: цикл для удаления промоакций + ТЗ ∙
Dockerfile для контейнеризации Promotion gRPC сервиса ∙
Production docker: compose для Promotion gRPC с MySQL ∙
Интеграция промосервиса и корзины:

Интеграция gRPC клиента для получения промоакций в корзине ∙
Dev-окружение: добавление Promotion gRPC сервиса с MySQL ∙
Интеграция применения промоскидок ∙
Рефакторинг SaveCartCommandHandler ∙
Исправление обработки отсутствующих промоакций + ТЗ ∙
Production конфигурация ∙
Логика для инициализации БД ∙
Weekly и беклог
Микросервис заказов:

Создание микросервиса с базовой структурой и настройкой БД ∙
Базовый класс BaseEntity с системой аудита ∙
Создание доменной модели ∙
Подключение Entity Framework Core с PostgreSQL ∙
Настройка DbContext и конфиг маппинга ∙
Создание тестовых данных и автоматическое заполнение БД ∙
Автоматические миграции и seed при старте приложения ∙
Первая миграция InitialCreate и загрузка тестовых данных ∙
Реализация интерфейсов репозиториев с CQRS разделением ∙
Базовый репозиторий BaseRepository с CRUD операциями ∙
Рефакторинг Repository и реализация Repository ∙
Автоматический аудит в DbContext с перехватом SaveChanges ∙
Интеграция MediatR и Carter для API организации ∙
Функционал получения заказов с Mapster маппингом и валидацией ∙
Исправление ValidationBehavior для поддержки Query — запросов ∙
Глобальный обработчик исключений и исправление валидации ∙
Реализация команды создания заказа с DTO и валидацией ∙
Функционал удаления заказа ∙
Функционал обновления заказа с частичным обновлением ∙
Контейнеризация микросервиса Checkout с Docker ∙
Production docker — compose для Checkout.API с PostgreSQL ∙
Событийная интеграция с RabbitMQ: MassTransit:

Настройка RabbitMQ в Dev-окружении
Интеграция MassTransit.RabbitMQ
Базовые классы событий для межсервисного взаимодействия
Extension методы для конфигурации MassTransit с RabbitMQ
Интеграция брокера сообщений и настройка маппинга
Реализация функционала корзины и публикация событий ∙
Обработка заказов через RabbitMQ ∙
Docker инфраструктура для production окружения
Weekly и беклог
Инфраструктура:

Построение инфраструктуры ∙
Структурированное логирование HTTP — запросов ∙
Централизованная настройка системы логирования ∙
Конфигурирование Serilog от консоли до файлов ∙
Логирование gRPC коммуникации ∙
Централизованное логирование с ELK Stack ∙
Production — ready ELK инфраструктура ∙
Нагрузка с k6 ∙
Мониторинг производительности Prometheus + Grafana ∙
Библиотека метрик Common.Metrics ∙
Библиотека метрик Common.Metrics ∙
Дашборды Grafana для микросервисов ∙
Управление контейнерами с Portainer ∙
Финал


Цена 13500 руб.




СКАЧАТЬ СЛИВЫ КУРСОВ
 

Возможно, Вас ещё заинтересует: