Що нового?

Придбаний Golang-разработчик [IBS Training Center]

Інформація про покупку
Тип покупки: Складчина
Ціна: 56667 ГРН
Учасників: 0 з 20
Організатор: Відсутній
Статус: Набір учасників
Внесок: 2946.7 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Golang-разработчик [IBS Training Center]



Курс «Golang-разработчик» представляет собой комплексную программу обучения, которая призвана помочь вам освоить язык программирования Golang от основ до продвинутого уровня. В ходе курса вы узнаете о преимуществах и областях применения Golang. Вы изучите основные концепции: переменные, типы данных, операции и управляющие конструкции. Вам будет представлено ООП в Golang, включая структуры, методы и интерфейсы. Вы также разберетесь с принципами работы с массивами, слайсами, мапами и строками.

О чём курс
Курс также охватывает обработку ошибок и паник, позволяя вам создавать надежные и безопасные программы на Golang.

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

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

Обучение проходит в формате вебинаров с экспертами, самостоятельным выполнением практики.

Программа курса

01.Знакомство с Golang
02.Переменные и элементарные типы данных
03.Управляющие конструкции языка и отладка программ
04.Функции
05.ООП в Golang
06.Интерфейсы
07.Массивы и слайсы, мапы
08.Строки и руны
09.Обработка ошибок и паник
10.Тестирование
11.Конкурентность и параллелизм в Golang
12.Примитивы синхронизации
13.Сериализация данных
14.Работа с сетью
15.Конфигурация
16.Логирование
17.Работа с базами данных
18.Микросервисы
19.gRPC
20.Очереди сообщений
21.Трейсинг
22.Паттерны многопоточности
23.Память и сборка мусора
24.Работа с ОС
25.Рефлексия
26.Кодогенерация
27.Профилирование и оптимизация Go программ
28.Кэширование
29.Внутреннее устройство планировщика

Итого на программу 80 часов: теория – 40 ч (50%), практика – 40 ч (50%)

01.Знакомство с Golang
  • Плюсы и минусы
  • Сферы применения
  • Кто использует
02.Переменные и элементарные типы данных
  • Типизация в Go
  • Объявление переменной
  • Операция присваивания
  • Арифметические операции
  • Указатели
  • Расположения переменных в памяти
  • Понятие "zero value"
  • Приведение типов
  • Дженерики
03.Управляющие конструкции языка и отладка программ
  • Конструкции if ... {} else {}, switch
  • Условия и логические операции
  • Цикл for
  • Метки
04.Функции
  • Виды функций.
  • Сигнатура функции
  • Передача аргументов в функцию по ссылке и по значению
  • Области видимости, {}
  • Ошибки, связанные с областью видимости
  • Замыкания
  • Затенения
05.ООП в Golang
  • Определение структур
  • Инкапсуляция полей структуры
  • Композиция
  • Выравнивание
  • Методы
06.Интерфейсы
  • Утиная типизация
  • Композиция интерфейсов
  • Утверждение типов
  • Конструкция type switch
  • Определение и реализация интерфейсов
  • Внутреннее устройство интерфейса
  • Влияние использования интерфейсов на производительность программы
  • Значение типа интерфейс и ошибки, связанные с nil
  • Правила присваивания значений переменным типа интерфейс
07.Массивы и слайсы, мапы
  • Массивы и слайсы, мапы
  • Длина и ёмкость
  • Внутренняя структура слайсов и мап
  • Различные способы итерации
  • Частые ошибки и затруднения
08.Строки и руны
  • Строки, руны и массивы байт
  • Стандартные функции для работы со строками и Unicode
  • Работа со строками через strings builder
09.Обработка ошибок и паник
  • Интерфейс error
  • Конструкция defer
  • Функции panic и recover.
  • Кастомные ошибки
  • Обертывание ошибок
  • Сопоставление ошибок
10.Тестирование
  • Виды и назначение тестов, пирамида тестирования
  • Понятие табличных тестов
  • Пакет gomock для тестирования
  • Golden files
  • Fuzzing
11.Конкурентность и параллелизм в Golang
  • Горутины и каналы
  • Сравнение буферизированных и небуферизованных каналов
  • Использование каналов для передачи данных и синхронизации
  • Получение данных из канала: select, range
