Kail
Организатор
Организатор
- Регистрация
- 09.04.2020
- Сообщения
- 449 438
- Реакции
- 44 621
- Монеты
- 1 191
- Оплачено
- 0
- Баллы
- 0
- #SkladchinaVip
- #1
[OTUS] Go-разработчик. Продвинутый уровень [Юра Рубаха, Евгений Кабо]
- Ссылка на картинку
-
От основ и внутреннего устройства Go – до создания микросервисов и взаимодействия с другими системами.
Для кого этот курс:
За время курса вы создадите десяток работающих программ — от простых утилит до полноценного сервиса «Календарь». В итоге защитите собственный проект, который можно будет добавить в портфолио.
Процесс обучения:
У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!
Формат обучения:
Программа:
1. Начало работы с Go
В первом модуле мы посмотрим на Go как на язык программирования. Рассмотрим основные синтаксические конструкции и их выполнение в runtime. Основное внимание уделим конструкциям, уникальным для языка Go, которых нет в другом языке.
Второй модуль мы посвятим одной из самых главных тем Go — конкурентности. Познакомимся с горутинами и каналами, с тем, как устроена память и сборка мусора в Go. Научимся писать конкурентно-безопасные программы.
В третьем модуле мы познакомимся с основными функциями стандартной библиотеки Golang, а также наиболее популярными open-source библиотеками. Научимся взаимодействовать с операционной и файловой системами из Go, поговорим о понятиях рефлексии и кодогенерации, а также рассмотрим инструменты профилирования программ, написанных на Go.
Go чаще всего используется для написания сетевых сервисов. В четвертом модуле мы изучим, как работать с сетью в языке Go. Рассмотрим стандартные протоколы и форматы, а также напишем простой web-сервер. Отдельное внимание будет уделено обработке ошибок, возникающих при работе с сетью. Дополнительно в данном модуле мы поговорим о работе с SQL и gRPC.
В пятом модуле мы рассмотрим вопросы архитектуры web-сервисов, в частности популярную на данный момент микросервисную архитектуру. Рассмотрим вопросы интеграционного тестирования, развертывания и эксплуатации приложений.
Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: ядро, работа с хранилищем, конфигурация и логгирование, работа с очередями сообщений, liveness-пробы, Makefile, юнит- и интеграционные тесты, статический анализ кода, файлы для деплоя, Dockerfile'ы и пр.
К окончанию курса вы разработаете микросервис на Go. Можете использовать бизнес-кейс, развить собственную идею или просто взять учебное задание. Выпускной проект защищают перед преподавателем. После успешной защиты вы получите свидетельство о повышении квалификации.
Примеры итоговых проектов студентов:
Для кого этот курс:
- Для бэкенд-разработчиков.
Сможете перейти на Golang, изучите различные библиотеки и лучшие практики. - Для тех, кто уже разобрался с основами Go, и тех, кто прошёл курс Go-разработчик. Базовый уровень.
Структурируете и расширите имеющиеся знания, перейдёте от написания кода к инженерной разработке. - Для фронтенд и фулстек-разработчиков.
Сможете делать продукт от пользовательского интерфейса до K8s. - Для DevOps.
Научитесь профилировать «живые» сервисы и осуществлять мониторинг на уровне кода.
- опыт разработки от 1 года
- опыт разработки серверной части приложений
- знание git, работа в GitHub
- общее знакомство с CI: GitLab CI, Travis CI
- знания по основным конструкциям и синтаксису Go
- знание одного из ЯП, в особенности С/C++
- опыт администрирования Linux
- Изучите не только синтаксис языка, но и внутренние механизмы Go
Поймёте, как работают планировщик, сборщик мусора и эскейп-анализ. Научитесь профилировать приложения через pprof, писать бенчмарки и избегать типовых ошибок, связанных с памятью, слайсами, мапами и nil-интерфейсами. - Освоите промышленную сетевую разработку
Сможете самостоятельно разрабатывать клиент-серверные системы на Go: от TCP/UDP и SQL/NoSQL до промышленных HTTP/gRPC API с транзакциями, TLS и полным циклом тестирования. - Разберёте прикладные алгоритмы, необходимые для позиций middle и senior
Реализуете алгоритмы, которые спрашивают на собеседованиях в крупные IT-компании. В их числе — LRU-кэш на связном списке, конвейеры с горутинами, частотный анализ текста и параллельное выполнение задач.
- создавать надёжные серверные приложения
- профилировать и оптимизировать производительность кода
- работать с горутинами без гонок данных
- упаковывать сервисы в Docker и K8s
За время курса вы создадите десяток работающих программ — от простых утилит до полноценного сервиса «Календарь». В итоге защитите собственный проект, который можно будет добавить в портфолио.
Процесс обучения:
У нас нет предзаписанных уроков.
Занятия в OTUS – это онлайн-вебинары. Преподаватели-практики помогут погрузиться в теорию, обучат на реальных примерах, расскажут о необходимых в работе инструментах. Вы всегда сможете задать вопрос и получить обратную связь.
И самое главное – сможете практиковаться!
Формат обучения:
- Интерактивные вебинары
2 онлайн-занятия по 2 академических часа в неделю, вечный доступ к обучающим материалам. - Практика
16 домашних заданий и проектная работа помогут закрепить знания и открыть новые карьерные возможности.
Программа:
1. Начало работы с Go
В первом модуле мы посмотрим на Go как на язык программирования. Рассмотрим основные синтаксические конструкции и их выполнение в runtime. Основное внимание уделим конструкциям, уникальным для языка Go, которых нет в другом языке.
- Тема 1: Знакомство с курсом / ДЗ
- Тема 2: Синтаксис языка
- Тема 3: Типы данных
- Тема 4: Особенности языка и типовые ошибки / ДЗ
- Тема 5: Лучшие практики работы с ошибками / ДЗ
- Тема 6: Тестирование в Go
- Тема 7: Продвинутое тестирование в Go
- Тема 8: Интерфейсы изнутри / ДЗ
Второй модуль мы посвятим одной из самых главных тем Go — конкурентности. Познакомимся с горутинами и каналами, с тем, как устроена память и сборка мусора в Go. Научимся писать конкурентно-безопасные программы.
- Тема 1: Горутины и каналы
- Тема 2: Примитивы синхронизации в деталях / ДЗ
- Тема 3: Дополнительные примитивы синхронизации
- Тема 4: Concurrency patterns / ДЗ
- Тема 5: Go внутри. Планировщик
- Тема 6: Go внутри. Память и сборка мусора
В третьем модуле мы познакомимся с основными функциями стандартной библиотеки Golang, а также наиболее популярными open-source библиотеками. Научимся взаимодействовать с операционной и файловой системами из Go, поговорим о понятиях рефлексии и кодогенерации, а также рассмотрим инструменты профилирования программ, написанных на Go.
- Тема 1: Работа с вводом/выводом в Go / ДЗ
- Тема 2: Конфигурация и логирование
- Тема 3: CLI / ДЗ
- Тема 4: Рефлексия
- Тема 5: Кодогенерация и AST
- Тема 6: Дженерики в Go / ДЗ
- Тема 7: Профилирование и оптимизация Go программ / ДЗ
Go чаще всего используется для написания сетевых сервисов. В четвертом модуле мы изучим, как работать с сетью в языке Go. Рассмотрим стандартные протоколы и форматы, а также напишем простой web-сервер. Отдельное внимание будет уделено обработке ошибок, возникающих при работе с сетью. Дополнительно в данном модуле мы поговорим о работе с SQL и gRPC.
- Тема 1: Контекст и низкоуровневые сетевые протоколы / ДЗ
- Тема 2: Работа с SQL / ДЗ
- Тема 3: Работа с NoSQL
- Тема 4: Работа с HTTP
- Тема 5: Работа с gRPC
- Тема 6: Работа с gRPC ч.2 / ДЗ
В пятом модуле мы рассмотрим вопросы архитектуры web-сервисов, в частности популярную на данный момент микросервисную архитектуру. Рассмотрим вопросы интеграционного тестирования, развертывания и эксплуатации приложений.
- Тема 1: Монолит и микросервисы
- Тема 2: Кэширование
- Тема 3: Очереди сообщений / ДЗ
- Тема 4: Docker
- Тема 5: K8s / ДЗ
- Тема 6: Helm
- Тема 7: Мониторинг / ДЗ
- Тема 8: Тестирование микросервисов
Проект, разрабатываемый студентами, будет представлять собой реализацию микросервиса с полным набором компонентов, таких как: ядро, работа с хранилищем, конфигурация и логгирование, работа с очередями сообщений, liveness-пробы, Makefile, юнит- и интеграционные тесты, статический анализ кода, файлы для деплоя, Dockerfile'ы и пр.
- Тема 1: Проектная работа. Вводное
- Тема 2: Консультация по проектам
- Тема 3: Итоговое занятие
К окончанию курса вы разработаете микросервис на Go. Можете использовать бизнес-кейс, развить собственную идею или просто взять учебное задание. Выпускной проект защищают перед преподавателем. После успешной защиты вы получите свидетельство о повышении квалификации.
Примеры итоговых проектов студентов:
- Системный мониторинг
- SQL-мигратор
- Banner Rotation service
- Rate Limit. Анти-брутфорс
- Превьювер изображений
- Руководитель курса Юра Рубаха
Golang-разработчик - Евгений Кабо
Старший Go-разработчик, Ozon Bank - Алексей Романовский
Разработчик, Resolver - Роман Грицуляк
Разработчик, консультант - Александр Хохлов
Архитектор платформенных решений, ГК Иннотех
Показать больше
Зарегистрируйтесь
, чтобы посмотреть контент.
Скачать