Курс по Golang, обучение программированию на Golang, уроки программирования на Golang

Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

Разработчик Golang

Разработка сетевых приложений и микросервисов на Go
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

28 ноября

Общая стоимость

60 000 ₽

В месяц

15 000 ₽

В кредит:

15000 ₽ в месяц

Хочу дешевле
Общая стоимость
60 000 ₽
В месяц: 15 000 ₽
В кредит: 60000 ₽
в месяц
Продолжительность
5 месяцев, 4 академ. часа в неделю
Начало занятий
28 ноября
Что даст вам этот курс

При переходе на Go люди зачастую сталкиваются с различными неудобствами, вызванными непохожестью Go на другие языки программирования. В этом курсе мы хотели бы объяснить, что такое Go-way, рассказать про идиомы языка и помочь избежать типичных ошибок. Программа курса позволит погрузиться в разработку на Go для решения практических задач, углубления знаний в языке и сопутствующем технологическом стеке.

Этот курс подойдет для:

- web-разработчиков, которые хотят переквалифицироваться в Go и расширить свой уровень мастерства;
- всех тех, кто уже разобрался с основой Go и хочет начать применять язык правильно.

Особенности курса:


Изучение внутренних механизмов Golang, а не только синтаксиса языка

Практика — реальные проблемы и их решения, с которыми столкнулись авторы при работе с Go

