- PVSM.RU - https://www.pvsm.ru -

Лекции Техносферы: Программирование на Go

image

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

Список лекций:

Вы получите опыт разработки высоконагруженных бекенд приложений на Go, а также научитесь поддерживать, тестировать и отлаживать приложения. Из курса вы узнаете о том, как поднять веб-сервер, обрабатывать HTTP-запросы и работать с SQL-базой; что такое горутины c каналами и как выглядит асинхронное программирование на Go; какие основные вещи требует экcплуатация при принятии проекта в production.

Курс ведут Василий Романов, технический менеджер Почты Mail.Ru, Илья Ожерельев, программист backend'a Почты Mail.Ru, и Дмитрий Дорофеев, программист frontend'a Почты Mail.Ru.

Лекция 1. Введение

Вводная лекция, в которой описывается история языка, его основные особенности, использование Go в Mail.ru, основные синтаксические конструкции языка и базовые типы данных.

Лекция 2. Функции, структуры, интерфейсы. Объектная модель

На второй лекции рассматриваются следующие вопросы:

Функции:

  • Передача параметров по ссылке/значению.
  • Именованные параметры.
  • Замыкания.
  • Функции высшего порядка.
  • defer.
  • Системные функции.

Структуры:

  • struct, ООП.
  • Методы.
  • Embedded-объекты.

Интерфейс:

  • Пустой интерфейс.
  • Использование интерфейсов.

Лекция 3. Асинхронная модель

На третьей лекции рассматриваются параллелизм и многопоточность языка, Go-рутины (горутины), каналы, пакеты sync и atomic.

Лекция 4. Web. Работа с сетью

Из этой лекции вы узнаете о работе Go с сетью: работа с протоколом TCP, какие есть ограничения, особенности работы с URL, как строятся HTTP-запросы и ответы, и многое другое.

Лекция 5. Работа с СУБД

На пятой лекции рассказывается о клиентской (браузерной) части при работе с СУБД, а также о серверной части: построении бизнес-логики, создании сессии авторизации, профиля и работе с контентом.

Лекция 6. Система тестирования

Лекция посвящена построению системы тестирования для проверки кода на Go, вклбючая модульные тесты и выполнение непрерывной интеграции.

Лекция 7. Reflect or generate?

На лекции рассматриваются такие вопросы, как что такое рефлексия, законы рефлексии, использование go generate и так далее.

Лекция 8. Производительность

Как выявить медленно работающие части кода на Go и как их оптимизировать так, чтобы программа работала быстро в условиях ограниченности доступных ресурсов? Об этом вы узнаете из восьмой лекции.

Лекция 9. Context, unsafe, cgo

Заключительная лекция курса посвящена рассмотрению трёх тем: контекста (состояние запроса, отмена выполнения), unsafe (низкоуровневое программирование) и cgo (интеграция кодов на Go и С).


Плейлист всех лекций находится по ссылке [10]. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим [11].

Автор: Mail.Ru Group

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/254854

Ссылки в тексте:

[1] Лекция 1. Введение: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-1-vvedenie

[2] Лекция 2. Функции, структуры, интерфейсы. Объектная модель: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-2-funkcii-struktury-interfeysy-obektnaya-model

[3] Лекция 3. Асинхронная модель: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-3-asinhronnaya-model

[4] Лекция 4. Web. Работа с сетью: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-4-web-rabota-s-setyu

[5] Лекция 5. Работа с СУБД: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-5-rabota-s-subd

[6] Лекция 6. Система тестирования: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-6-sistema-testirovaniya

[7] Лекция 7. Reflect or generate?: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-7-reflect-or-generate

[8] Лекция 8. Производительность: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-8-proizvoditelnost

[9] Лекция 9. Context, unsafe, cgo: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-9-context-unsafe-cgo

[10] ссылке: https://www.youtube.com/playlist?list=PLrCZzMib1e9q-X5V9pTM6J0AemRWseM7I

[11] Технострим: https://www.youtube.com/user/tpmgtu/videos

[12] Источник: https://habrahabr.ru/post/327966/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best