Содержание курса
ШОК! Обучение Go c 0 до ПРО 100 проектов за 100 дней с ИИ
21 урок
1.
День 1:Введение.Настройка окружения и программа "Hello, World!".
↗
2.
День 2:Синтаксис. Пакеты, импорты, комментарии. Изучаем fmt.
↗
3.
День 3:Работа с числами.Арифметические операции.
↗
4.
День 4:Работа со строками.Создание,конкатенация,получение длины.
↗
5.
День 5:Константы и их объявление.Ввод/вывод.Данные из консоли.
↗
6.
День 6:Обзор основных концепций.Повторение пройденного материала
↗
7.
День 7:Объявление переменных с var и :=.Разбираем основные типы.
↗
8.
День 8:Код с условной логикой.Операторы if/else,else if и switch
↗
9.
День 9:Формы цикла for: классический, for range и for как while.
↗
10.
День 10:Решаем задачи на закрепление циклов и ветвлений.
↗
11.
День 11:Массивы с фиксированным размером, их плюсы и минусы.
↗
12.
День 12:Срезы как обертка над массивами.Учимся создавать срезы.
↗
13.
День 13:Функция append для добавления.Получение "подсрезов".
↗
14.
День 14:Задачи на срезы:переворот и удаление элемента по индексу
↗
15.
День 15:Карты для хранения "ключ-значение".Управление элементами
↗
16.
День 16:Пишем программу подсчета частоты слов,используя карту.
↗
17.
День 17:Объявление функций,их параметры и получение значений.
↗
18.
День 18:Разбираем возможность функций возвращать значения.
↗
19.
День 19:Как Go организует код в пакеты. Создаем go.mod файл.
↗
20.
День 20:Создаем проект.Выносим часть логики, импортируем в main.
↗
21.
День 21:Повторение тем,пишем общую программу для закрепления.
↗
Продвинутый Go
16 уроков
1.
День 22:Структуры как способ создания собственных типов данных.
↗
2.
День 23:Создание методов путем навешивания функций на структуры.
↗
3.
День 24:Эмбеддинг одной структуры в другую для композиции.
↗
4.
День 25:Создаем несколько структур для моделирования сущностей.
↗
5.
День 26:Концепция указателей. Знакомимся с операторами & и *.
↗
6.
День 27:Разница между передачей копии и передачей указателя.
↗
7.
День 28:Пишем функцию принимающую указатель на структуру.
↗
8.
День 29:Интерфейсы как контракты поведения. Объявляем свой.
↗
9.
День 30:Создаем структуры реализующие интерфейс и пишем функцию.
↗
10.
День 31:Решаем задачу, где применение интерфейса упрощает код.
↗
11.
День 32:Встроенный тип error.Возвращаем ошибки из функций.
↗
12.
День 33:Создаем кастомные ошибки с помощью errors.New и fmt.
↗
13.
День 34:Библиотека testing.Структура тестового файла и функции.
↗
14.
День 35:Пишем свой unit-тест для простой функции и запускаем.
↗
15.
День 36:Покрываем написанный ранее код тестами.
↗
16.
День 37:Повторяем указатели, интерфейсы и тесты.
↗
Основы Backend
12 уроков
1.
День 38:Клиент-серверная модель и протокол HTTP.DevToos браузер.
↗
2.
День 39:Основные HTTP-методы и самые частые статус-коды.
↗
3.
День 40:Синтаксис JSON.Учимся читать и понимать JSON-структуры.
↗
4.
День 41:Json.Marshal.Код для преобразования Go в JSON-строку.
↗
5.
День 42:Json.Unmarshal.Код для парсинга JSON-строки в Go.
↗
6.
День 43:Задача на кодирование и декодирование JSON-структур.
↗
7.
День 44:Пакет net/http для запуска простого веб-сервера.
↗
8.
День 45:Пишем handler и регистрируем ее с http.HandleFunc.
↗
9.
День 46:Обрабатываем URL-пути, направляя их на разные функции.
↗
10.
День 47:Создаем сервер с несколькими маршрутами и тестируем их.
↗
11.
День 48:Ветки в Git. Создаем ветку для фичи и сливаем ее в main.
↗
12.
День 49:Пишем небольшой сервер, который умеет работать с JSON.
↗
Базы данных
11 уроков
1.
День 50:Синтаксис CREATE TABLE.Создаем таблицу в SQL-клиенте.
↗
2.
День 51:Изучаем запросы INSERT INTO для данных в таблицу.
↗
3.
День 52:SELECT. Выбираем данные по условию WHERE и сортируем их.
↗
4.
День 53:Синтаксис UPDATE для изменения записей в таблице.
↗
5.
День 54:Синтаксис DELETE для удаления записей из таблицы.
↗
6.
День 55:Разбираем как связывать таблицы с помощью JOIN.
↗
7.
День 56:Скачиваем PostgreSQL и графический клиент pgAdmin.
↗
8.
День 57:Пакет database/sql.Код подключения к базе PostgreSQL.
↗
9.
День 58:SELECT запросы с помощью db.Query() и db.QueryRow().
↗
10.
День 59:INSERT, UPDATE, DELETE запросы с помощью db.Exec().
↗
11.
День 60:Набор функций для всех CRUD-операций для одной таблицы.
↗
Проект: REST API
12 уроков
1.
День 61:Проектируем API: описываем модели данных и и эндпоинты.
↗
2.
День 62:Структура файлов для проекта, инициализируем go.mod.
↗
3.
День 63:Обработчик для POST запроса.Декодируем JSON из тела.
↗
4.
День 64:Обработчик для GET /items/{id}.ID из URL, SELECT запрос.
↗
5.
День 65:Обработчик для GET/items.SELECT всех записей из БД.
↗
6.
День 66:Обработчик для PUT/items/{id}.UPDATE запрос в БД.
↗
7.
День 67:Обработчик для DELETE/items/{id}.Читаем ID.
↗
8.
День 68:Добавляем в обработчики проверку входящих данных.
↗
9.
День 69:Проводим рефакторинг:выносим работу с БД в репозиторий.
↗
10.
День 70:Пишем unit-тесты для API, используя httptest.
↗
11.
День 71:Практикуемся в решении конфликтов слияния в Git.
↗
12.
День 72:Проходим по проекту, исправляем недочеты,комментируем.
↗
Продвинутый Backend
14 уроков
1.
День 73:Выносим настройки в переменные окружения.
↗
2.
День 74:Концепция Middleware.Логгер, который выводит информацию.
↗
3.
День 75:Пишем Middleware, которое возвращает ошибку 500.
↗
4.
День 76:Пакет context для управления жизненным циклом запроса.
↗
5.
День 77:Интегрируем context в API для управления таймаутами.
↗
6.
День 78:Основы конкурентности в Go.Запускаем простые функции.
↗
7.
День 79:Изучаем chan как безопасное общения между горутинами.
↗
8.
День 80:Паттерн "Worker Pool" для ограничения количества задач.
↗
9.
День 81:Добавляем в API фоновую задачу.
↗
10.
День 82:Контейнеризация и Docker, какие проблемы он решает.
↗
11.
День 83:Многоступенчатый Dockerfile для компиляции и упаковки Go
↗
12.
День 84:Собираем Docker-образ и запускаем контейнер из него.
↗
13.
День 85:Пишем docker-compose.yml файл.
↗
14.
День 86:Проходимся по всем темам и закрепляем материал.
↗
Итоги и развитие
12 уроков
1.
День 87:Изучаем и заменяем стандартный роутер на более мощный.
↗
2.
День 88:Sqlc для генерации безопасного Go-кода из SQL-запроса.
↗
3.
День 89:Настраиваем простой CI/CD пайплайн на GitHub Actions.
↗
4.
День 90:Введение в gRPC как высокопроизводительную альтернативу.
↗
5.
День 91:Встроенные инструменты для профилирования Go-приложений.
↗
6.
День 92:Внедряем в проект структурированное логирование.
↗
7.
День 93:Продумываем идею для итогового проекта.
↗
8.
День 94:Пишем код для своего проекта, настраиваем окружение.
↗
9.
День 95: Продолжаем активную разработку своего проекта.
↗
10.
День 96:Интегрируем в свой проект базу данных и Docker.
↗
11.
День 97:Пишем тесты для своего проекта.
↗
12.
День 98:Оформляем проект на GitHub,пишем README.md.
↗