Теория — реальные кейсы перевода на стек языка Golang с других технологических стеков (PHP, C#) крупных высоконагруженных проектов

Выпускной проект (кейс для портфолио) — самостоятельная разработка микросервиса


Выпускники смогут:

- писать production-ready код, многопоточные и конкурентные программы;
- понимать синтаксис и внутреннее устройство языка Go;
- понимать особенности сетевого программирования;
- уметь создавать микросервисы с помощью Go;
- способен разворачивать микросервисы с помощью docker.
Старайтесь решить проблему как можно проще, сложное решение получится само по себе.
Дмитрий Смаль
Преподаватель курса
Старайтесь решить проблему как можно проще, сложное решение получится само по себе.
Дмитрий Смаль
Преподаватель курса
Преподаватели
Иван Ремень
Артем Желтак
Rambler&Co
Елена Граховац
Антон Телышев
Дмитрий Смаль
Старший разработчик в Yandex
Александр Давыдов
Lazada Tech Hub Russia
Владимир Дроздецкий
Разработчик инфраструктуры exposcan.ru, crispmessenger.com
Учился в технопарке Mail.Ru. В 2013 году начал работать стажером в проекте "Почта" компании Mail.Ru. С 2015 года преподавал различные (в том числе и авторские) курсы в образовательных проектах Mail.Ru. С 2016 года занимал должность руководителя группы в Почте. В том же году получил диплом магистра по специальности "Программная инженерия" в МГТУ им. Н.Э. Баумана.

С 2018 года начал работать в Ситимобил на должности руководителя группы. С апреля 2019 года был назначен руководителем направления серверной разработки. Занимается развитием технических навыков людей, поддержкой их мотивации, развитием отказоустойчивых архитектур, внедрением новых технологий в процесс разработки (golang, tarantool).

Основные технические навыки:
Golang
C
MySQL
Tarantool
Highload architecture
Linux API

Teamlead/Techlead проекта “Поток” в Rambler&Co
Закончил МГТУ им. Н.Э.Баумана по специальности “Инженер конструктор подьемно-транспортных систем”.
Первую работу нашел случайно, сделав сайт для знакомого.
В web-разработке с третьего курса института. Основные проекты базировались в сфере парсинга данных и рекламных платформ.
Длительное время писал на PHP, впоследствии перешел на Go.
В профессии уже более 8 лет.

Преподаватель
Руководит командой автоматизации TechOps-процессов в немецком финтех-стартапе N26 (Берлин). Пишет на Go с 2015-го, профессиональный опыт в ИТ — 12 лет.

В свободное время выступает с докладами и мастер-классами на российских и международных ИТ-конференциях как DevOps-энтузиаст.

Руководит программным комитетом конференции GolangConf и является соведущей подкаста GolangShow.

Область интересов:
DevOps-культура и автоматизация, построение нативных облачных сервисов, язык программирования Go.

Преподаватель
Ведущий Golang-разработчик в “Центр недвижимости от Сбербанка” (ДомКлик). В компании занимаюсь разработкой внутренних сервисов (платежный шлюз, кошелёк компании, система единой авторизации и пр.).

До этого разрабатывал системы мониторинга и внутренние сервисы в Mail.Ru Group, а также участвовал в разработке и поддержке облака, обеспечивающего защиту банков от кибер-мошенничества - Kaspersky Fraud Prevention Cloud.

Окончил бакалавриат и магистратуру в МГТУ им Н.Э. Баумана (кафедра “Компьютерные системы и сети (ИУ6)”). Учился в Технопарке Mail.Ru, где впоследствии преподавал Подготовительную программу по С++.

В свободное время занимаюсь кроссфитом и веду Telegram-канал о Golang (@gouniverse).

Основные технические навыки:
Python
C++
Golang

Преподаватель
Занимается разработкой инфраструктуры Яндекс.Облако и поддержкой реляционных баз данных. За 10 лет прошёл путь от рядового разработчика до старшего программиста в NetCracker, Agava, Mail.Ru Group (проектов «Игры», «Здоровье» и «Дети») и Яндексе.

Может спроектировать архитектуру, реализовать проект с помощью небольшой команды, развернуть необходимую инфраструктуру, организовать процесс разработки и деплоя. Разрабатывал сервера, поддерживающие 500k+ подключений, собирал модный фронтенд на React, отправлял тонны писем по SMTP, проектировал API и базы данных. Владеет Python, JavaScript, Go, Perl и другими языками и технологиями.

Окончил Московский физико-технический институт, где получил степень магистра. Около 6 лет был лектором в Технопарке и Технотреке Mail.Ru. Читал лекции, проводил практические занятия и экзамены. Записал видео-курс «Web-технологии» на Stepik. Проекты на гитхабе - https://github.com/mialinx

Руководитель программы
В отрасли с 2009 года. Пилил монолит в Lazada, готовил ETL/data pipelines в IPONWEB, разрабатывал инфраструктурные проекты для антиспама в Яндексе. Также был СТО в programmatic-стартапе «Трамплин Медиа».

Опытный разработчик, знает несколько языков программирования (Golang, Python, Perl). Окончил факультет прикладной математики в Московском институте электроники и математики.

В настоящее время проектирует микросервисную архитектуру (Golang/Kubernetes Openshift) в стартапе про умную адресуемую рекламу.

В свободное от работы время интересуется покером, кофе и… Golang — куда же без него?

Занимается поддержкой и траблшутингом серверов MySQL, приложений, написанных на PHP, etc. Активно внедряет и использует докер со всей его инфраструктурой. Придерживается мнения, что всё должно быть декларативно описано, поэтому использует Ansible.

Разрабатывает и настраивает инфраструктуру для таких стартапов, как exposcan.ru, crispmessenger.com. Занимается мониторингом при помощи Zabbix и Prometheus, создаёт графики в Grafana.

Чтобы легко подстраиваться под требования бизнеса, деплоит и описывает процессы в Gitlab, собирает и обрабатывает логи в ELK и Graylog2. Любит и умеет пользоваться активным сетевым оборудованием вендора MikroTik.

Иван
Ремень
Артем
Желтак
Елена
Граховац
Антон
Телышев
Дмитрий
Смаль
Александр
Давыдов
Владимир
Дроздецкий
Преподаватели
Иван Ремень
Учился в технопарке Mail.Ru. В 2013 году начал работать стажером в проекте "Почта" компании Mail.Ru. С 2015 года преподавал различные (в том числе и авторские) курсы в образовательных проектах Mail.Ru. С 2016 года занимал должность руководителя группы в Почте. В том же году получил диплом магистра по специальности "Программная инженерия" в МГТУ им. Н.Э. Баумана.

С 2018 года начал работать в Ситимобил на должности руководителя группы. С апреля 2019 года был назначен руководителем направления серверной разработки. Занимается развитием технических навыков людей, поддержкой их мотивации, развитием отказоустойчивых архитектур, внедрением новых технологий в процесс разработки (golang, tarantool).

Основные технические навыки:
Golang
C
MySQL
Tarantool
Highload architecture
Linux API

Артем Желтак
Rambler&Co
Teamlead/Techlead проекта “Поток” в Rambler&Co
Закончил МГТУ им. Н.Э.Баумана по специальности “Инженер конструктор подьемно-транспортных систем”.
Первую работу нашел случайно, сделав сайт для знакомого.
В web-разработке с третьего курса института. Основные проекты базировались в сфере парсинга данных и рекламных платформ.
Длительное время писал на PHP, впоследствии перешел на Go.
В профессии уже более 8 лет.

Преподаватель
Елена Граховац
Руководит командой автоматизации TechOps-процессов в немецком финтех-стартапе N26 (Берлин). Пишет на Go с 2015-го, профессиональный опыт в ИТ — 12 лет.

В свободное время выступает с докладами и мастер-классами на российских и международных ИТ-конференциях как DevOps-энтузиаст.

Руководит программным комитетом конференции GolangConf и является соведущей подкаста GolangShow.

Область интересов:
DevOps-культура и автоматизация, построение нативных облачных сервисов, язык программирования Go.

Преподаватель
Антон Телышев
Ведущий Golang-разработчик в “Центр недвижимости от Сбербанка” (ДомКлик). В компании занимаюсь разработкой внутренних сервисов (платежный шлюз, кошелёк компании, система единой авторизации и пр.).

До этого разрабатывал системы мониторинга и внутренние сервисы в Mail.Ru Group, а также участвовал в разработке и поддержке облака, обеспечивающего защиту банков от кибер-мошенничества - Kaspersky Fraud Prevention Cloud.

Окончил бакалавриат и магистратуру в МГТУ им Н.Э. Баумана (кафедра “Компьютерные системы и сети (ИУ6)”). Учился в Технопарке Mail.Ru, где впоследствии преподавал Подготовительную программу по С++.

В свободное время занимаюсь кроссфитом и веду Telegram-канал о Golang (@gouniverse).

Основные технические навыки:
Python
C++
Golang

Преподаватель
Дмитрий Смаль
Старший разработчик в Yandex
Занимается разработкой инфраструктуры Яндекс.Облако и поддержкой реляционных баз данных. За 10 лет прошёл путь от рядового разработчика до старшего программиста в NetCracker, Agava, Mail.Ru Group (проектов «Игры», «Здоровье» и «Дети») и Яндексе.

Может спроектировать архитектуру, реализовать проект с помощью небольшой команды, развернуть необходимую инфраструктуру, организовать процесс разработки и деплоя. Разрабатывал сервера, поддерживающие 500k+ подключений, собирал модный фронтенд на React, отправлял тонны писем по SMTP, проектировал API и базы данных. Владеет Python, JavaScript, Go, Perl и другими языками и технологиями.

Окончил Московский физико-технический институт, где получил степень магистра. Около 6 лет был лектором в Технопарке и Технотреке Mail.Ru. Читал лекции, проводил практические занятия и экзамены. Записал видео-курс «Web-технологии» на Stepik. Проекты на гитхабе - https://github.com/mialinx

Руководитель программы
Александр Давыдов
Lazada Tech Hub Russia
В отрасли с 2009 года. Пилил монолит в Lazada, готовил ETL/data pipelines в IPONWEB, разрабатывал инфраструктурные проекты для антиспама в Яндексе. Также был СТО в programmatic-стартапе «Трамплин Медиа».

Опытный разработчик, знает несколько языков программирования (Golang, Python, Perl). Окончил факультет прикладной математики в Московском институте электроники и математики.

В настоящее время проектирует микросервисную архитектуру (Golang/Kubernetes Openshift) в стартапе про умную адресуемую рекламу.

В свободное от работы время интересуется покером, кофе и… Golang — куда же без него?

Владимир Дроздецкий
Разработчик инфраструктуры exposcan.ru, crispmessenger.com
Занимается поддержкой и траблшутингом серверов MySQL, приложений, написанных на PHP, etc. Активно внедряет и использует докер со всей его инфраструктурой. Придерживается мнения, что всё должно быть декларативно описано, поэтому использует Ansible.

Разрабатывает и настраивает инфраструктуру для таких стартапов, как exposcan.ru, crispmessenger.com. Занимается мониторингом при помощи Zabbix и Prometheus, создаёт графики в Grafana.

Чтобы легко подстраиваться под требования бизнеса, деплоит и описывает процессы в Gitlab, собирает и обрабатывает логи в ELK и Graylog2. Любит и умеет пользоваться активным сетевым оборудованием вендора MikroTik.

Необходимые знания

- Опыт разработки от 1 года
- Опыт разработки web-приложений
- Знания по основным конструкциям и синтаксису Golang

Будет плюсом:
- знание одного из ЯП, в особенности С/C++;
- опыт администрирования Linux.
Процесс обучения
Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя.

Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете.

Домашнее задание выдается в среднем одно в неделю, а его выполнение занимает от 2 до 5 часов. Мы горячо призываем заниматься такой самостоятельной работой, так как это поможет вам качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью наших преподавателей.

Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту вы сможете задавать преподавателю в слаке или во время вебинаров.

Курс длится 5 месяцев, из которых финальный отводится для выполнения проектной работы.

Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в слаке группы и на проектных занятиях.
Программа обучения
Модуль 1
Начало работы с Go
Модуль 2
Стандартные библиотеки и практики
Модуль 3
Cетевое взаимодействие
Модуль 4
Микросервисы
Модуль 5
Проект
Начало работы с Go
В первом модуле мы изучим Go как язык. Рассмотрим основные синтаксические конструкции и их выполнение в рантайме. Основное внимание уделим конструкция уникальным для языка Go, которых нет в другом языке.
Тема 1: Начало работы c Go
* Установка рабочего окружение Go
* Основные синтаксические конструкции
* Публичные и приватные идентификаторы
* Импорт пакетов
* Алиасы и импорт без использования
* init функции и порядок инициализации пакетов
* internal пакеты
* Рекомендованная структура проекта
Домашние задания: 1
1 Hello now()
Завести Go репозиторий на GitHub, написать программу печатающую текущее время / точное время с использованием библиотеки NTP.
Программа должна корректно обрабатывать ошибки библиотеки: распечатывать их в STDERR и возвращать ненулевой код выхода.
Тема 2: Инструментарий Go, тестирование
* Подробнее про GOROOT и GOPATH
* Сборка модулей и установка программ: go get, go build, go install
* Кросс-компиляция
* Модули и зависимости: go mod
* Форматирование кода: go fmt, imports
* Линтеры: go vet, golint, металинтеры
* Тестирование Go программ
* Пакет testing
* Паттерны и анти-паттерны unit-тестирования
Тема 3: Элементарные типы данных в Go
* Элементарные типы
* Zero value
* Константы
* Указатели
* Строки и руны и массивы байтов
* Стандартный функции для работы со строками и Unicode
* Преобразование и присвоение типов
* Передача по ссылке и значению
Домашние задания: 1
1 Распаковка строки
Создать Go функцию, осуществляющую примитивную распаковку строки, содержащую повторяющиеся символы / руны, например:

* "a4bc2d5e" => "aaaabccddddde"
* "abcd" => "abcd"
* "45" => "" (некорректная строка)

Дополнительное задание: поддержка escape - последовательности
* `qwe\4\5` => `qwe45` (*)
* `qwe\45` => `qwe44444` (*)
* `qwe\\5` => `qwe\\\\\` (*)

Тема 4: Слайсы и словари
* Отличия массивов и слайсов
* Внутренняя структура слайсов и словарей
* Создание и работа со слайсами и словарями
* Отличие длинны и емкости (length vs capacity)
* Различные способы итерации
* Сортировка
* Распространные ошибки и затруднения
Домашние задания: 1
1 Частотный анализ
Написать функцию, которая получает на вход текст и возвращает
10 самых часто встречающихся слов без учета словоформ
Тема 5: Функции и обработка ошибок
* Функции и области видимости
* Замыкания
* Функции с переменным числом аргументов
* Типы ошибок
* panic, recover и defer
* Стек-трейсы
* Best practiсe обработки ошибок
Тема 6: Структуры
* Определение структур
* Вложенные и анонимные структуры
* Тэги элементов структуры
* Использование тэгов для JSON и работы с СУБД
* Публичные структуры и публичные элементы структур
* Методы типов
Домашние задания: 1
1 Двусвязный список
Цель: https://en.wikipedia.org/wiki/Doubly_linked_list ​ Ожидаемые типы (псевдокод): ​ ``` List // тип контейнер Len() // длинна списка First() // первый Item Last() // последний Item PushFront(v interface{}) // добавить значение в начало PushBack(v interface{}) // добавить значение в конец Remove(i Item) // удалить элемент ​ Item // элемент списка Value() interface{} // возвращает значение Nex() *Item // следующий Item Prev() *Item // предыдущий ```
Тема 7: Интерфейсы
* Определение и реализация интерфейсов
* Внутренняя структура интерфейсов
* Интерфейсы как "универсальный" тип
* Определение типа значения интерфейса
* Опасный и безопасный type cast
* Конструкций switch
* Слайсы и словари с интерфейсами
* Где мои generic-и?
Тема 8: Горутины и каналы
* Запуск горутин
* Каналы, внутреняя структура канала
* Буферизованные и небуферизованные каналы
* Операции работы с каналами
* Использование каналов для передачи данных и синхронизации
* Конструкция select
* Таймеры в Go
Домашние задания: 1
1 Параллельное исполнение
Написать функцию для параллельного выполнения N заданий (т.е. в N параллельных горутинах).

Функция принимает на вход:
- слайс с заданиями `[]func() error`;
- число заданий которые можно выполнять параллельно (`N`);
- максимальное число ошибок после которого нужно приостановить обработку.

Учесть что задания могут выполняться разное время.
Тема 9: Примитивы синхронизации
* Мьютексы
* Условные переменные
* Гарантировано одноразовое выполнение
* Pool и WaitGroup
* Модель памяти в Go
* Race-детектор
Стандартные библиотеки и практики
Во втором модуле мы познакомимся с основными функциями стандартной библиотеки Go, а так же наиболее популярными open-source библиотеками. Научимся пользоваться инструментами для управления зависимостями, тестирования и профилирования Go кода.
Тема 1: Работа с вводом/выводом
* Тип Buffer
* Стандартные интерфейсы: Reader, Scanner, Writer, Closer
* Блочные устройства, Seeker
* Форматированный ввод и вывод: fmt
Домашние задания: 1
1 Копирование файлов
Цель: Реализовать утилиту копирования файлов (см man dd). Выводить в консоль прогресс копирования в %. Должна быть возможность скачать протестировать и установить программу с помощью go get/test/install Программа должна проходить проверку go vet и golint
Тема 2: Форматирование данных
* base64 и другие форматы строк, кодировки
* Текстовые форматы: JSON, XML, YAML
* Использование стуктур и интерфейсов для парсинга
* Бинарные форматы: MsgPack и ProtocolBuffers
Тема 3: Взаимодействие с OS
* Обработка аргументов командной строки: flags, cobra
* Работа с переменными окружения
* Запуск внешних программ
* Работа с файловой системой
* Временные файлы
* Обработка сигналов
Домашние задания: 1
1 Утилита envdir

Реализовать утилиту envdir на Go.
Эта утилита позволяет запускать программы получая переменные окружения из определенной директории. См man envdir
Тема 4: Файлы конфигурации и логирование
* Различные варианты конфигурации
* Использование простых форматов: ini, yaml и т.п.
* Библиотеки для работы с конфигурацией: viper и confita
* Стандартная библиотека для логирования
* Расширенное логирование с помощью Zap
Домашние задания: 1
1 Каркас микросервиса
Реализовать "каркас" микросервиса, считывающий конфиг из файла,
создающий логгер/логгеры с указанными уровнями детализации.
Тема 5: Рефлексия
* Использование пакета reflect
* Type и Value
* Использование рефлексии совместно с type switch
* Пакет unsafe и тип unsafe.Pointer
* Пример использования рефлексии
Тема 6: Кодогенерация в Go
* Примеры применения кодогенерации
* Команда go generate
* Генерация кода по Protobuf спецификациям
Домашние задания: 1
1 Простейший календарь
Сделать "заготовку" для микросервиса-календаря. Определить структуру определяющую событие, написать методы для добавления/изменения/удаления событий. Хранить события в памяти, без персистентности.
Тема 7: Go Internals - Память
* Структура памяти в Linux процессе
* Особенности памяти в Go приложении
* Выделение памяти на стеке
* Выделение и освобождение памяти в куче
* Механизм сборки мусора в Go
Тема 8: Профилирование и оптимизация Go программ
* Общая информация о профилировании
* Виды профайлеров
* Профилирование использования CPU
* Профилирование выделения памяти
* Flame диаграммы
* Общие оптмизации в Go
* Оптимизации выделения памяти
Домашние задания: 1
1 Оптимизация производительности
Провести анализ производительности программы из дз 2.6.
Построить Flame диаграммы и выявить наиболее медленные фрагменты.
Попытаться улучшить производительность.
Тема 9: Go Internals - Планировщик
* Основные структуры планировщика: P, M, G
* Механизм переключения горутин
* Системные вызовы в Go
* Сетевые вызовы в Go
Cетевое взаимодействие
Go чаще все используется для написания сетевых сервисов. В третьем модуле мы изучим как работать с сетью в языке Go. Рассмотрим стандартные протоколы и формат, а так же напишем простой сервер. Отдельное внимание будет уделено обработке ошибок возникающих при работе с сетью.
Тема 1: Низкоуровневые протоколы TCP, UDP, DNS
* Стандартные интерфейсы - Dialer, Conn
* Возможные сетевые проблемы: потеря пакетов, подвисшие соединения, недоступность
* Таймауты и контекст
* Отладка сетевых проблем
Домашние задания: 1
1 Telnet
Реализовать telnet клиент (см man telnet)
Тема 2: HTTP библиотека
* Использование HTTP клиента
* Создание простого HTTP сервера
* Декораторы и middleware
* HTTP/1.1 и HTTP/2.0
* REST
* Протокол S3
Тема 3: GRPC
* Описание API с помощью Protobuf
* Генерация кода для GRPC клиента и сервера
* Реализация API
* Прямая и обратная совместимость API
* Представление о Clean Architecture
Домашние задания: 1
1 GRPC сервис
Создать GRPC спецификацию для сервиса-календаря из дз 2.7.
Сгенерировать GRPC сервер и клиент, проверить работу сервиса.
Отделить модель данных от Protobuf структур.
Тема 4: Работа с SQL
* Стандартные интерфейсы sql.DB, sql.Rows, sql.Tx
* Подключение к СУБД и настройка пула подключений
* Выполнение запросов и получение результатов
* Простейшие SQL запросы
Домашние задания: 1
1 Работа с базами данных
Изменить код сервиса-календаря, так что бы события хранились в базе данных.
Тема 5: NoSQL базы данных
* Встроенные базы данных, BoltDB
* Использование Redis для кеширования данных
* Выбор базы данных для проекта
Тема 6: Clean Architecture
* Проектирование Application сервера
* MVC архитектура и ее ограничения
* Clean Architecture
* Dependency Injection
* Тестирование бизнес-логики
Тема 7: Очереди сообщений
* Использование RabbitMQ, Kafka
* Возможные проблемы с очередями: перегрузка, падение обработчиков, сбойные сообщения
* Запуск пула обработчиков с помощью systemd или supervisor
Домашние задания: 1
1 Работа с очередями
Реализовать "напоминания" о событиях с помощью RabbitMQ.
Создать процесс, который периодически сканирует основную базу данных, выбирая события о которых нужно напомнить. Создать процесс, который читает сообщения из очереди и шлет уведомления.
Тема 8: Web-Sockets
* Технологии Real-Time сообщений
* Commet
* Web-Sockets
* Архитектура сервера для Real-Time сообщений
Микросервисы
В четвертом модуле мы рассмотрим вопросы архитектуры web сервисов, в частности популярную сейчас микросервисную архитектуру. Рассмотрим вопросы тестирования, развертывания и эксплуатации приложении.
Тема 1: Монолит и микросервисы
* Отличия микросервисов от монолитной архитектуры
* Преимущества микросервисов
* 12 factor applications
* Архитектура одного микросервиса
* Clean Architecture
Домашние задания: 1
1 Доработка сервиса
Доработать дз 3.8, разделив код на отдельные сервисы
Тема 2: Docker
* Основные команды docker
* Представление о контейнер и образе
* Сборка собственных Docker контейнеров
* Запуск и управление контейнерами
* Передача конфигурации и получение логов
* Использование Docker Registry
Домашние задания: 1
1 Докеризация сервиса
Подготовить Docker файлы для каждого из сервисов из дз 3.8.
Собрать образы и загрузить в DockerHub
Тема 3: Тестирование микросервисов
* Использование docker-compose
* Интеграционные тесты
* Behaviour Driven Development
* Описание тестов на языке Gherkin
* Использование godog для запуска тестов
Домашние задания: 1
1 Интеграционное тестирование
Создать docker-compose файл, поднимающий все сервисы проекта, включая базу и очередь. Написать простейший интеграционный тест для проекта.
Тема 4: Мониторинг
* Проверка работоспособности сервисов
* Health Check в Docker
* Системные метрики: LA, CPU, MEM, IO
* Количественный мониторинг, prometheus
Домашние задания: 1
1 Мониторинг сервиса
Обеспечить простейший мониторинг проекта с помощью prometheus
Тема 5: Использование CI
* GitLab pipelines
Домашние задания: 1
1 Continuous integration
Автоматизировать тестирование и выкатку новых версий с помощью CI
Тема 6: Kubernetes
* Docker Swarm
* Puppet
* Ansible
* Как мы решаем проблему запуска сервсисов на более 1 машины
Домашние задания: 1
1 Разворачивание в kubernetes
Развернуть проект в Kubernetes. Создать описания pod-ов и service-ов.
Избавиться от hard-code IP в конфигах проектов.
Проект
Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: логгирование, liveness пробы, make файлы, тесты, статические анализаторы кода, файлы для деплоя, образ в docker, репозиторий и т.п.)
Тема 1: Проектная работа
Домашние задания: 1
1 Проект
Тема 2: Консультация по проектам
Тема 3: Презентация проектов
Выпускной проект
В завершении курса студентам будет предложено выполнить один из трех проектов на выбор:
1. Микросервис для борьбы с брут-форсом.
2. Сервис для подготовки превью изображений.
3. Простейшая система сбора данных.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Обзор микрофреймворков в Golang
Александр Давыдов
День открытых дверей
22 августа в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров и презентации к занятиям;

  • сохраните в GitHub пример работоспособного сервиса на Go, которым не стыдно будет похвастаться;

  • получите сертификат о прохождении курса;

  • получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).

Дата выдачи сертификата: 2 июня 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Разработчик Golang»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Разработчик Golang»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
60 000 ₽
В месяц: 15 000 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
28 ноября