- Регистрация
- 13.03.2019
- Сообщения
- 48 482
За 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 |
Быстрая оплата RUB, UAH, KZT