Курс "Переход на Go: Разработка микросервисного приложения"
Go — разработчик, который создает серверную часть проекта на языке Golang. Golang был создан компанией Google для ускорения процессов разработки как альтернатива C и C++. Язык отличается простотой синтаксиса и легкостью освоения.
Стоимость программы 220 000 рублей.
Программа курса:
Цели курса и конечный результат: На протяжении курса студенты будут разрабатывать приложение, состоящее из нескольких микросервисов. С каждым занятием проект будет усложняться, позволяя изучить ключевые аспекты языка Go и микросервисной архитектуры. Итогом будет рабочее приложение с настроенным CI/CD пайплайном, проработанными метриками качества кода и приложения, покрытым тестами. В ходе курса студенты также изучат такие темы, как Clean Architecture, Event Storming, тестирование (TDD), SRE-практики с настройкой дашбордов и алертов. Преподаватель будет демонстрировать пример приложения для бронирования слотов на оказание услуг.
Обзор возможных приложений: мини-соцсеть.
Выбор и утверждение идеи приложения каждым учеником.
Установка и настройка окружения для разработки на Go.
Введение в язык Go: особенности, философия, основные элементы.
Основные типы данных и конструкции в Go: структуры, слайсы, мапы, функции, условные операторы, циклы.
Объявление и использование функций, методы и интерфейсы.
Библиотеки в Go.
Практики обработки ошибок в Go: основные подходы и их применение.
Практическое задание: разработать простейшее приложение, используя основные конструкции Go .
История развития программирования, метрики качества кода (Cognitive Complexity, Cyclomatic Complexity, Lines of Code).
Принципы DRY/SOLID и code smells.
Использование линтеров в go
Практическое задание: анализ простого кода с точки зрения метрик и принципов качества. Изучение дополнительных материалов по теме и настройка линтеров в своем проекте.
Введение в Event Storming.
Применение Event Storming для проектирования микросервисов.
Практическое задание: проработка доменной модели для выбранного проекта, определение основных событий и взаимодействий. Создание бэклога с фичами и задачами для разработки приложения в рамках курса.
Эволюция архитектур: от MVC до Clean Architecture.
Взаимодействие между слоями микросервиса (Infrastructure/Adapters/Domain).
Примеры организации кода в микросервисах.
Практическое задание: реализация простой структуры проекта с учетом изученных архитектурных подходов.
История REST API и принципы построения.
Создание простого REST API, обработка HTTP-запросов и маршрутизация.
Практическое задание: реализовать базовые CRUD операции через REST API для своего проекта.
Основы тестирования в Go
TDD (Test-Driven Development).
Mutation testing
Benchmarking in Go
Практическое задание: написание тестов для существующего кода.
DDD и его основные подходы и принциы
Анимичные и полные модели данных.
Безопасность моделей
Практическое задание: применить полученные знания для доработки доменного слоя приложения.
Горутины и каналы в Go, основы асинхронного программирования.
Дедлоки и гонки.
Практическое задание: внедрение асинхронных операций в проект.
Основы аутентификации и авторизации в микросервисах.
JWT, OAuth2 и другие методы аутентификации.
Практическое задание: внедрение аутентификации в проект.
Подключение к базам данных в Go.
Взаимодействие с внешними сервисами и хранение данных.
Практическое задание: реализовать слой доступа к данным для проекта, настроить хранение и получение данных.
Понятие микросервисной архитектуры, основные подходы.