Go для веб-разработчиков

Go – быстро набирающий популярность современный язык программирования, созданный знакомыми нам по C, UNIX и UTF‑8 Робом Пайком и Кеном Томпсоном. Go сочетает в себе лучшие черты статических и динамических языков: строгую типизацию и скорость исполнения с гибкостью и скоростью разработки, добавляя к этому производительную и надежную концепцию параллельного программирования. Начавшись в качестве внутренней разработки компании Google, сейчас язык Go активно развивается open-source сообществом и делит первое место по производительности с C/C++ и Java в  Web Performance Benchmark. Автор Vagrant Митчелл Хашимото выбрал Go для своих новых DevOps проектов Packer и Serf. На Go написаны etcd и популярнейший проект Docker. CloudFare использует Go в своем продукте следующего поколения Railgun, а Google – в своих сервисах YouTube, dl.google.com и Google Code.

За два дня на курсе мы пройдём весь путь от основ Go до написания полноценного веб‑сервиса. Обсудим обработку ошибок и паттерны конкурентности, разберёмся с шаблонизатором, поработаем с базами данных и key‑value хранилищами, попробуем интеграцию с библиотеками на Си, протестируем, отладим и нагрузим наш код.

Курс будет интересен веб‑разработчикам на Ruby, Python и других языках, которым не хватает грамотного наставника или времени на изучение новой технологии собственными силами.

После курса участники смогут самостоятельно написать серверное приложение на Go, работающее с веб‑сокетами и базами данных, покрыть его код тестами и проверить под нагрузкой. Научатся ускорять свои проекты, используя Go в критических с точки зрения производительности и надежности местах.

Перед обучением на курсе мы рекомендуем пройти официальный туториал.

Для выполнения практических заданий во время курса необходим ноутбук c Mac OS X или Linux и памятью от 4GB.

Расписание курса

сен
даты уточняются
сентябрь
Штаб-квартира Злых марсиан, Москва
  • Самостоятельный участник
    30 000 Р
  • Представитель компании
    40 000 Р

Инструкторы

Алексей Палажченко
Алексей Палажченко
Организатор Golang Moscow — московских встреч Go-сообщества. Опытный разработчик на Go. Автор Go Nuts — менеджера зависимостей для Go-пакетов, интеграции mruby в Go и других open-source проектов. Разработал на Go распределённое отказоустойчивое хранилище с AWS S3-совместимым API в Express 42 и медиа-сервер для вещаний в Croice.
Андрей Смирнов
Андрей Смирнов
Опытный техлид, фанат Go. Автор aptly и Redis Resharding Proxy. Создатель сервера вещаний для smotri.com, сервера сигналинга и нотификаций для видеозвонков Qik и многих других проектов. Многократно выступал на РИТ++, HighLoad и других конференциях, преподавал на факультете ВМиК МГУ.
Кир Шатров
Кир Шатров
Бэкенд-разработчик в Evil Martians на Ruby и Go. Мейнтейнер проекта Capistrano, активный участник open-source сообщества. Выступал на локальных митапах в Хельсинки, Будапеште и Москве. Разрабатывал Go-часть Амплифера и Router, локальный прокси для веб-приложений.

Программа

День 1
  • Паттерны ООП и обработки ошибок.
  • Конкурентность и параллелизм.
  • Работа с пакетами и зависимостями. Организация кода.
  • Легковесные веб‑фреймворки.
  • Сериализация объектов. Работа с JSON и XML.
  • Шаблоны. Стандартный html/template, HAML и Mustache.
  • Тестирование и бенчмарки. Сравнение производительности с другими языками на практике.
День 2
  • Revel как пример полноценного фреймворка.
  • Базы данных. Взаимодействие с PostgreSQL, Mongo, Redis и возможности ORM.
  • «Живой» веб. Вебсокеты и long-polling запросы.
  • Взаимодействие с кодом на C.
  • Деплой Go-приложений на сервер. Практики обслуживания приложений.