Getting started with DataGrip

https://facebook.github.io/react-360/

 

https://graphql.org/

 

================

За 2 месяца вы освоите профессию на уровне
middle-специалиста
Мы даем много материала и сложные домашки, которые ощутимо поднимут ваш уровень и помогут уверенно использовать язык в работе.
1 неделя. Введение в Golang

Разберетесь с основами языка:

• Переменные, базовые типы данных
• Переменные, составные типы данных
• Управляющие конструкции
• Основы функций
• Функция как объект первого класса, анонимные функции
• Отложенное выполнение и обработка паники
• Основы работы со структурами
• Методы структур
• Пакеты и область видимости
• Основы работы с интерфейсами
• Пустой интерфейс
• Композиция интерфейсов
• Написание программы уникализации
• Написание тестов для программы уникализации

2 неделя. Асинхронная работа

Освоите главную особенность языка. Асинхронность и простота — вот что делает Go таким мощным инструментом.

• Методы обработки запросов и плюсы неблокирующего подхода
• Горутины – легковесные процессы
• Каналы – передаём данные между горутинами
• Мультиплексирование каналов через оператор select
• Таймеры и таймауты
• Пакет context и отмена выполнения
• Асинхронное получение данных
• Пул воркеров
• sync.Waitgroup – ожидание завершения работы
• Ограничение по ресурсам
• Ситуация гонки на примере конкурентной записи в map
• sync.Mutex для синхронизации данных
• sync.Atomic

3 неделя. Работа с динамическими данными и производительность

Научитесь обращаться с динамическими данными и работать с JSON.

• Распаковываем JSON
• Нюансы работы с JSON
• Пакет reflect – работаем с динамикой в рантайме
• Кодогенерация – программа пишет программу
• Система бенчмарков Go
• Профилирование через pprof
• sync.Pool
• Покрытие кода тестами
• XML

4 неделя. Основы HTTP

Запустите веб-сервер, обработаете запросы и получите данные. А еще научитесь собирать метрики производительности с работающего сервера.

• Слушаем TCP-сокет с использованием пакета net
• Обслуживание HTTP-запросов
• Работа с параметрами запросов
• Обслуживание статичных данных
• Загрузка файлов формы
• HTTP-запросы во внешние сервисы
• Тестирование HTTP-запросов и ответов
• Inline-шаблоны и шаблоны из файлов
• Вызов методов и функций из шаблонов
• Профилирование через pprof
• Поиск утечки горутин
• Трассировка поведения сервиса
• Пример с telegram-ботом

5 неделя. Анатомия веб-сервиса

Познакомитесь с самыми распространенными компонентами при разработке веб-сервисов: роутеры, веб-серверы, фреймворки и утилиты.

• Основные компоненты веб-сервиса
• Основы middleware для HTTP
• Context value
• Обработка ошибок
• Роутеры – gorilla/mux, httprouter
• Производительный веб-сервер fasthttp
• Парсинг параметров в структуру и валидация
• Фреймворк Beego
• Фреймворк Gin
• Стандартный пакет log, zap, logrus
• gorilla/websocket
• Компилируемые шаблоны
• Утилита dep

6 неделя. SQL и NoSQL

Научитесь работать с основной функцией веб-сервера — извлечение и загрузка данных.

• database/sql и mysql
• GORM – применение reflect’а для SQL
• sql-injection
• Memcached – пример с тегированным кешем
• Redis
• Message broker – RabbitMQ
• Document store – MongoDB

7 неделя. Микросервисы

Микросервисы – популярный паттерн борьбы со сложностью. В Go микросервисы можно делать сразу из коробки. А еще вы познакомитесь с фреймворком gRPC.

• Что такое микросервис, плюсы и минусы
• Микросервисы внутри монолита
• net/rpc и формат gob
• net/http/jsonrpc
• Формат сериализации protobuf
• Делаем сервис на gRPC
• Продвинутая работа с gRPC
• Стриминг сообщений
• Балансировка нагрузки и использование Consul
• grpc-gateway – получаем доступ к grpc-сервисам через HTTP
• Swagger – генерируем клиент и сервер из документации к апи

8 неделя. Сервис в работе

Поймете, как конфигурировать и мониторить сервисы, а также интегрируете код на C в Go.

• Локальный конфиг – flags, json, ldflags
• Удалённый конфиг, используем Consul
• Зачем нужен мониторинг и что мониторить
• Отправка таймингов во внешнюю систему
• Пакет Unsafe
• cgo – интеграция кода на cи
• go vet, gometalinter