Язык программирования - GO
40 ак.часов
Курс Go: разработка высоконагруженных серверных систем, оптимизация и CI/CD
-
О КУРСЕКурс разработан для тех, кто хочет научиться проектировать и оптимизировать высоконагруженные серверные приложения на языке Go. Вы изучите ключевые технологии, такие как разработка REST API, работа с базами данных (PostgreSQL, Redis), оптимизация производительности с помощью профилирования и пулов соединений, а также организацию асинхронных задач с использованием Go Routines и RabbitMQ. Кроме того, курс включает практическую работу по обеспечению безопасности приложений и настройке процессов тестирования и CI/CD для эффективной разработки
Системные инженеры
Разработчики
Системные администраторы
Модуль 1: Проектирование REST API
Тема 1.1: Введение в проектирование REST API
Принципы REST
Стандарты HTTP, методы, коды состояния
Работа с ресурсами и их представлениями
Тема 1.2: Работа с фреймворками Gin и Echo
Установка и настройка Gin и Echo
Обработка HTTP-запросов
Валидация входных данных, маршрутизация, Middleware
Тема 1.3: Интеграция с gRPC-gateway
Как использовать gRPC для REST API
Преимущества и ограничения
Настройка и использование gRPC-gateway для построения гибридных API
Модуль 2: Работа с базами данных
Тема 2.1: PostgreSQL и работа с библиотекой pgx
Установка и настройка PostgreSQL
Работа с библиотекой pgx для взаимодействия с PostgreSQL
Оптимизация запросов, использование подготовленных запросов
Тема 2.2: Кэширование с Redis
Установка и настройка Redis
Использование Redis для кэширования
Пример работы с Redis в Go, управление кэшированием
Тема 2.3: Миграции баз данных с Goose
Установка и настройка Goose
Миграции и версия базы данных
Пример миграций с Goose в Go
Модуль 3: Оптимизация производительности
Тема 3.1: Профилирование с pprof
Введение в профилирование в Go
Использование pprof для мониторинга производительности
Оптимизация кода на основе профилирования
Тема 3.2: Пулы соединений
Что такое пул соединений
Настройка и использование пулов соединений в Go
Оптимизация производительности с помощью пулов соединений
Тема 3.3: Общие принципы оптимизации
Снижение нагрузки на серверы
Использование кэширования и асинхронных операций
Лимитирование запросов, обработка ошибок
Модуль 4: Асинхронные задачи и очереди сообщений
Тема 4.1: Go Routines и каналы
Основы Go Routines и каналов
Асинхронное выполнение задач
Модели синхронизации и управления потоками
Тема 4.2: Работа с RabbitMQ
Установка и настройка RabbitMQ
Основы работы с очередями сообщений
Пример интеграции RabbitMQ в Go для асинхронных задач
Модуль 5: Безопасность
Тема 5.1: Аутентификация с OAuth2 и JWT
Основы OAuth2
Использование JWT для аутентификации и авторизации
Пример реализации аутентификации в Go
Тема 5.2: Защита от DDoS и SQL-инъекций
Принципы защиты от DDoS-атак
Защита от SQL-инъекций
Практические примеры защиты приложений на Go
Модуль 6: Тестирование
Тема 6.1: Модульное тестирование с Testify
Введение в модульное тестирование
Установка и использование Testify
Написание и выполнение тестов
Тема 6.2: Интеграционное тестирование
Основы интеграционного тестирования
Тестирование взаимодействия с базами данных и внешними сервисами
Использование фреймворков для интеграционных тестов
Тема 6.3: CI/CD
Введение в CI/CD
Настройка пайплайнов для Go-проектов
Пример интеграции с Jenkins/GitLab CI для автоматического деплоя
-
Получаемый документ
-
Для успешного прохождения курса необходимы:
- знания основ языка Go,
- опыт разработки с использованием REST API,
- базовые навыки работы с базами данных,
- понимание принципов работы многозадачности
-
По окончании курса слушатели смогут:
◉ разрабатывать и оптимизировать высоконагруженные серверные приложения на Go
◉ проектировать и строить эффективные REST API
◉ работать с базами данных, оптимизировать производительность с использованием Redis и PostgreSQL
◉ настроить асинхронные задачи с помощью Go Routines и RabbitMQ
◉ повышать безопасность своих приложений и защищать их от DDoS атак и SQL-инъекций
◉ настроить эффективное тестирование и процессы CI/CD для своих проектов

Академия АйТи
40 ак.часов


