Программа и содержание

Зачем нужна чистая архитектура?

Удобство тестирования. Вы можете запускать тесты без пользовательского интерфейса, базы данных, веб-сервера или любого другого внешнего компонента.

Независимость от фреймворка. Архитектура не зависит от какой-либо библиотеки, поэтому вы можете использовать фреймворк в качестве инструмента и не пытаться втиснуть свою систему в рамки его ограничений.

Независимость от базы данных. Вы можете поменять Oracle или SQL Server на MongoDB, BigTable и т.д.

Независимость от UI. Вы легко можете изменить пользовательский интерфейс, не затрагивая остальную систему. Например, можете заменить веб-интерфейс на консольный, не меняя бизнес-правил.Ваши бизнес-правила не связаны с базой данных.

Как понять, что вам пора на интенсив?

Не знаете, что такое чистая архитектура и как сформировать структуры папок по этой технологии

Переходите на Go с другого языка программирования и хотите быстрее понять, как всё работает

Пишете на Go, но не работали над большими проектами

Хотите брать интересные задачи и создавать сложные приложения на Go с нуля

Программа курса:

День 1

Разберем структуру проекта на Golang, обсудим примеры использования чистой архитектуры и научимся справляться с возникающими сложностями.

Практика:

Создаем структуру проекта

Наполняем Dependency injection (DI)

Подключаем PostgreSQL через DI

День 2

Разбираем накопившиеся вопросы, закрепляем материал предыдущего дня, учимся формировать структуры папок по чистой архитектуре

Практика:

Создаем структуры папок

Созданием конструкторов для слоёв и устанавливаем зависимости

Проводим инициализация слоёв на main

Наполняем слои (Domain, Use, Case, Delivery, Repository)

День 3

Изучаем Observability, контекст (context) и трассировку, заканчиваем интенсив запуском и демонстрацией работы приложения (сервиса по работе с контактами и возможностью их группировки)

Практика:

Добавляем использование контекста

Добавляем логирование ошибок

Подключаем Jaeger через DI

Добавляем трассировку

Учимся покрывать тестами блок Use Case