Описание курса:
Курс ориентирован на веб-разработчиков, желающих углубиться в Go, а также на имеющих опыт работы на Go программистов, которые хотят повысить уровень владения им. Вы освоите внутренние механизмы Golang, а также научитесь писать production-ready код, многопоточные и конкурентные программы.
Аудитория:
• DevOps-инженеры и фулстек-разработчики;
• Backend-разработчики;
• Разработчики других языков.
Необходимая подготовка:
• Опыт разработки от 1 года;
• Опыт разработки backend-приложений;
• Знание Git, работа в GitHub;
• Общее знакомство с CI: GitLab CI, Travis CI.
Программа курса:
Модуль 1. Начало работы с GO:
• Инструментарий и начало работы с Go;
• Тестирование в Go;
• Элементарные типы данных в Go;
• Массивы, слайсы и словари;
• Структуры;
• Функции и методы;
• Интерфейсы;
• Обработка ошибок. Понятие паники.
Модуль 2. Concurrency в Go:
• Горутины и каналы;
• Примитивы синхронизации;
• Concurrency patterns;
• Go внутри. Планировщик;
• Go внутри. Память и сборка мусора.
Модуль 3. Стандартные библиотеки и практики:
• Работа с вводом/выводом в Go;
• Форматирование данных;
• Взаимодействие с OS;
• Рефлексия;
• Кодогенерация в Go;
• Файлы конфигурации и логирование;
• Профилирование и оптимизация Go программ.
Модуль 4. Работа с сетью и БД:
• Контекст и низкоуровневые сетевые протоколы;
• Работа с SQL;
• Работа с HTTP;
• Работа с gRPC.