Репозиторий с курса на Stepik: https://stepik.org/course/187490/.
Этот курс был создан в 2017 году на основе внедрения языка Go в Почту Mail.ru с целью развития рынка гоферов в РФ. В нем разобраны все основные инструменты языка, которые используются в рабочих задачах. Выполнения всех домашних заданий с полным осознанием материала достаточно для выполнения ключевых рабочих задач.
Задания и решения лежат в папках 99_hw каждого модуля.
- Неделя 1 - основы языка
- Правила, чат поддержки, код к лекциям и домашние задания
- Начало работы
- Основы языка
- Функции
- Структуры и методы
- Интерфейсы
- Практический пример - программа уникализации с тестами
- Задание 1 - программа вывода дерева файлов
- Неделя 2 - асинхронная работа
- Методы обработки запросов
- Горутины и каналы
- Инструменты для многопроцессорного программирование
- Состояние гонки
- Задание 2 - асинхроннй пайплайн
- Неделя 3 - json и бенчмарки
- JSON
- Работа с динамическими данными
- Бенчмарки и производительность
- Задание 3 - оптимизация кода
- Неделя 4 - основы работы с HTTP
- Слушаем сетевое соединение
- Обработка HTTP-запросов
- Шаблонизация
- Профилирование веба
- Телеграм бот
- Задание 4 - тестовое покрытие для сервиса поиска по XML
- Неделя 5 - продолжаем работу с HTTP
- Приветствие
- Middleware
- Роутинг http-запросов
- Валидация входящих данных
- Фреймворки
- Логирование
- Веб-сокеты
- Шаблонизация
- Задание 5 - веб-фреймворк на основе кодогенерации
- Неделя 6 - базы данных
- SQL
- KV-хранилища
- Rabbit, Mongodb
- Задание 6 - универсальный сервис просмотра содержимого БД
- Неделя 7 - основы микросервисов
- Что такое микросервис
- Делаем микросервис руками
- protobuf и gRPC
- Дополнительные темы
- Задание 7 - асинхронная система логирования
- Неделя 8 - прочие темы
- Конфигурирование сервиса
- Мониторинг
- Низкоуровневое программирование
- Инструменты для статического анализа
- Задание 8 - заполнение полей структуры через рефлексию
- Неделя 9 - архитектура приложения
- Структурируем приложение
- Тестируем комплексное приложение
- Авторизация и пароли
- CSRF-токены
- Сессии
- Задание 9 - архитектура типового приложения
- Неделя 10 - oauth и рефакториг приложения
- OAuth
- Немного рефакторинга
- Проектирование API
- Задание 10 - телеграм бот
- Неделя 11 - graphql
- Основы GraphQL
- GraphQL - интеграция в проект
- Организация пакетов в приложении
- Задание 11 - маркетплейс на основе GraphQL
- Неделя 12 - сборка, s3 и трейсинг
- Сборка docker-контейнера
- Хранение файлов в проекте через S3
- Конфигурирование приложения
- Трейсинг запросов
- Обратная связь
- Задание 12 - многопользовательская MUD на основе асинхрона