Открыто

Go: микросервисная архитектура на реальном проекте [Stepik] [Сергей Камянецкий]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 10 апр 2026 в 14:43.

Цена: 7 900р-96%
Взнос: 269р

Основной список: 9 участников

  1. 10 апр 2026 в 14:43
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Go: микросервисная архитектура на реальном проекте [Stepik] [Сергей Камянецкий]

    Screenshot_20260410_143633.png

    Практический курс по созданию микросервисной системы на Go. За время прохождения уроков вы с нуля построите маркетплейс из четырёх сервисов: каталог товаров, корзина с Redis-кэшированием, промоакции через gRPC и оформление заказов через RabbitMQ. Каждый сервис — Clean Architecture, CQRS, PostgreSQL/MySQL. В финале — Prometheus, Grafana, нагрузочные тесты и Docker Compose для продакшена. Никакой воды — только код, архитектура и практика.

    Чему вы научитесь
    • Проектировать микросервисную архитектуру на Go с нуля
    • Применять Clean Architecture и CQRS в реальном проекте
    • Разрабатывать REST API с использованием фреймворка Gin
    • Строить gRPC-сервисы и настраивать межсервисное взаимодействие
    • Реализовывать событийную архитектуру через RabbitMQ
    • Внедрять кэширование с Redis (паттерн Decorator)
    • Работать с несколькими СУБД: PostgreSQL и MySQL
    • Применять паттерны DDD: Entity, Value Object, Aggregate
    • Управлять миграциями баз данных через golang-migrate
    • Настраивать мониторинг с Prometheus и визуализацию в Grafana
    • Проводить нагрузочное тестирование с помощью k6
    • Контейнеризировать микросервисы через Docker и Docker Compose
    • Организовывать Dependency Injection без фреймворков
    • Реализовывать валидацию, middleware и централизованную обработку ошибок
    Важно
    Для прохождения этого курса вам потребуется браузер Mozilla Firefox или Safari

    Цель курса
    Научить вас проектировать и разрабатывать микросервисные системы на Go — не на синтетических примерах, а на реальном проекте, который растёт от пустого репозитория до готовой к продакшену системы с мониторингом.

    Почему именно этот курс
    Большинство курсов по микросервисам показывают готовый результат и объясняют, как он устроен. Здесь всё наоборот: вы проходите весь путь разработки — от первого go mod init до Grafana-дашбордов. Каждое архитектурное решение появляется в тот момент, когда оно действительно нужно, а не потому что «так принято».

    Что вы построите
    Микросервисный маркетплейс из четырёх независимых сервисов:
    • Каталог товаров — REST API на Gin, PostgreSQL, пагинация и фильтрация
    • Корзина покупок — Redis-кэширование, gRPC-клиент для скидок, публикация событий в RabbitMQ
    • Промоакции — gRPC-сервер, MySQL, Protocol Buffers
    • Оформление заказов — обработка событий из RabbitMQ, богатая доменная модель с Value Objects и агрегатами
    Плюс полная инфраструктура: Docker Compose для dev и prod, Prometheus-метрики, Grafana-дашборды, нагрузочные тесты k6.

    Структура курса
    Курс состоит из 5 модулей и 128 уроков:
    • Модуль 1. Каталог товаров
    • Модуль 2. Корзина покупок
    • Модуль 3. Промоакции
    • Модуль 4. Оформление заказов
    • Модуль 5. Мониторинг и инфраструктура
    Всего более 140 уроков, почти 18 часов видео

    Особенности
    • Каждый урок — конкретный шаг разработки: добавили слой, написали код, запустили, проверили
    • Есть задания для самостоятельной работы (ТЗ) с последующим разбором решения
    • Dependency Injection реализован вручную, без магических фреймворков — вы понимаете каждую связь
    • Используются разные СУБД (PostgreSQL и MySQL), разные протоколы (REST, gRPC) и разные способы взаимодействия (синхронный и асинхронный) — чтобы показать реальную картину микросервисной разработки
    Программа курса

    Первые шаги

    Go-cтарт
    Что будем делать: Marketplace-Go — обзор проектаКаталог курсов
    ️001 Введение в проект
    ️002 Инициализация Go-модуля и Gin-сервер
    ️003 Доменные сущности: BaseEntity, Brand, Category, CatalogI
    ️004 Docker Compose и PostgreSQL
    ️005 SQL-миграции и seed-данные
    ️006 Репозиторий брендов (PostgreSQL)
    ️007 Query handler: получение брендов
    ️008 HTTP handler: эндпоинт брендов
    ️009 Маршрутизация API v1: /brands
    ️010 Конфигурация через .env и godotenv
    ️011.1 [ТЗ] Самостоятельная работа
    ️012 Репозиторий товаров с JOIN
    ️013 Query handler: список товаров
    ️014 HTTP handler: список товаров
    ️015 Маршрут /catalog-items
    ️016 Рефакторинг SQL-запросов
    ️017 Репозиторий: получение товара по ID
    ️018 Query handler: товар по ID
    ️019 HTTP handler: товар по ID
    ️020 Маршрут /catalog-items/
    ️021 Поиск по названию (ILIKE)
    ️022 Query handler: поиск по названию
    ️023 HTTP handler: поиск по названию
    ️024 Маршрут /catalog-items/title/:title
    ️025 Репозиторий: создание товара (INSERT)
    ️026 Command handler: создание товара
    027 HTTP handler: POST-запрос
    ️028 Маршрут POST /catalog-items
    ️029 Репозиторий: обновление товара (UPDATE)
    ️030 Command handler: обновление товара
    ️031 HTTP handler: PUT-запрос
    ️032 Маршрут PUT /catalog-items
    ️033 [ТЗ] Удаление товара
    ️034 [ТЗ] Поиск по бренду
    ️035 Пагинация: Pagination и QueryArgs
    ️036 Фильтрация и сортировка: введение
    ️037 Query handler: пагинация (V2)
    ️038 HTTP handler: пагинация (V2)
    ️039 Маршрут GET /v2/catalog-items, тестирование пагинации
    ️040 Автомиграции при старте (golang-migrate)
    ️041 Финал каталога и итоговые правки
    ️СаморефлексияКорзина покупок
    ️042 PostgreSQL для Basket в Docker Compose
    ️043 Gin-сервер и health-check для Basket
    ️044 Миграции Basket и автозапуск
    ️045 Доменные модели: ShoppingCart, ShoppingCartItem
    ️046 Репозиторий: сохранение корзины (транзакция)
    ️047 Command handler: сохранение корзины
    ️048 HTTP handler: POST /cart
    ️049 Маршрутизация API v1: /cart
    ️050 Инициализация слоёв и DI
    ️051 Валидация моделей (go-playground/validator)
    ️052 Middleware: централизованная обработка ошибок
    ️053 Интеграция ErrorHandlerMiddleware
    ️054 Репозиторий: получение корзины
    ️055 Query handler: получение корзины
    ️056 HTTP handler: GET /cart/:accountName
    ️057 Маршрут GET /cart/:accountName
    ️058 Кастомный тип NotFoundError
    ️059 [ТЗ] Удаление корзины
    ️060 Redis-контейнер для кэширования
    ️061 RedisCartRepository
    062 Интеграция Redis
    ️063 Dockerfile и compose-prod для Basket
    ️СаморефлексияПромоакции
    ️064 MySQL-контейнер для Promotion
    ️065 Подключение к MySQL и автомиграции
    ️066 Миграция: таблица promos и seed-данные
    ️067 Protocol Buffers: greet.proto и кодогенерация
    ️068 Реализация GreeterService (gRPC)
    ️069 gRPC-сервер с graceful shutdown
    ️070 gRPC Reflection и тестирование
    ️071.1 gRPC метод Add (практика)
    ️071.2 Proto-контракт
    ️072 Доменная модель
    ️073 Интерфейс PromotionRepository
    ️074 Реализация FindByCatalogItem
    ️075 Реализация обработчика promotion/queries
    ️076 gRPC-сервис PromoService: заглушка
    ️077 Реализация GetPromoByCatalogItem
    ️078 Интеграция PromoService в main
    ️079 Proto: CreatePromo RPC
    ️080 Репозиторий: вставка промоакции
    ️081 Command handler: создание промоакции
    ️082 gRPC эндпоинт CreatePromo
    ️083 Интеграция CreatePromoHandler и DI
    ️084 Unique-ограничение и обработка дубликатов
    ️085 UpdatePromo: полный цикл
    ️086 [ТЗ] Удаление промоакции
    087 gRPC-клиент в SaveCartHandler: применение скидок
    ️088 Интеграция gRPC-клиента в Basket
    ️089 Dockerfile и compose-prod для Promotion
    ️090.1 Проблема: БД не готова при старте
    ️090.2 Утилита WaitForDB с retry-логикой
    ️091 Интеграция WaitForDB во все сервисы
    ️СаморефлексияОформление заказов
    092 PostgreSQL для Checkout и миграции
    093 Конфигурация и запуск миграций
    094 Gin-сервер и health-check для Checkout
    095 Доменная модель: Order, Value Objects, Enums
    096 Интерфейс и реализация OrderRepository
    097 Репозиторий: получение заказа с позициями
    098 Репозиторий: поиск заказов по аккаунту
    099 Репозиторий: создание заказа (транзакция)
    100 Query handler: заказ по ID
    101 HTTP handler: GET /orders/:id
    103 [ТЗ] Заказы по аккаунту
    104 RabbitMQ-контейнер в Docker Compose
    105 Структура messaging: заготовки
    107 RabbitMQ Publisher: exchange, queue, publish
    108 Command handler: CheckoutCart и публикация события
    109 HTTP handler: POST /cart/checkout
    110 Маршрут checkout и интеграция RabbitMQ
    112 ProcessOrderSubmissionHandler: создание заказа
    113 OrderSubmittedConsumer: маппинг события в команду
    114 Интеграция consumer в Checkout с graceful shutdown
    115 Dockerfile и compose-prod для Checkout
    СаморефлексияМониторинг и инфраструктура
    116.1 Введение в Prometheus и Grafana
    116.2 Пакет metrics: HTTP, gRPC, DB, RabbitMQ
    117 Gin Middleware для Prometheus-метрик
    118 gRPC-интерцепторы метрик
    119 Метрики в Catalog-сервисе
    120 Метрики в Promotion-сервисе
    121 Конфигурация Prometheus (prometheus.yml)
    122 Datasource Grafana для Prometheus
    123 Prometheus и Grafana в compose-prod
    124.1 Демо: дашборды Prometheus и Grafana
    124.2 Grafana-дашборды: Catalog и Promotion
    125 Нагрузочное тестирование с k6 (HTTP)
    126 Тюнинг пула соединений PostgreSQL
    127 k6: нагрузочный тест gRPC
    128 Portainer: управление контейнерами
    СаморефлексияОкончание
    Итоги

    Цена 7900 руб.
    Скрытая ссылка
     
    Последнее редактирование модератором: 12 апр 2026 в 16:54
    2 пользователям это понравилось.
  2. Последние события

    1. D_Kot
      D_Kot участвует в складчине.
      13 апр 2026 в 22:10
    2. 07pia05
      07pia05 участвует в складчине.
      13 апр 2026 в 06:21
    3. Money Maker LTD
      Money Maker LTD участвует в складчине.
      12 апр 2026 в 22:17
    4. Татьяна_76
      Татьяна_76 участвует в складчине.
      10 апр 2026 в 18:59

    Последние важные события

    1. skladchik.com
      Назначен организатор складчины.
      10 апр 2026 в 15:08