Golang - микросервисная архитектура, проектирование API [Stepik] [Максим Крупчатников]

Bot

Администратор
Команда форума
23 Янв 2020
180,570
3,033
113
269049.jpg

Введение
из чего состоит этот курс
Управление зависимостями с помощью Go Modules
Разбираем основные сетевые протоколы
модель OSI
IP
TCP
http/https
udp

Принципы SOLID
Что такое SOLID и зачем он нужен
Single Responsibility Principle
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle

Разработка веб-сервисов на Go
Обзор стандартной библиотеки net/http
пишем первый tcp сервер
Использование веб-фреймворков: Gin, Echo, Fiber
Маршрутизация и обработка запросов
Middleware: применение и создание

Основы микросервисной архитектуры
Понятие и эволюция микросервисов
Преимущества и недостатки микросервисной архитектуры
Сравнение с монолитной архитектурой
Ключевые принципы разработки микросервисов

Проектирование API
RESTful API: принципы и лучшие практики
Стандарты и конвенции при проектировании API
Работа с форматами данных JSON и XML
Версионирование API
Документация API с помощью Swagger/OpenAPI

Взаимодействие микросервисов
Синхронная и асинхронная коммуникация
Протоколы взаимодействия: HTTP, gRPC
Message brokers: RabbitMQ, Apache Kafka
Паттерны коммуникации: Publish/Subscribe, Request/Reply

Работа с базами данных
Подключение к реляционным (PostgreSQL, MySQL) и NoSQL базам данн
ORM и библиотеки доступа к данным: GORM, sqlx
Миграции баз данных
Кэширование с использованием Redis

Тестирование и отладка
Писание модульных и интеграционных тестов
Использование фреймворков для тестирования: Testify
Mocking и тестирование внешних зависимостей
Отладка приложений с помощью delve

Безопасность микросервисов
Аутентификация и авторизация: JWT, OAuth2.0
Управление секретами и конфиденциальными данными
SSL/TLS шифрование
Обработка ошибок и логирование

Контейнеризация и оркестрация
Введение в Docker: создание и управление контейнерами
Создание Dockerfile для Go приложений
Оркестрация с помощью Kubernetes
Управление конфигурацией и секретами в Kubernetes

Мониторинг и логирование
Введение в Prometheus и Grafana для мониторинга
Централизованное логирование с помощью ELK Stack (Elasticsearch,
Трассировка запросов: Jaeger, OpenTelemetry

Оптимизация и масштабирование
Профилирование и оптимизация производительности Go приложений
Горутины и каналы для конкурентности
Шардинг и репликация данных
Балансировка нагрузки