Clean Architecture на Golang
Введение в Clean Architecture
- Зачем нужна Clean Architecture?
- Принципы и основные идеи Clean Architecture.
- Сравнение с другими подходами к архитектуре программного обеспечения.
Принципы проектирования Clean Architecture
- Dependency Rule.
- Separation of Concerns.
- High-Level Policy vs. Low-Level Detail.
- Чистые границы.
Проектирование на уровне бизнес-логики
- Определение бизнес-правил и требований.
- Использование Use Case и Interactor паттернов.
- Применение Entities и Value Objects для моделирования бизнес-объектов.
- Практические примеры.
Использование структур данных
- Использование Entities и Value Objects.
- Определение и разделение Entity и Data Mapper.
- Отличие между Entities и Data Transfer Objects (DTOs).
- Работа с репозиториями.
Создание границы адаптеров
- Определение границы контроллера.
- Создание интерфейсов адаптеров.
- Использование презентеров для преобразования данных.
- Практические примеры.
Построение внешних интерфейсов
- Создание и использование адаптеров веб-сервисов.
- Работа с HTTP-запросами и ответами.
- Использование фреймворка Gin для построения веб-приложений.
- Практические примеры.
Тестирование Clean Architecture приложений
- Тестирование Use Case и Interactors.
- Модульное тестирование адаптеров.
- Интеграционное тестирование внешних интерфейсов.
- Практические советы и примеры.
Оптимизация и управление проектом
- Профилирование и оптимизация производительности.
- Обработка ошибок и логирование.
- Управление зависимостями с использованием инструментов Go Mod.
- Создание Makefile для автоматизации процесса сборки и тестирования.
Практический проект
- Создание полноценного приложения с использованием принципов Clean Architecture.
- Разработка бизнес-логики и внешних интерфейсов.
- Тестирование и оптимизация проекта.
- Заключительное обсуждение результатов и рекомендации.
Дополнительные материалы
- Рекомендуемая литература и онлайн-ресурсы.
- Полезные инструменты и библиотеки для разработки на Golang и Clean Architecture.
Курс ориентирован на разработчиков, уже имеющих определенный опыт работы с языком программирования Go и желающих изучить методологию Clean Architecture и ее применение на практике.