Go-разработчик. Продвинутый уровень
О чём курс
О курсе
Язык Go раскрывает путь от синтаксиса и внутреннего устройства среды выполнения до проектирования клиент-серверных систем и создания микросервисов, переводя от базового написания кода к инженерным подходам в разработке.
Практическая часть включает создание серии прикладных решений (от утилит до сервиса «Календарь») и разработку полноценного итогового проекта для портфолио.
Для кого
Обучение рассчитано на специалистов с опытом разработки серверных приложений от 1 года, знанием Git и общим пониманием процессов CI:
- бэкенд-разработчиков, планирующих перейти на Golang, освоить профильные библиотеки и архитектурные практики;
- разработчиков, уже освоивших основы Go или прошедших базовую подготовку, которым необходимо углубить знания;
- фронтенд- и фулстек-разработчиков, стремящихся охватить весь цикл создания продукта от интерфейса до инфраструктуры;
- DevOps-инженеров, желающих научиться профилировать сервисы и настраивать мониторинг на уровне кода.
Плюсом для освоения материала будут знание синтаксиса Go, опыт работы с C/C++ и навыки администрирования Linux.
Что внутри
Программа охватывает внутренние механизмы платформы: работу планировщика, сборщика мусора и эскейп-анализа. Студенты учатся избегать типовых ошибок при работе с памятью, слайсами, мапами и nil-интерфейсами, а также профилировать код через pprof и писать бенчмарки.
В блоке сетевого взаимодействия рассматриваются протоколы TCP/UDP, базы данных SQL/NoSQL, построение HTTP- и gRPC-сервисов с транзакциями и TLS. Отдельное внимание уделено конкурентному программированию с использованием горутин и каналов, реализации прикладных алгоритмов (LRU-кэш, конвейеры обработки данных), а также контейнеризации и оркестрации приложений с помощью Docker и K8s.
Формат обучения
Курс длится 5 месяцев и проходит в виде живых интерактивных вебинаров (два занятия по 2 академических часа в неделю). Предусмотрен постоянный доступ к учебным материалам, выполнение 16 практических домашних заданий и защита выпускного проекта перед экспертами.
Программа обучения
- Начало работы с Go В первом модуле мы посмотрим на Go как на язык программирования. Рассмотрим основные синтаксические конструкции и их выполнение в runtime. Основное внимание уделим конструкциям, уникальным для языка Go, которых нет в другом языке.
- Тема 1: Знакомство с курсом / ДЗ
- Тема 2: Синтаксис языка
- Тема 3: Типы данных
- Тема 4: Особенности языка и типовые ошибки / ДЗ
- Тема 5: Лучшие практики работы с ошибками / ДЗ
- Тема 6: Тестирование в Go
- Тема 7: Продвинутое тестирование в Go
- Тема 8: Интерфейсы изнутри / ДЗ
- Concurrency в Go Второй модуль мы посвятим одной из самых главных тем Go — конкурентности. Познакомимся с горутинами и каналами, с тем, как устроена память и сборка мусора в Go. Научимся писать конкурентно-безопасные программы.
- Тема 1: Горутины и каналы
- Тема 2: Примитивы синхронизации в деталях / ДЗ
- Тема 3: Дополнительные примитивы синхронизации
- Тема 4: Concurrency patterns / ДЗ
- Тема 5: Go внутри. Планировщик
- Тема 6: Go внутри. Память и сборка мусора
- Стандартные библиотеки и практики В третьем модуле мы познакомимся с основными функциями стандартной библиотеки Golang, а также наиболее популярными open-source библиотеками. Научимся взаимодействовать с операционной и файловой системами из Go, поговорим о понятиях рефлексии и кодогенерации, а также рассмотрим инструменты профилирования программ, написанных на Go.
- Тема 1: Работа с вводом/выводом в Go / ДЗ
- Тема 2: Конфигурация и логирование
- Тема 3: CLI / ДЗ
- Тема 4: Рефлексия
- Тема 5: Кодогенерация и AST
- Тема 6: Дженерики в Go / ДЗ
- Тема 7: Профилирование и оптимизация Go программ / ДЗ
- Работа с сетью и БД Go чаще всего используется для написания сетевых сервисов. В четвертом модуле мы изучим, как работать с сетью в языке Go. Рассмотрим стандартные протоколы и форматы, а также напишем простой web-сервер. Отдельное внимание будет уделено обработке ошибок, возникающих при работе с сетью. Дополнительно в данном модуле мы поговорим о работе с SQL и gRPC.
- Тема 1: Контекст и низкоуровневые сетевые протоколы / ДЗ
- Тема 2: Работа с SQL / ДЗ
- Тема 3: Работа с NoSQL
- Тема 4: Работа с HTTP
- Тема 5: Работа с gRPC
- Тема 6: Работа с gRPC ч.2 / ДЗ
- Микросервисы В пятом модуле мы рассмотрим вопросы архитектуры web-сервисов, в частности популярную на данный момент микросервисную архитектуру. Рассмотрим вопросы интеграционного тестирования, развертывания и эксплуатации приложений.
- Тема 1: Монолит и микросервисы
- Тема 2: Кэширование
- Тема 3: Очереди сообщений / ДЗ
- Тема 4: Docker
- Тема 5: K8s / ДЗ
- Тема 6: Helm
- Тема 7: Мониторинг / ДЗ
- Тема 8: Тестирование микросервисов
- Проект Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: ядро, работа с хранилищем, конфигурация и логгирование, работа с очередями сообщений, liveness-пробы, Makefile, юнит- и интеграционные тесты, статический анализ кода, файлы для деплоя, Dockerfile'ы и пр.
- Тема 1: Проектная работа. Вводное
- Тема 2: Консультация по проектам
- Тема 3: Итоговое занятие
Теги курса
Отзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.