Новогодний экспресс знаний с подарками ждёт вас
Новогодний экспресс знаний с подарками ждёт вас
Новогодний экспресс знаний с подарками ждёт вас
Повышение навыков разработки на Go. Сборка полноценного сервиса для портфолио.
поток: старт 5 мая
Golang-разработчик
видеокурс: старт в любой момент
Научитесь создавать реальные проекты, используя актуальные подходы разработки на Go
80% практики
53 часа практики
Полноценный проект
онлайн-банк, мессенджер, файловое хранилище или свой
Прямое общение со спикером
6 онлайн-встреч в формате «вопрос-ответ» и отдельный чат
Код-ревью проекта
от спикера
11 часов теории
Кому подойдёт курс?
Начинающим разработчикам на Go
  • Повысите навыки разработки и поддержки сервисов
Бэкенд-разработчики
Разработчики на других языках
  • Изучите основу разработки на Golang
Фулстек-разработчики и DevOps-инженеры
  • Внедрите в работу решения по Golang
  • Изучите Golang для перехода в профессию
  • Разберётесь в тонкостях языка и научитесь строить приложения на Golang
  • Разнообразите стек разработки
  • Расширите возможности в разработке инфраструктуры
  • Систематизируете знания о Golang
  • Узнаете больше об инструментах разработки
  • Соберёте рабочий проект для портфолио
  • Попрактикуетесь на максимально приближенных к работе кейсах
  • Научитесь эффективно применять язык Golang
А для инженеров, которые хотят погрузиться в основы Golang, рекомендуем присоединиться к потоку курса «Golang для инженеров»
Курс поможет разобраться
Как сделать так, чтобы проект работал и обслуживал пользовательские запросы даже при деградации части подсистем?
Какие паттерны взаимодействия применить, чтобы сделать простую и надёжную систему?
Как не допустить утечек памяти в нагруженном приложении?
Как избежать проблем при работе с БД?
Как выдерживать растущие нагрузки без покупки или аренды дополнительного оборудования?
Понадобятся знания:
  • Понимание работы с Базами данных и очередями
Будет большим плюсом:
  • Опыт работы с Docker
  • Базовое умение работы в консоли
  • Опыт коммерческой разработки от года
  • Опыт работы с Linux
  • Опыт написания конкурентного/многопоточного кода
Аргументированно выбирать асинхронный подход, чтобы снизить связность системы и повысить общую надёжность
После курса вы сможете
Уверенно писать на Golang и разрабатывать серверные и клиентские приложения
Эффективно использовать сеть для взаимодействия между сервисами и проектировать функциональность исходя из доменной области
Работать и синхронизировать goroutine и проводить оптимизацию под работу в нагруженных приложениях
Эффективно и без неожиданностей распиливать монолит на микросервисы и использовать линтеры, чтобы избежать ошибок
Понимать устройство observability больших систем
Гарантировать качество работы сервиса с помощью юнит- и интеграционных тестов
Главное практика
53 часа практики и сборки собственного полноценного сервиса
В каждом модуле — по три практических задания, от простого к сложному. Внимательно читайте условия и ловушки, которые встречаются в процессе работы. Задания проверяются автоматически, вопросы можно задавать напрямую эксперту в отдельном чате
На курсе вы создадите один проект на выбор
C авторизацией, процессингом платежей и хранением счётов. Вы создадите отказоустойчивую систему с возможностью выдерживать отказы сервисов
Если у вас есть готовая идея, уточните у спикера, как реализовать её в рамках нашего курса
C подпиской на события. Можно использовать minio с s3 совместимым протоколом. Разработаете подписку на события добавления/изменения файлов с учётом работы с миллиардами небольших файлов. Реализуете контроль доступа и версионирование версий файлов
C авторизацией, сервисом обработки сообщений и подсистемой доставки обновлений до клиентов. Вы выберете способ хранения данных. Учтёте всплески нагрузки при переподключении клиентов и возможность доставлять сообщения офлайн
Онлайн-банк
Свой проект
Файловое хранилище
Мессенджер
Ответим на вопросы:
Gони, Redis, Gони!. Как использовать Redis за пределами key-value storage
Особенности работы с конкурентностью в Golang
Виталий Лихачев
SRE в Booking.com
  • 9+ лет в коммерческой разработке
  • Занимал позицию Senior Software Engineer в Avito
  • Выступает с докладами на конференциях
  • Пишет сложные проекты с нетривиальной бизнес логикой на разных языках
  • Строит инфраструктуру под проекты в публичных облаках
Спикер курса
Вводная лекция
Проекты в портфолио:
  • Набор гео-инструментов MAPSLY
  • Интернет-платформа Avito
  • SaaS платформа для автоматизации найма