12.Примитивы синхронизации
  • Пул объектов sync.Pool
  • Мьютексы sync.Mutex/RWMutex
  • Словарь sync.Map
  • Условные переменные sync.Cond
  • Группа ожидания sync.WaitGroup, errgroup.WithContext
  • Атомарные операции - пакет atomic
  • Гарантировано одноразовое выполнение sync.Once
13.Сериализация данных
  • Понятие сериализации/десериализации
  • Протоколы JSON, XML, protobuf, gob
  • Структурные тэги
14.Работа с сетью
  • Архитектура Интернета
  • Клиент-серверное взаимодействие
  • Пакет net/http, работа с HTTP
  • Пакет net, работа с низкоуровневыми протоколами
  • CRUD, REST
  • OpenAPI, Swagger
  • Oauth, basic, jwt
15.Конфигурация
  • Различные варианты конфигурации программы
  • Использование простых форматов конфигурации: .ini, .yaml, .json и т.п.
  • Чтение конфигурации из окружения
  • Библиотека для работы с конфигурацией: viper
16.Логирование
  • Стандартная библиотека для логирования
  • Использование интерфейсов для логирования
  • Расширенное логирование на примере zerolog
17.Работа с базами данных
  • Реляционные /нереляционные СУБД и области их применения
  • Основные понятия реляционных БД
  • Подключение к СУБД и настройка пула соединений
  • Выполнение SQL-запросов и получение результатов
  • Стандартные интерфейсы sql.DB, sql.Rows и sql.Tx
  • Использование транзакций
  • SQL-инъекции
  • Работа с базами данных через пакет gorm
  • Работа с базами данных через пакет sqlx
18.Микросервисы
  • Сравнение монолитной и микросервисной архитектур
  • Плюсы и минусы микросервисов
  • Понятие 12-факторного приложения
  • Пример микросервисов на Golang (сервис регистрации пользователей и сервис рассылки уведомлений)
19.gRPC
  • gRPC и protobuf
  • Создание gRPC клиента и сервера, лучшие практики gRPC
  • Интерсепторы, надежность (ретраи, задержки)
  • TLS при работе с gRPC
20.Очереди сообщений
  • Событийно-ориентированные архитектуры
  • Apache Kafka
  • NATS
  • RabbitMQ
  • Примеры работы с RabbitMQ из Go
  • Возможные проблемы с очередями: перегрузка, падение обработчиков, сбойные сообщения и пр.
21.Трейсинг
  • RequestId
  • OpenTelemetry
  • Jaeger
22.Паттерны многопоточности
  • Работа с многими каналами: fan in, fan out
  • Pipelines
  • Cancellation
  • Graceful shutdown
23.Память и сборка мусора
  • Особенности памяти программы на Go
  • Выделение и освобождение памяти на стеке и куче
  • Escape analysis
  • Механизм сборки мусора в Go.
24.Работа с ОС
  • Обработка аргументов командной строки: flags, pflag
  • Работа с сигналами ОС
  • Запуск внешних программ
  • Стандартные интерфейсы io.Reader, io.Writer и io.Closer
  • Последовательные и произвольные доступы и интерфейс io.Seeker
  • Буферизация ввода/вывода и оптимизация копирования
  • Работа с каталогами
  • Работа с файлами
  • Работа с потоками ввода/вывода
  • Regex
25.Рефлексия
  • Использование пакета reflect
  • Плюсы и минусы рефлексии
  • Reflect.Type и reflect.Value
  • Примеры использования рефлексии
  • Пакет unsafe и тип unsafe.Pointer
26.Кодогенерация
  • Понятие кодогенерации инструмент go generate
  • Полезные библиотеки, использующие кодогенерацию: impl, stringer, jsonenums, easyjson и пр.
  • Работа с AST, практическая кодогенерация
27.Профилирование и оптимизация Go программ
  • Бенчмарки
  • Pprof
  • Профилирование
28.Кэширование
  • Cache miss, cache hit
  • Прогрев кэша
  • LRU, LFU кэш
  • Инвалидация кэша
  • Ленивый кэш
  • Вытеснение данных
29.Внутреннее устройство планировщика
  • Основные структуры планировщика: P, M, G
  • Механизм переключения горутин
  • Обработка системных и сетевых вызовов планировщиком
Цена 85000 руб
https://ibs-training.ru/kurs/golang_razrabotchik.html
 
Угорі