В подборке 12 курсов и материалов по Go по цене от 92 до 3 000 ₽. Для синтаксиса — «Golang» Дениса Волкова, для веб-разработки — курс Ильи Шаляпина, для конкурентного кода — «Thank Go! Многозадачность в Golang». Архитектуру и отказоустойчивость удобнее изучать после разработки собственного сервиса.
Подборка разделена по задачам, а не по цене. Первые материалы знакомят с языком; следующие посвящены API, взаимодействию горутин и организации приложения. Если вы уже программируете на Go, переходите к нужному разделу. Перед выбором сравните программу курса с тем, что уже умеете делать самостоятельно.
Синтаксис и первые программы
Если вы пока не писали на Go, начните с типов данных, функций и пакетов. У Дениса Волкова эти темы разбиты на восемь уроков, у Алекса Маршала вводная часть дополнена примерами сервисов. Выберите один из двух курсов по программе: проходить оба подряд ради одинаковых основ не обязательно.
Восемь уроков Дениса Волкова посвящены синтаксису, функциям, массивам, срезам и пакетам. Подходит для знакомства с базовыми конструкциями и структурированием кода; цена — 164 ₽.
Алекс Маршал сравнивает Go с другими языками, затем разбирает практические примеры и разработку сервисов. В результатах обучения указано применение многопоточности. Вариант для первого знакомства с языком и его задачами за 250 ₽.
Веб-приложения и REST API
Следующая задача — связать обработчик запроса, проверку данных и хранилище. У Ильи Шаляпина перечислены отдельные части веб-приложения: роутинг, JSON, формы, middleware и тесты. У Trevor Sawler предусмотрен проект системы бронирования. Курс Алексея Бакина подойдёт для работы над сервисом с базой данных, очередями и автоматической проверкой кода.
Роутинг, JSON, валидация, формы и middleware собраны у Ильи Шаляпина в одной программе. Также предусмотрены базы данных и тестирование. Выбирайте этот материал для изучения частей веб-приложения на Go; цена — 426 ₽.
Евгений Власов посвящает второй уровень проектированию REST API, моделям данных и разработке микросервисов. В заявленные результаты входит их тестирование. Материал стоит 1 906 ₽; он полезен после освоения синтаксиса Go.
Trevor Sawler использует систему бронирования как основной проект. В программе соединяются Go, HTML5, CSS и JavaScript, а также рассматриваются безопасность и масштабируемость. Подойдёт для изучения связи сервера с клиентской частью; цена — 300 ₽.
Семь уроков Алексея Бакина охватывают HTTP-сервис, API таск-трекера, PostgreSQL в Docker, очереди сообщений, тесты и CI. Это вариант для работы над несколькими частями одного сервиса. Стоимость — 3 000 ₽.
Конкурентное выполнение и обработка ошибок
Эта группа нужна, когда программа уже выполняет несколько задач одновременно. Материал Антона Жиянова объединяет горутины, контекст и синхронизацию. Разбор Владимира Балуна сосредоточен на каналах. К обработке ошибок переходите с конкретным примером: какие сведения сохранить, где добавить контекст ошибки и на каком уровне её записать в журнал.
За 92 ₽ Антон Жиянов предлагает материал о горутинах, каналах, конвейерах и примитивах синхронизации. Отдельные модули посвящены времени и отмене операций через context. Полезен для перехода от последовательного к конкурентному коду.
Владимир Балун разбирает закрытие каналов, select, nil-каналы, взаимные блокировки и утечки горутин. В программе есть Fan-In, Fan-Out, Pipeline и реализация ограничителя частоты запросов. Цена — 612 ₽; материал для подробного изучения каналов.
Антон Телышев и Дмитрий Назарков сравнивают более пяти подходов к оборачиванию ошибок, работу со стектрейсами и стратегии логирования. Предусмотрена обработка ошибок в конкурентном коде. Выбирайте для пересмотра этой части приложения; цена — 1 226 ₽.
Архитектура и устойчивость микросервисов
Здесь сравниваются разные задачи проектирования. DDD у Кирилла Ветчинкина включает сущности, агрегаты и события предметной области. Николай Колядко рассматривает независимость бизнес-логики от внешних библиотек. В материале об отказоустойчивости перечислены механизмы работы со сбоями: повторные запросы, ограничения времени и Circuit Breaker. Выбирайте курс по проблеме своего проекта.
Кирилл Ветчинкин рассматривает Value Object, Entity, Aggregate, Domain Service и Domain Events. Среди интеграций перечислены gRPC, HTTP и Kafka. Курс за 780 ₽ подойдёт, если нужно связать понятия DDD со слоями приложения на Go.
У Николая Колядко заявлено проектирование модульных приложений и изоляция бизнес-логики от библиотек и фреймворков. Материал стоит 2 006 ₽. Полезен для выбора границ между логикой приложения, базой данных и интерфейсами.
Повторные запросы с задержкой, Timeout, Deadline, Circuit Breaker и кэширование в Redis составляют программу Владимира Балуна. Есть логирование, метрики и трейсинг. Материал за 1 582 ₽ поможет изучить механизмы отказоустойчивости микросервисов.
Практический маршрут обучения
- Разберите функции, срезы и пакеты с курсом «Golang» Дениса Волкова. Для самопроверки напишите небольшую консольную утилиту и разделите её код на пакеты.
- После основ выберите «Разработку веб-приложений на Go» или проектный курс «Golang на практике». Проверьте в своём API корректные и некорректные входные данные, затем добавьте тесты.
- Перейдите к «Thank Go! Многозадачность в Golang». Для практики добавьте отмену длительной операции через context. Если возникают вопросы о закрытии каналов или select, обратитесь к разбору Владимира Балуна.
- Когда сервис работает, выберите архитектурную задачу: разделение зависимостей у Николая Колядко или моделирование предметной области у Кирилла Ветчинкина. Затем изучите паттерны отказоустойчивости и проверьте поведение проекта при недоступном внешнем сервисе.
Не покупайте все материалы сразу. Для первого проекта достаточно одного курса по основам и одного по веб-разработке. Узкие разборы ошибок, каналов и архитектуры выбирайте, когда сможете сформулировать конкретный вопрос к своему коду. Цены указаны на момент подготовки подборки; перед участием проверьте карточку выбранного материала.