Прошедшие мероприятия
  • Что будет на курсе?
  • Кому подойдёт курс?
  • Какие особенности и нюансы использования есть у Golang?
  • С чем можно столкнуться на собеседовании?
  • С чем придётся столкнуться в реальных проектах?
Как проходит обучение
4 часа практики
6
20
онлайн встреч
практических заданий
разборы и прямое общение в телеграм-чате со спикером
приближенных к реальным кейсам
13 модулей + бонус тема
63
часа всего
итоговый сертификат
6
часов в неделю
2 часа теории
Шаг 1
Смотрим видеоуроки и читаем теорию
Шаг 2
Шаг 3
Шаг 4
Шаг 5
Делаем практические задания и закрепляем теорию
Обсуждаем задания и задаем вопросы в общем чате со спикером
Встречаемся со спикером и задаем вопросы
Защищаем итоговый проект
Программа
  • Изучение программы курса и формата обучения
  • Информация о спикере
  • Информации о себе, вступление в Telegram-чат группы
  • Результат прохождения курса
  • Знакомство со спикером
  • Расписание курса и программа обучения
  • Ответы на вопросы студентов
  • Как собирать и запускать программы в Go
  • Тестовые задания для закрепления материала
  • Значимые отличия Go от других языков программирования
  • Из чего состоит программа на Go
  • Модули, пакеты, концепция указателей и методов
  • Структуры, массивы, слайсы
  • Maps, строки и руны
  • Типичные ошибки с slices/maps/etc
  • 5 практических заданий и бонусная задача для закрепления материала
  • Горутины и каналы
  • Оператор select и пакет sync
  • Паттерны конкурентной области
  • Типичные ошибки с горутинами
  • 4 практических задания и бонусная задача для закрепления материала
Ответы на вопросы по темам:
  • Вводный курс в GO
  • Основные концепции языка
  • Конкурентная обработка данных
  • Интерфейсы и работа с ошибками
  • Error wrapping и пакет multierror
  • Panic / recover
  • Типичные ошибки при работе с errors/interfaces/panic
  • 4 практических задания для закрепления материала
  • Тестирование в Golang
  • Интеграционные тесты
  • Fuzzy тестирование
  • Библиотеки gomock, testify
  • Ловушки при написании тестов и советы
  • Практическое задание по написанию тестов
  • Пакет context
  • Ошибки/проблемы при работе с context
Ответы на вопросы по темам:
  • Интерфейсы и работа с ошибками
  • Написание тестов
  • Работа с context
  • Подготовка основы для проекта
  • Конфигурация и логирование
  • Профилирование и оптимизация
  • Рекомендации по созданию проекта
  • 3 практических задания для закрепления материала
  • Выбор тематики для проекта
  • Кодогенерация в контексте Golang
  • Потенциальные проблемы и ошибки при работе с HTTP
  • Проблема с таймаутами сервера
  • Знакомство с rider-service
  • Работа в Golang с базами данных
  • Подключение базы данных к собственному проекту
  • Промежуточное код-ревью проекта
  • Подходы к разделению сервисов
  • Боремся со сложностями выезда из монолита
  • Антипаттерны работы в микросервисной среде
Ответы на вопросы по темам:
  • Начало работы над проектом
  • Создание базового сервиса
  • Делим систему на сервисы
  • Что такое GRPC и как он применяется в реальных проектах
  • Асинхронная архитектура
  • Паттерны развертывания архитектуры
  • Брокеры сообщений в реальном проекте
  • Промежуточное код-ревью проекта
  • Совместимость контрактов
  • Сборка образа/сборка бинарника
  • Канарейки и отказоустройчивость stateless
  • Feature toggless
  • Rollback
  • Канареечный деплой
  • Постепенное замещение реплик сервиса новой версией
Ответы на вопросы по темам:
  • Пишем новые сервисы, настраиваем взаимодействи
  • Выкатываем систему в production
Observability:
  • Что такое Observability?
  • Зачем нужна наблюдаемость системы?
  • Способы сбора метрик
  • Устройство Prometheus
  • Структурированное логирование
  • Подключение метрик и логов в собственный проект
Tracing:
  • Что такое трассировки? Где и когда используются?
  • OpenTelemetry
  • Spans
  • Sampling
  • Внедрение Tracing в свой проект
Промежуточное код-ревью проекта
  • Пирамида тестирования
  • Нагрузочные тесты: виды, анализ результатов, корректность
  • При чем тут SRE
  • Инструменты выполнения тестов
  • Типичные ошибки при проведении тестов
  • Постоянное нагрузочное тестирование
Ответы на вопросы по темам:
  • Смотрим на систему в production
  • Нагрузочные тесты
Защита проекта