Обратная связь
1. Решение основных задач, возникающих в веб-разработке.
2. Психологическая устойчивость к страшным словам из экосистемы Golang.
3. Понимание всех необходимых в современной веб-системе компонентов.
4. Овладение востребованным на рынке инструментом.
базовые навыки программирования
Цель курса — дать студентам основные представления о языке программирования Go (golang) и его экосистеме.
Go (golang) — современный язык программирования, предназначенный для разработки высоконагруженных веб-приложений, работающих на многопроцессорных системах. Курс дает основы программирования на языке Go, а также опыт применения языка в основных задачах, которые встречаются в серверной веб-разработке.
Курс не обучает программированию с нуля — слушатели должны иметь опыт программирования хотя бы в рамках университетских заданий. Курс предполагает большой объем материала и сложные ДЗ, которые займут много времени, но позволят “прокачать” навыки программирования.
При наличии вакансий лучшим выпускникам предлагается стажировка в Mail.Ru Group. За время существования курса в компанию пришло уже 15 выпускников курса по Go.
Лекция №1
В этом занятии мы кратко ответим на вопрос “почему Go” и рассмотрим основы языка, такие как базовые переменные, сложные типы данных (слайсы и отображения) и управляющие структуры ( условые операторы, циклы). Поговори про функции. Рассмотрим те инструменты, которые имеются для работы в ООП-стиле, а именно, структуры, методы и интерфейсы.
4 часа
Лекция №2
В этой лекции мы расскажем самой сильной стороне го - асинхронной программировании. Рассмотри горутины и чем они отличаются от полноценных тредов. Поговорим про каналы, как средство передачи данных между горутин. Поднимем вопрос гонки данных (data race) и узнаем как найти такие места и что есть в языке Go для работы с ними - мютексы, атомики.
4 часа
Лекция №3
На лекции будет рассказано что такое HTTP, как работает веб-сервер и как со всем этим жить в golang
4 часа
Лекция №4
На лекции будет рассказано про то, где живут сайты, авторищзацию, сессии, покажем пример телеграм-бота
4 часа
Лекция №5
Начнем с упаковки-распаковки формата JSON и перейдём к механизмам, которые позволяют делать это делать - рефлексии и кодогенерации, с их преимуществами и недостатками. После, на примере сравнения этих двух методов, начнём рассматривать производительность программ на Go
4 часа
Лекция №6
Рассмотрим основные компоненты, из которых состоит современное веб-приложение, такие как сессии и механизмы авторизации, роутеры и валидаторы входных параметров, а так же несколько систем шаблонизации. Кратко рассмотрим вопросы безопасности в виде CSRF и XSS
4 часа
Лекция №7
Работа современного интернета совершенно не мыслима без того чтобы что-то куда-то сохранять. В этом заняти мы поговорим про базы данных и рассмотрим работу с самыми популярными из них: MySQL и PostgreSQL, Memcache, Redis и MondoDB. Так же рассмотрим ORM, который позволяет немного уменьшить количество кода при работе с SQL-базами, на примере пакета ORM
4 часа
Лекция №8
Обсудим такой популярный паттерн организации проекта, как микросервисы, когда это выгодно, когда нет. Ответим на вопрос, как разрабатывать проект, который в случае чего легко будет распилить на микросервисы. Познакомимся с бинарным форматом сериализации protobuf и gRPC - фреймворком, который упростит вашу жизнь при создании микросервисов.
4 часа
Лекция №9
Под конец мы залезем внутрь рантайма го и посмотрим что творится под капотом. Рассмотрим пакет unsafe и интеграцию Си-шного кода при помощи cgo. А так же как смотреть ассемблерный год, который генерируется при компиляции
4 часа