Содержание курса
README.md
1 урок
1.
Информация перед началом
↗
Синтаксис Go
6 уроков
1.
Указатели и ссылочная семантика
↗
2.
iota и константы
↗
3.
Числа, типы, переполнение
↗
4.
Строки
↗
5.
Циклы, switch и область видимости
↗
6.
Замыкания и генераторы
↗
Коллекции (slices, maps, strings)
8 уроков
1.
Maps
↗
2.
Слайсы: len/cap и рост при append
↗
3.
Слайсы: backing array и алиасинг
↗
4.
Слайсы: передача в функцию и мутации
↗
5.
Слайсы и указатели на элементы
↗
6.
Алгоритмы на слайсах
↗
7.
Алгоритмы на мапах и строках
↗
8.
Прочее: сравнение, строки/руны, unsafe
↗
Функции, указатели, ошибки
7 уроков
1.
Ошибки и обёртки
↗
2.
panic и recover
↗
3.
Строки и руны
↗
4.
JSON: сериализация и теги
↗
5.
Интерфейсы, io.Reader, профилирование
↗
6.
CLI-утилиты
↗
7.
Файлы, потоки, большие данные
↗
Структуры, методы, интерфейсы
15 уроков
1.
Интерфейсы: nil и typed nil (1/2)
↗
2.
Интерфейсы: nil и typed nil (2/2)
↗
3.
Методы и receivers (value vs pointer)
↗
4.
Структуры, встраивание, reflection
↗
5.
Паттерны проектирования (GoF, DI, options)
↗
6.
Структуры данных и кэш (LRU, TTL, шарды)
↗
7.
gRPC: корзина (basket)
↗
8.
Процессор документов (дедуп, версии)
↗
9.
Code review и рефакторинг (1/2)
↗
10.
Code review и рефакторинг (2/2)
↗
11.
System Design: real-time, чаты, геолокация
↗
12.
System Design: платежи и транзакции
↗
13.
System Design: аналитика и счётчики
↗
14.
System Design: highload, кэш, архитектура
↗
15.
Реализация сервисов (image, ООП, документы)
↗
Тестирование
1 урок
1.
Тестирование
↗
Память Go
5 уроков
1.
defer: порядок, аргументы, именованные возвраты
↗
2.
Указатели и адреса
↗
3.
Стек, куча, escape-анализ, утечки
↗
4.
Выравнивание структур
↗
5.
Планировщик, горутины, GOMAXPROCS, тайминги
↗
Concurrency: основы
30 уроков
1.
Каналы: базовые операции (что выведет) (часть 1/4)
↗
2.
Каналы: базовые операции (что выведет) (часть 2/4)
↗
3.
Каналы: базовые операции (что выведет) (часть 3/4)
↗
4.
Каналы: базовые операции (что выведет) (часть 4/4)
↗
5.
Горутины: запуск, замыкания, defer
↗
6.
WaitGroup: ожидание горутин (часть 1/2)
↗
7.
WaitGroup: ожидание горутин (часть 2/2)
↗
8.
Гонки данных: счётчики, map, вычисления
↗
9.
Mutex, RWMutex, atomic (часть 1/2)
↗
10.
Mutex, RWMutex, atomic (часть 2/2)
↗
11.
sync.Once, sync.Map, sync.Pool
↗
12.
select: таймауты и неблокирующие операции (часть 1/2)
↗
13.
select: таймауты и неблокирующие операции (часть 2/2)
↗
14.
context: отмена, таймаут, обёртки (часть 1/2)
↗
15.
context: отмена, таймаут, обёртки (часть 2/2)
↗
16.
Merge / Fan-in каналов (часть 1/2)
↗
17.
Merge / Fan-in каналов (часть 2/2)
↗
18.
Pipeline и обработка потоков
↗
19.
Worker pool
↗
20.
Semaphore / ограничение параллелизма (часть 1/2)
↗
21.
Semaphore / ограничение параллелизма (часть 2/2)
↗
22.
Rate limiter
↗
23.
Параллельные HTTP-запросы (часть 1/2)
↗
24.
Параллельные HTTP-запросы (часть 2/2)
↗
25.
In-memory cache (TTL, шарды) (часть 1/2)
↗
26.
In-memory cache (TTL, шарды) (часть 2/2)
↗
27.
System design: балансировщики, очереди, shutdown (часть 1/2)
↗
28.
System design: балансировщики, очереди, shutdown (часть 2/2)
↗
29.
Продвинутые паттерны каналов
↗
30.
Синхронизация порядка: ping-pong, LeetCode
↗
Concurrency: продвинутое + дженерики
25 уроков
1.
Каналы: базовые операции (что выведет) (часть 1/2)
↗
2.
Каналы: базовые операции (что выведет) (часть 2/2)
↗
3.
Горутины: запуск, замыкания, defer
↗
4.
WaitGroup: ожидание горутин
↗
5.
Гонки данных: счётчики, map, вычисления
↗
6.
Mutex, RWMutex, atomic
↗
7.
sync.Once, sync.Map, sync.Pool
↗
8.
select: таймауты и неблокирующие операции
↗
9.
context: отмена, таймаут, обёртки (часть 1/2)
↗
10.
context: отмена, таймаут, обёртки (часть 2/2)
↗
11.
Merge / Fan-in каналов (часть 1/2)
↗
12.
Merge / Fan-in каналов (часть 2/2)
↗
13.
Pipeline и обработка потоков
↗
14.
Worker pool
↗
15.
Semaphore / ограничение параллелизма (часть 1/2)
↗
16.
Semaphore / ограничение параллелизма (часть 2/2)
↗
17.
Rate limiter
↗
18.
Параллельные HTTP-запросы (часть 1/2)
↗
19.
Параллельные HTTP-запросы (часть 2/2)
↗
20.
In-memory cache (TTL, шарды) (часть 1/2)
↗
21.
In-memory cache (TTL, шарды) (часть 2/2)
↗
22.
System design: балансировщики, очереди, shutdown (часть 1/2)
↗
23.
System design: балансировщики, очереди, shutdown (часть 2/2)
↗
24.
Продвинутые паттерны каналов
↗
25.
Синхронизация порядка: ping-pong, LeetCode
↗
HTTP
5 уроков
1.
Middleware (логирование, recover, rate-limit)
↗
2.
HTTP-сервер (net/http, роутер, handlers, graceful shutdown)
↗
3.
HTTP-клиент, таймауты, highload-агрегация
↗
4.
Code review HTTP-сервисов
↗
5.
Сетевые утилиты (telnet, wget, long-polling)
↗
Базы данных
8 уроков
1.
SQL: выборки и агрегации (часть 1/2)
↗
2.
SQL: выборки и агрегации (часть 2/2)
↗
3.
SQL: индексы
↗
4.
SQL: window-функции и спецзапросы
↗
5.
database/sql в Go
↗
6.
Транзакции и изоляция
↗
7.
Проектирование схемы БД
↗
8.
Оптимизация больших таблиц
↗
Архитектура
8 уроков
1.
Go-паттерны: ошибки, опции, DI, моки
↗
2.
Паттерны каналов и конкурентности (часть 1/2)
↗
3.
Паттерны каналов и конкурентности (часть 2/2)
↗
4.
System design: обработка документов и новостей
↗
5.
System design: платежи и транзакции
↗
6.
System design: аналитика и счётчики
↗
7.
System design: real-time, чаты, мессенджеры
↗
8.
System design: сервисы (валюты, изображения, gRPC)
↗