Golang
Базовый курс по языку программирования Go. Рассматриваются основные типы данных языка, управляющие структуры, особенности стиля программирования и встроенные инструменты компилятора. Дополнительное внимание уделяется возможностям стандартной библиотеки, а также приводятся примеры решения практических задач, в частности реализация REST-интерфейсов.
32 ак.ч.
Онлайн
DEV-040
Golang
Записаться на курс
Длительность
32 ак.ч.
Локация
Онлайн
Код
DEV-040
Расписание и цены
34 000 руб.
9 900 грн.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей
Golang
Записаться на курс
Длительность
32 ак.ч.
Локация
Онлайн
Код
DEV-040
Расписание и цены
34 000 руб.
9 900 грн.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей

Описание

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

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

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

В курсе также рассматривается ряд практических вопросов, в частности взаимодействие с реляционными базами данных, а в конце курса рассматривается пример реализации REST-интерфейса.

После прохождения курса выдается
сертификат на бланке Luxoft Training

Цели

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

Целевая аудитория

  • Основная:
    Разработчики с опытом программирования на других языках
  • Дополнительная:
    Архитекторы, системные проектировщики, тестировщики

Предварительная подготовка

Умение писать код на каком-либо языке программирования.

Разбираемые темы

  • Темы 1-5: теория – 1 ч., практика – 1 ч.

    1. Environment setup
      • Как установить и настроить компилятор языка Go.
      • Пример написания, компиляции и запуска простой программы на языке Go.
    2. Go IDEs
      • Какие интегрированные среды разработки можно использовать для написания кода на языке Go, как их установить и настроить. 
    3. Go tools
      • Основной инструментарий поддержки процесса разработки.
      • Как скомпилировать и запустить программу на языке Go, как получить доступ к документации, а также добавить документацию в собственный код. 
    4. Directory structure.Go modules. Packages
      • Как организовать структуру директории проекта так, чтобы она соответствовала общепринятым правилам.
      • Способы декомпозиции кода на отдельные составляющие для удобства последующей поддержки и повторного использования. 
    5. Installing dependencies
      • Использование готовых решений вместо написания собственного кода. Управление зависимостями и распределенное хранение пакетов.
  • Темы 6 и 8: теория – 1 ч., практика – 3 ч.

    1. Data types and variables declaration. Zero values. Type conversions
      • Представление примитивных значений в языке и выполнение базовых операций над ними.
    2. Branching and loops. break, continue, fallthrough, goto
      • Описание алгоритмов с помощью циклов и ветвлений, отличие синтаксических конструкций в Go от других языков программирования.
  • Тема 7: теория – 2 ч., практика – 2 ч.

    1. Containers: arrays, slices, maps
      • Как хранить последовательности значений: массивы, срезы и хеши, их внутреннее представление и примеры использования.
  • Тема 9: теория – 2 ч., практика – 2 ч.

    1. Functions. Multiple return values. Variadic parameters. Function literals and closures
      • Определение функций и передача параметров.
      • Функции с произвольным количеством аргументов.
      • Функциональные возможности языка, анонимные функции и замыкания.
  • Темы 10-14: теория – 2 ч., практика – 2 ч.

    1. Types declarations. Constants, Iota. Structures. Embedded structs. Anonymous structs. Nested structs
      • Способы определения пользовательских типов и констант, описание последовательностей значений. 
      • Как описать сущности предметной области при помощи конструкций языка. 
    2. Pointers. Value and references types
      • Управление памятью и указатели. 
    3. Defer statement
      • Оператор отложенного вызова функций. 
    4. Error handling. Panic, recover
      • Как обнаружить и обработать ошибки времени выполнения. 
      • Способы написания надежного и отказоустойчивого кода. 
    5. Methods and interfaces. Method expressions
      • Понятие интерфейса и его реализации. 
      • Построение объектно-ориентированного кода на основе интерфейсов.
      • Методы.
  • Темы 15-17: теория – 2 ч., практика – 2 ч.

    1. Concurrency vs parallelism. Goroutines. Memory model
      • Как делать несколько вещей одновременно. 
      • Организация конкурентного выполнения на основе горутин. 
      • Модель памяти в Go.
    2. Channels. Blocking and unblocking channels. select statement.
      • Способ написания надежного конкурентного кода: обмен данными между горутинами на основе каналов. 
    3. Waitgroups, mutexes, atomics
      • Синхронизация отдельных частей программы.
  • Темы 18-19: теория – 1 ч., практика – 3 ч.

    1. Reading and writing files
      • Как сохранять данные между отдельными запусками программы.
    2. Standard library: fmt, log, strings, time, sort, http, math, regexp
      • Встроенные механизмы языка для решения повседневных задач.
  • Темы 20-24: теория – 3 ч., практика – 3 ч.

    1. Testing and benchmarking
      • Как гарантировать стабильность программного кода с помощью модульных тестов, а также найти наиболее эффективное решение задачи.
    2. JSON encoding and decoding
      • Обмен данными с программами, написанными на других языках.
    3. Databases. PostgreSQL. MongoDB
      • Хранение данных в реляционных базах.
    4. REST application example
      • Пример полноценного бек-енд приложения.
    5. Unsafe package
      • Расширения языка для выполнения небезопасных функций.
  • Развернуть программу
Раcписание курсов
Вид:
Регистрируйтесь на следующий курс
Предварительная регистрация гарантирует участие в обучении. Мы обязательно оповестим вас, когда курс будет запланирован
+
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Для физических лиц
10%
Скидка на любой курс
5%
Бонус от стоимости курса после прохождения
5%
Бонус за рекомендацию курсов Luxoft Training
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Luxoft Training – первый учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
Остались вопросы?
Связаться с нами
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.