Содержание курса
1. Введение
8 уроков
236
75
141м
1
Открытый
1.1
История и философия Go
↗
55
13
10м 15с
0
Открытый
1.2
Установка Go, настройка среды (go toolchain, IDE, плагины)
↗
34
18
9м 58с
1
Открытый
1.3
Работа с go mod и go get
↗
31
10
10м 18с
0
Открытый
1.4
Первая программа: Hello, World!
↗
24
11
18м 58с
0
Открытый
1.5
Основы синтаксиса: переменные, типы данных, константы
↗
25
12
30м 4с
0
Открытый
1.6
Стандартный ввод/вывод (fmt, bufio)
↗
27
8
11м 1с
0
Открытый
1.7
Управляющие конструкции: if, switch, циклы (for, range)
↗
19
0
29м 45с
0
Открытый
1.8
Массивы, срезы, строки, карты
↗
21
3
24м 39с
0
2. Организация кода
4 урока
46
6
41м
0
Открытый
2.1
Функции и область видимости
↗
15
5
37м 8с
0
Открытый
2.2
Модули и пакеты (package, import)
↗
12
0
1м 22с
0
Открытый
2.3
Организация кода в проекте
↗
11
1
3м 43с
0
Открытый
2.4
Документирование кода (godoc)
↗
8
0
-
0
3. Работа с памятью и runtime
5 уроков
64
3
5м
0
Открытый
3.1
Go runtime и модель памяти
↗
26
1
4м 4с
0
Открытый
3.2
Escape analysis: heap vs stack
↗
12
0
0м 14с
0
Открытый
3.3
Garbage Collector: устройство и оптимизация
↗
10
0
0м 27с
0
Открытый
3.4
Работа с указателями
↗
8
2
-
0
Открытый
3.5
unsafe и reflect
↗
8
0
-
0
4. Типы и структуры данных
7 уроков
40
4
0м
0
Открытый
4.1
Структуры (struct), поля и методы
↗
11
0
0м 14с
0
Открытый
4.2
Интерфейсы (interface)
↗
7
1
-
0
Открытый
4.3
Встраивание (embedding)
↗
5
1
-
0
Открытый
4.4
Generic programming (type parameters, constraints, any)
↗
4
0
-
0
Открытый
4.5
Карты (map), срезы (slice), строки (string)
↗
5
0
-
0
Открытый
4.6
Базовые структуры данных (stack, queue, set)
↗
2
1
-
0
Открытый
4.7
Пакет container/*
↗
6
1
-
0
5. Ошибки и паника
6 уроков
18
3
0м
0
Открытый
5.1
Ошибки как значения (error)
↗
6
1
-
0
Открытый
5.2
Создание собственных типов ошибок
↗
2
0
-
0
Открытый
5.3
Оборачивание ошибок (errors.Is, errors.As, %w)
↗
3
1
-
0
Открытый
5.4
Популярные библиотеки (pkg/errors, xerrors)
↗
2
0
-
0
Открытый
5.5
Panic и recover
↗
2
1
-
0
Открытый
5.6
Паттерны обработки ошибок в приложениях
↗
3
0
-
0
6. Конкурентность
7 уроков
54
3
1м
0
Открытый
6.1
Горутины: модель M:N и планировщик
↗
17
0
0м 14с
0
Открытый
6.2
Каналы (unbuffered, buffered, закрытие)
↗
6
1
-
0
Открытый
6.3
Шаблоны конкурентности: fan-in, fan-out, worker pool, pipeline
↗
10
0
1м 38с
0
Открытый
6.4
Синхронизация
↗
3
1
-
0
Открытый
6.5
Атомарные операции (sync/atomic)
↗
6
0
-
0
Открытый
6.6
Context: отмена, дедлайны, таймауты
↗
7
1
-
0
Открытый
6.7
Lock-free структуры
↗
5
0
-
0
7. Ввод/вывод и работа с файлами
6 уроков
22
0
0м
0
Открытый
7.1
Потоки stdin, stdout, stderr (os, io, bufio)
↗
7
0
-
0
Открытый
7.2
Работа с файлами (os.Open, os.Create, ioutil, fs)
↗
2
0
-
0
Открытый
7.3
Сериализация и десериализация (JSON, XML, YAML)
↗
3
0
-
0
Открытый
7.4
CSV (пакет encoding/csv)
↗
2
0
-
0
Открытый
7.5
Конфигурационные файлы (JSON, YAML, env-переменные)
↗
3
0
-
0
Открытый
7.6
Сериализация с gob, Protobuf
↗
5
0
-
0
8. Асинхронность и сеть
7 уроков
38
0
0м
0
Открытый
8.1
HTTP-серверы (net/http)
↗
8
0
-
0
Открытый
8.2
Работа с клиентами HTTP (net/http, reqwest, fasthttp)
↗
1
0
-
0
Открытый
8.3
Middleware, обработка запросов и маршрутизация (chi, gin, echo)
↗
3
0
-
0
Открытый
8.4
WebSocket
↗
6
0
-
0
Открытый
8.5
gRPC
↗
12
0
0м 13с
0
Открытый
8.6
TCP и UDP (net.Conn, net.Listen)
↗
4
0
-
0
Открытый
8.7
Graceful shutdown
↗
4
0
-
0
9. Базы данных
7 уроков
27
0
0м
0
Открытый
9.1
Работа с database/sql
↗
5
0
-
0
Открытый
9.2
Драйверы для PostgreSQL, MySQL, SQLite
↗
3
0
-
0
Открытый
9.3
ORM и query builder'ы: GORM, sqlx, ent
↗
6
0
-
0
Открытый
9.4
Транзакции и управление ими
↗
2
0
-
0
Открытый
9.5
Асинхронный доступ к базе данных (connection pool)
↗
2
0
-
0
Открытый
9.6
Redis, MongoDB
↗
5
0
-
0
Открытый
9.7
Миграции (golang-migrate, goose)
↗
4
0
-
0
10. Итоговый проект
1 урок
32
0
0м
0
Открытый
10.1
Создание микросервиса на Go
↗
32
0
0м 26с
0