Язык программирования - GO
40 ак.часов
Онлайн-курс Go: основы, горутины, REST API и CLI
-
О КУРСЕКурс предназначен для опытных разработчиков, желающих освоить язык программирования Go. В рамках обучения рассматриваются базовые конструкции языка, работа с параллелизмом, стандартные библиотеки, а также инструменты для тестирования и управления зависимостями. Особое внимание уделяется практическим навыкам: участники создадут CLI-утилиты, REST API и реализуют проекты с использованием горутин и каналов
Знающие основы программирования
Модуль 1. Введение в Go
1.1. История и особенности языка
Философия Go, сравнение с другими языками
Преимущества для современных задач (производительность, простота, параллелизм)
1.2. Установка и настройка среды
Установка Go, настройка GOPATH, знакомство с Go Modules Базовое использование go run, go build, go test
Лабораторная работа: "Hello, World!" с настройкой среды
Модуль 2. Основы синтаксиса
2.1. Типы данных, переменные, управляющие конструкции
Статическая типизация, нулевые значения, циклы, условия
Функции: сигнатуры, возврат нескольких значений
2.2. Работа с коллекциями
Массивы, срезы, карты, их инициализация и методы
Лабораторная работа: Реализация алгоритма сортировки среза
Модуль 3. Структуры и методы
3.1. Определение структур, методы, receiver’ы
Отличия от ООП в других языках, встраивание структур
3.2. Работа с JSON
Сериализация и десериализация структур
Лабораторная работа: Создание структуры "Пользователь" с валидацией полей
Модуль 5. Пакеты и модули
5.1. Создание и импорт пакетов
Видимость идентификаторов, семантическое версионирование
5.2. Go Modules
Инициализация проекта, зависимости, обновление версий
Лабораторная работа: Создание многофайлового проекта с модулями
Модуль 4. Интерфейсы
4.1. Определение и использование интерфейсов
Пустой интерфейс, type assertion, type switch
4.2. Практические кейсы
Использование интерфейсов в стандартной библиотеке (напр., io.Reader)
Лабораторная работа: Реализация плагина для обработки данных через интерфейс
Модуль 6. Обработка ошибок и тестирование
6.1. Ошибки в Go, error интерфейс
Создание собственных ошибок, errors.New, fmt.Errorf
6.2. Написание тестов
Использование testing, бенчмарки, табличные тесты
Лабораторная работа: Тестирование функции вычисления факториала
Модуль 7. Параллельное программирование
7.1. Горутины и каналы
Примитивы синхронизации: sync.Mutex, WaitGroup
7.2. Паттерны параллелизма
Worker pools, fan-out/fan-in
Лабораторная работа: Реализация параллельного сканера портов
Модуль 8. Работа с файлами и сетью
8.1. Чтение/запись файлов
Буферизованный и небуферизованный ввод-вывод
8.2. HTTP-клиент и сервер
Создание REST API с использованием net/http
Лабораторная работа: Написание HTTP-сервера для обработки запросов
Модуль 9. Стандартная библиотека Go
9.1. Обзор ключевых пакетов
fmt, strings, time, os, flag
9.2. Сценарии использования
Лабораторная работа: Создание утилиты для разбора CSV
Модуль 10. Итоговый проект
10.1. Постановка задачи
Разработка CLI-утилиты для агрегации данных (напр., погодный клиент)
10.2. Реализация и защита
Лабораторная работа: Написание и тестирование проекта
-
Получаемый документ
После успешного освоения программы слушатель получает
-
Для успешного прохождения курса необходимы:
- опыт работы с языками программирования (C, C++, C#, Java, JavaScript, Python и т.д.)
- базовое понимание концепций ООП и алгоритмов
- знание основ командной строки и работы с IDE
-
По окончании курса слушатели смогут:
◉ писать программы на Go с использованием статической типизации, структур и интерфейсов
◉ работать с параллелизмом через горутины и каналы
◉ использовать стандартную библиотеку для обработки данных, работы с сетью и файлами
◉ создавать модули, управлять зависимостями и тестировать код
◉ разрабатывать CLI-утилиты и REST API


