Содержание курса
1. Первые шаги
2 урока
4
3
0м
0
Закрытый
1.1
Старт
↗
4
3
-
0
Закрытый
1.2
Что будем делать
↗
0
0
-
0
2. Каталог товаров
42 урока
0
0
0м
0
Закрытый
2.1
🗃️ 001 Введение в проект
↗
0
0
-
0
Закрытый
2.2
🗃️ 002 Инициализация Go-модуля и Gin-сервер
↗
0
0
-
0
Закрытый
2.3
🗃️ 003 Доменные сущности: BaseEntity, Brand, Category, CatalogI
↗
0
0
-
0
Закрытый
2.4
🗃️ 004 Docker Compose и PostgreSQL
↗
0
0
-
0
Закрытый
2.5
🗃️ 005 SQL-миграции и seed-данные
↗
0
0
-
0
Закрытый
2.6
🗃️ 006 Репозиторий брендов (PostgreSQL)
↗
0
0
-
0
Закрытый
2.7
🗃️ 007 Query handler: получение брендов
↗
0
0
-
0
Закрытый
2.8
🗃️ 008 HTTP handler: эндпоинт брендов
↗
0
0
-
0
Закрытый
2.9
🗃️ 009 Маршрутизация API v1: /brands
↗
0
0
-
0
Закрытый
2.10
🗃️ 010 Конфигурация через .env и godotenv
↗
0
0
-
0
Закрытый
2.11
🗃️ 011.1 [ТЗ] Самостоятельная работа
↗
0
0
-
0
Закрытый
2.12
🗃️ 012 Репозиторий товаров с JOIN
↗
0
0
-
0
Закрытый
2.13
🗃️ 013 Query handler: список товаров
↗
0
0
-
0
Закрытый
2.14
🗃️ 014 HTTP handler: список товаров
↗
0
0
-
0
Закрытый
2.15
🗃️ 015 Маршрут /catalog-items
↗
0
0
-
0
Закрытый
2.16
🗃️ 016 Рефакторинг SQL-запросов
↗
0
0
-
0
Закрытый
2.17
🗃️ 017 Репозиторий: получение товара по ID
↗
0
0
-
0
Закрытый
2.18
🗃️ 018 Query handler: товар по ID
↗
0
0
-
0
Закрытый
2.19
🗃️ 019 HTTP handler: товар по ID
↗
0
0
-
0
Закрытый
2.20
🗃️ 020 Маршрут /catalog-items/
↗
0
0
-
0
Закрытый
2.21
🗃️ 021 Поиск по названию (ILIKE)
↗
0
0
-
0
Закрытый
2.22
🗃️ 022 Query handler: поиск по названию
↗
0
0
-
0
Закрытый
2.23
🗃️ 023 HTTP handler: поиск по названию
↗
0
0
-
0
Закрытый
2.24
🗃️ 024 Маршрут /catalog-items/title/:title
↗
0
0
-
0
Закрытый
2.25
🗃️ 025 Репозиторий: создание товара (INSERT)
↗
0
0
-
0
Закрытый
2.26
🗃️ 026 Command handler: создание товара
↗
0
0
-
0
Закрытый
2.27
🗃️ 027 HTTP handler: POST-запрос
↗
0
0
-
0
Закрытый
2.28
🗃️ 028 Маршрут POST /catalog-items
↗
0
0
-
0
Закрытый
2.29
🗃️ 029 Репозиторий: обновление товара (UPDATE)
↗
0
0
-
0
Закрытый
2.30
🗃️ 030 Command handler: обновление товара
↗
0
0
-
0
Закрытый
2.31
🗃️ 031 HTTP handler: PUT-запрос
↗
0
0
-
0
Закрытый
2.32
🗃️ 032 Маршрут PUT /catalog-items
↗
0
0
-
0
Закрытый
2.33
🗃️ 033 [ТЗ] Удаление товара
↗
0
0
-
0
Закрытый
2.34
🗃️ 034 [ТЗ] Поиск по бренду
↗
0
0
-
0
Закрытый
2.35
🗃️ 035 Пагинация: Pagination и QueryArgs
↗
0
0
-
0
Закрытый
2.36
🗃️ 036 Фильтрация и сортировка: введение
↗
0
0
-
0
Закрытый
2.37
🗃️ 037 Query handler: пагинация (V2)
↗
0
0
-
0
Закрытый
2.38
🗃️ 038 HTTP handler: пагинация (V2)
↗
0
0
-
0
Закрытый
2.39
🗃️ 039 Маршрут GET /v2/catalog-items, тестирование пагинации
↗
0
0
-
0
Закрытый
2.40
🗃️ 040 Автомиграции при старте (golang-migrate)
↗
0
0
-
0
Закрытый
2.41
🗃️ 041 Финал каталога и итоговые правки
↗
0
0
-
0
Закрытый
2.42
🗃️ Саморефлексия
↗
0
0
-
0
3. Корзина покупок
23 урока
0
0
0м
0
Закрытый
3.1
🗑️ 042 PostgreSQL для Basket в Docker Compose
↗
0
0
-
0
Закрытый
3.2
🗑️ 043 Gin-сервер и health-check для Basket
↗
0
0
-
0
Закрытый
3.3
🗑️ 044 Миграции Basket и автозапуск
↗
0
0
-
0
Закрытый
3.4
🗑️ 045 Доменные модели: ShoppingCart, ShoppingCartItem
↗
0
0
-
0
Закрытый
3.5
🗑️ 046 Репозиторий: сохранение корзины (транзакция)
↗
0
0
-
0
Закрытый
3.6
🗑️ 047 Command handler: сохранение корзины
↗
0
0
-
0
Закрытый
3.7
🗑️ 048 HTTP handler: POST /cart
↗
0
0
-
0
Закрытый
3.8
🗑️ 049 Маршрутизация API v1: /cart
↗
0
0
-
0
Закрытый
3.9
🗑️ 050 Инициализация слоёв и DI
↗
0
0
-
0
Закрытый
3.10
🗑️ 051 Валидация моделей (go-playground/validator)
↗
0
0
-
0
Закрытый
3.11
🗑️ 052 Middleware: централизованная обработка ошибок
↗
0
0
-
0
Закрытый
3.12
🗑️ 053 Интеграция ErrorHandlerMiddleware
↗
0
0
-
0
Закрытый
3.13
🗑️ 054 Репозиторий: получение корзины
↗
0
0
-
0
Закрытый
3.14
🗑️ 055 Query handler: получение корзины
↗
0
0
-
0
Закрытый
3.15
🗑️ 056 HTTP handler: GET /cart/:accountName
↗
0
0
-
0
Закрытый
3.16
🗑️ 057 Маршрут GET /cart/:accountName
↗
0
0
-
0
Закрытый
3.17
🗑️ 058 Кастомный тип NotFoundError
↗
0
0
-
0
Закрытый
3.18
🗑️ 059 [ТЗ] Удаление корзины
↗
0
0
-
0
Закрытый
3.19
🗑️ 060 Redis-контейнер для кэширования
↗
0
0
-
0
Закрытый
3.20
🗑️ 061 RedisCartRepository
↗
0
0
-
0
Закрытый
3.21
🗑️ 062 Интеграция Redis
↗
0
0
-
0
Закрытый
3.22
🗑️ 063 Dockerfile и compose-prod для Basket
↗
0
0
-
0
Закрытый
3.23
🗑️ Саморефлексия
↗
0
0
-
0
4. Промоакции
31 урок
0
0
0м
0
Закрытый
4.1
🏷️ 064 MySQL-контейнер для Promotion
↗
0
0
-
0
Закрытый
4.2
🏷️ 065 Подключение к MySQL и автомиграции
↗
0
0
-
0
Закрытый
4.3
🏷️ 066 Миграция: таблица promos и seed-данные
↗
0
0
-
0
Закрытый
4.4
🏷️ 067 Protocol Buffers: greet.proto и кодогенерация
↗
0
0
-
0
Закрытый
4.5
🏷️ 068 Реализация GreeterService (gRPC)
↗
0
0
-
0
Закрытый
4.6
🏷️ 069 gRPC-сервер с graceful shutdown
↗
0
0
-
0
Закрытый
4.7
🏷️ 070 gRPC Reflection и тестирование
↗
0
0
-
0
Закрытый
4.8
🏷️ 071.1 gRPC метод Add (практика)
↗
0
0
-
0
Закрытый
4.9
🏷️ 071.2 Proto-контракт
↗
0
0
-
0
Закрытый
4.10
🏷️ 072 Доменная модель
↗
0
0
-
0
Закрытый
4.11
🏷️ 073 Интерфейс PromotionRepository
↗
0
0
-
0
Закрытый
4.12
🏷️ 074 Реализация FindByCatalogItem
↗
0
0
-
0
Закрытый
4.13
🏷️ 075 Реализация обработчика promotion/queries
↗
0
0
-
0
Закрытый
4.14
🏷️ 076 gRPC-сервис PromoService: заглушка
↗
0
0
-
0
Закрытый
4.15
🏷️ 077 Реализация GetPromoByCatalogItem
↗
0
0
-
0
Закрытый
4.16
🏷️ 078 Интеграция PromoService в main
↗
0
0
-
0
Закрытый
4.17
🏷️ 079 Proto: CreatePromo RPC
↗
0
0
-
0
Закрытый
4.18
🏷️ 080 Репозиторий: вставка промоакции
↗
0
0
-
0
Закрытый
4.19
🏷️ 081 Command handler: создание промоакции
↗
0
0
-
0
Закрытый
4.20
🏷️ 082 gRPC эндпоинт CreatePromo
↗
0
0
-
0
Закрытый
4.21
🏷️ 083 Интеграция CreatePromoHandler и DI
↗
0
0
-
0
Закрытый
4.22
🏷️ 084 Unique-ограничение и обработка дубликатов
↗
0
0
-
0
Закрытый
4.23
🏷️ 085 UpdatePromo: полный цикл
↗
0
0
-
0
Закрытый
4.24
🏷️ 086 [ТЗ] Удаление промоакции
↗
0
0
-
0
Закрытый
4.25
🏷️ 087 gRPC-клиент в SaveCartHandler: применение скидок
↗
0
0
-
0
Закрытый
4.26
🏷️ 088 Интеграция gRPC-клиента в Basket
↗
0
0
-
0
Закрытый
4.27
🏷️ 089 Dockerfile и compose-prod для Promotion
↗
0
0
-
0
Закрытый
4.28
🏷️ 090.1 Проблема: БД не готова при старте
↗
0
0
-
0
Закрытый
4.29
🏷️ 090.2 Утилита WaitForDB с retry-логикой
↗
0
0
-
0
Закрытый
4.30
🏷️ 091 Интеграция WaitForDB во все сервисы
↗
0
0
-
0
Закрытый
4.31
🏷️ Саморефлексия
↗
0
0
-
0
5. Оформление заказов
22 урока
0
0
0м
0
Закрытый
5.1
🚚 092 PostgreSQL для Checkout и миграции
↗
0
0
-
0
Закрытый
5.2
🚚 093 Конфигурация и запуск миграций
↗
0
0
-
0
Закрытый
5.3
🚚 094 Gin-сервер и health-check для Checkout
↗
0
0
-
0
Закрытый
5.4
🚚 095 Доменная модель: Order, Value Objects, Enums
↗
0
0
-
0
Закрытый
5.5
🚚 096 Интерфейс и реализация OrderRepository
↗
0
0
-
0
Закрытый
5.6
🚚 097 Репозиторий: получение заказа с позициями
↗
0
0
-
0
Закрытый
5.7
🚚 098 Репозиторий: поиск заказов по аккаунту
↗
0
0
-
0
Закрытый
5.8
🚚 099 Репозиторий: создание заказа (транзакция)
↗
0
0
-
0
Закрытый
5.9
🚚 100 Query handler: заказ по ID
↗
0
0
-
0
Закрытый
5.10
🚚 101 HTTP handler: GET /orders/:id
↗
0
0
-
0
Закрытый
5.11
🚚 103 [ТЗ] Заказы по аккаунту
↗
0
0
-
0
Закрытый
5.12
🚚 104 RabbitMQ-контейнер в Docker Compose
↗
0
0
-
0
Закрытый
5.13
🚚 105 Структура messaging: заготовки
↗
0
0
-
0
Закрытый
5.14
🚚 107 RabbitMQ Publisher: exchange, queue, publish
↗
0
0
-
0
Закрытый
5.15
🚚 108 Command handler: CheckoutCart и публикация события
↗
0
0
-
0
Закрытый
5.16
🚚 109 HTTP handler: POST /cart/checkout
↗
0
0
-
0
Закрытый
5.17
🚚 110 Маршрут checkout и интеграция RabbitMQ
↗
0
0
-
0
Закрытый
5.18
🚚 112 ProcessOrderSubmissionHandler: создание заказа
↗
0
0
-
0
Закрытый
5.19
🚚 113 OrderSubmittedConsumer: маппинг события в команду
↗
0
0
-
0
Закрытый
5.20
🚚 114 Интеграция consumer в Checkout с graceful shutdown
↗
0
0
-
0
Закрытый
5.21
🚚 115 Dockerfile и compose-prod для Checkout
↗
0
0
-
0
Закрытый
5.22
🚚 Саморефлексия
↗
0
0
-
0
6. Мониторинг и инфраструктура
16 уроков
1
1
0м
0
Закрытый
6.1
📊 116.1 Введение в Prometheus и Grafana
↗
0
0
-
0
Закрытый
6.2
📊 116.2 Пакет metrics: HTTP, gRPC, DB, RabbitMQ
↗
0
0
-
0
Закрытый
6.3
📊 117 Gin Middleware для Prometheus-метрик
↗
0
0
-
0
Закрытый
6.4
📊 118 gRPC-интерцепторы метрик
↗
0
0
-
0
Закрытый
6.5
📊 119 Метрики в Catalog-сервисе
↗
0
0
-
0
Закрытый
6.6
📊 120 Метрики в Promotion-сервисе
↗
0
0
-
0
Закрытый
6.7
📊 121 Конфигурация Prometheus (prometheus.yml)
↗
0
0
-
0
Закрытый
6.8
📊 122 Datasource Grafana для Prometheus
↗
0
0
-
0
Закрытый
6.9
📊 123 Prometheus и Grafana в compose-prod
↗
0
0
-
0
Закрытый
6.10
📊 124.1 Демо: дашборды Prometheus и Grafana
↗
0
0
-
0
Закрытый
6.11
📊 124.2 Grafana-дашборды: Catalog и Promotion
↗
0
0
-
0
Закрытый
6.12
📊 125 Нагрузочное тестирование с k6 (HTTP)
↗
0
0
-
0
Закрытый
6.13
📊 126 Тюнинг пула соединений PostgreSQL
↗
0
0
-
0
Закрытый
6.14
📊 127 k6: нагрузочный тест gRPC
↗
0
0
-
0
Закрытый
6.15
📊 128 Portainer: управление контейнерами
↗
1
1
-
0
Закрытый
6.16
📊 Саморефлексия
↗
0
0
-
0
7. Окончание
1 урок
1
0
935м
0
Закрытый
7.1
Итоги
↗
1
0
935м 19с
0