Описание курса:
Курс предназначен для разработчиков, уже знакомых с основами языка Go и желающих выйти на продвинутый уровень. Программа охватывает ключевые аспекты разработки высоконагружаемых и надёжных сервисов: от работы с конкурентностью и сетью до проектирования архитектуры, тестирования, оптимизации и деплоя приложений.
Аудитория:
• Go-разработчики среднего уровня (Middle);
• Разработчики на других языках;
• Техническое руководители;
• Инженеров DevOps и SRE.
Необходимая подготовка:
Прохождение курса Основы программирования на GO или эквивалентная подготовка.
Программа курса:
Модуль 1. Работа с пакетами стандартной библиотеки:
• Пакет net/http: создание HTTP-клиентов и серверов;
• Пакеты flag и os: обработка аргументов командной строки;
• Пакет log: реализация логирования в приложениях;
• Пакет encoding: сериализация и десериализация данных (JSON, XML и др.);
• Пакет compress: методы сжатия и упаковки данных;
• Пакеты time и context: работа со временем и отмена операций;
• Пакет database/sql: взаимодействие с SQL-базами данных;
• Пакет errors: эффективная обработка ошибок;
• Пакеты hash и crypto: обеспечение безопасности и шифрования данных.
Модуль 2. Конкурентное программирование:
• Основы многопоточности в Go: горутины и каналы.
Модуль 3. Паттерны и антипаттерны проектирования на Go:
• Обзор популярных паттернов проектирования;
• Распространённые антипаттерны и как их избегать.
Модуль 4. Инструменты разработчика (тулинг):
• Профилирование и форматирование кода;
• Создание документации к проектам;
• Статический анализ с помощью linter'ов;
• Использование дженериков и генерация кода;
• Управление флагами сборки и компиляции.
Модуль 5. Продвинутые возможности стандартной библиотеки:
• Краткий обзор ключевых пакетов стандартной библиотеки;
• Генерация случайных чисел;
• Чтение и обработка потоков данных с использованием буферов;
• Взаимодействие с операционной системой;
• Примитивы синхронизации для конкурентного доступа;
• Сетевые операции и клиент-серверное взаимодействие;
• Работа с Protocol Buffers и построение gRPC-сервисов.
Модуль 6. Алгоритмы и структуры данных:
• Базовые структуры данных: массивы, списки, деревья и т.д.;
• Рекурсивные алгоритмы и методы сортировки;
• Хэш-функции и реализация хэш-таблиц.
Окончательная цена указывается в договоре на обучение.