Содержание курса
Краткая история, встроенные типы данных и синтаксис Go
31 урок
1.
Краткая история и основные особенности Go
↗
2.
Установка и настройка рабочего окружения
↗
3.
Объявление переменных
↗
4.
Правила именования переменных
↗
5.
Комментарии
↗
6.
Расположение фигурных скобок имеет значение
↗
7.
Типы данных Go
↗
8.
Тесты на типы данных
↗
9.
Константы
↗
10.
Основные операторы Go
↗
11.
Условные конструкции в Go
↗
12.
Цикл for
↗
13.
Безусловный переход
↗
14.
Преобразование типов данных
↗
15.
Ввод данных и форматирование вывода
↗
16.
Работа со строками
↗
17.
Задачи на строки
↗
18.
Разбор задач на строки
↗
19.
Работа с срезами
↗
20.
Задачи на срезы
↗
21.
Разбор задач на срезы
↗
22.
Работа с таблицами/картами
↗
23.
Задачи по таблицам / картам
↗
24.
Разбор задач на таблицы
↗
25.
Задачи на арифметические операции
↗
26.
Разбор задач на арифметические операции
↗
27.
Задачи на управляющие конструкции
↗
28.
Разбор задач на управляющие конструкции
↗
29.
Задачи на циклы
↗
30.
Разбор задач на циклы
↗
31.
Резюме по главе и вопросы для самопроверки
↗
Проект: Игра «Крестики-Нолики» v.0
2 урока
1.
Разрабатываем игру
↗
2.
Задания на самостоятельную проработку
↗
Функции
16 уроков
1.
Немного про абстракцию и функции
↗
2.
Варианты объявлений функции
↗
3.
Способы передачи аргументов в функцию
↗
4.
Псевдонимы типов (alias declarations)
↗
5.
Область видимости переменных
↗
6.
Обращение к функции через переменную
↗
7.
Функция как входной аргумент другой функции
↗
8.
Анонимные функции, замыкания и рекурсия
↗
9.
Генераторные функции
↗
10.
Отложенное выполнение функции
↗
11.
Задачи на функции
↗
12.
Разбор задач на функции
↗
13.
Задачи на рекурсию
↗
14.
Разбор задач на рекурсию
↗
15.
Задачи на замыкания
↗
16.
Разбор задач на замыкания
↗
Модули и пакеты
9 уроков
1.
Создание и инициализация модуля
↗
2.
Подключение стороннего модуля в проект
↗
3.
Удаление неиспользуемых зависимостей
↗
4.
Версионирование модулей в Go
↗
5.
Каталог vendor
↗
6.
Создание пакета
↗
7.
Именование пакетов и нюансы их импортирования
↗
8.
Создание и импортирование локального модуля
↗
9.
Тесты по модулям и пакетам
↗
Тестирование
9 уроков
1.
Введение
↗
2.
Написание модульных тестов в Go
↗
3.
Написание табличных (Table-Driven) тестов в Go
↗
4.
Написание подтестов
↗
5.
Тестовое покрытие кода
↗
6.
Тестирование производительности
↗
7.
Генерация ложных данных средствами Faker
↗
8.
Резюме по главе и вопросы для самопроверки
↗
9.
Тесты на закрепление пройденного материала
↗
Проект: Игра «Крестики-Нолики» v.1
2 урока
1.
Рефакторинг
↗
2.
Задания на самостоятельную проработку
↗
Объектно-ориентированное программирование в Go
23 урока
1.
Введение
↗
2.
Абстракция в ООП
↗
3.
Тип данных Struct
↗
4.
Задачи на структуры
↗
5.
Разбор задач на структуры
↗
6.
Объявление методов и принципы работы с ними
↗
7.
Связывание метода и структуры данных
↗
8.
Конструкторная функция
↗
9.
Инкапсуляция и сокрытие в Go
↗
10.
Задачи на методы структур
↗
11.
Разбор задач на методы структур
↗
12.
Композиция и переопределение методов
↗
13.
Интерфейсы и полиморфизм времени исполнения
↗
14.
Интерфейс как поле структуры
↗
15.
Еще немножко магии интерфейсов
↗
16.
Задачи на композицию, интерфейсы и переопределение
↗
17.
Разбор задач на композицию, интерфейсы и переопределение
↗
18.
Generics (Обобщения)
↗
19.
Задачи на дженерики
↗
20.
Разбор задач на дженерики
↗
21.
Резюме по главе и вопросы для самопроверки
↗
22.
Задачи на ООП
↗
23.
Разбор задач на ООП
↗
Проект: Игра «Крестики-Нолики» v.2
2 урока
1.
Рефакторинг
↗
2.
Задания на самостоятельную проработку
↗
Обработка ошибок и паник в Go
13 уроков
1.
Паника (panic) в Go
↗
2.
Пользовательская паника
↗
3.
Паника и отложенный вызов функции
↗
4.
Обработка паники
↗
5.
Обработка ошибок в Go
↗
6.
Облегченные пользовательские ошибки
↗
7.
Определение типа ошибки
↗
8.
Расширенные пользовательские ошибки
↗
9.
Вложенные ошибки
↗
10.
Резюме по главе и вопросы для самопроверки
↗
11.
Тесты к модулю
↗
12.
Задачи на обработку ошибок и паник
↗
13.
Разбор задач на обработку ошибок и паник
↗
Работа с файлами и директориями. Сборка приложения
11 уроков
1.
Введение
↗
2.
Работа с файлами
↗
3.
Тесты по работе с файлами
↗
4.
Работа с директориями
↗
5.
Работа с JSON-файлами
↗
6.
База данных на основе файла и однонаправленного списка
↗
7.
Простая БД по типу «ключ:значение» в формате JSON
↗
8.
Сборка и конфигурация запускаемого приложения
↗
9.
Резюме по главе и вопросы для самопроверки
↗
10.
Задачи на работу с JSON
↗
11.
Разбор задач на работу с JSON
↗
Проект: Игра «Крестики-Нолики» v.3
1 урок
1.
Сохранение и загрузка игровой сессии
↗
Проект: Игра «Крестики-Нолики» v.4. Рефакторинг и игра с компом
7 уроков
1.
Введение
↗
2.
Выделение функционала доски в пакет board
↗
3.
Пакет player. Человек vs Компьютер
↗
4.
Сохранение и загрузка игровой сессии
↗
5.
Расширяем функционал пакета game
↗
6.
Рефакторинг пакета main
↗
7.
Задания на самостоятельную проработку
↗
Работа с СУБД SQLite
10 уроков
1.
Введение
↗
2.
Разработка «ToDo-list» средствами модуля go-sqlite3
↗
3.
Задачи на работу с SQLite (в ручном режиме)
↗
4.
Разбор задач на работу с SQLite в ручном режиме
↗
5.
Разработка «ToDo-list» средствами модуля gorm
↗
6.
Задачи на работу с SQLite (GORM)
↗
7.
Разбор задач на работу с SQLite (GORM)
↗
8.
Транзакции
↗
9.
Режим DryRun модуля gorm
↗
10.
Резюме по главе и вопросы для самопроверки
↗
Проект: Игра «Крестики-Нолики» v.5
6 уроков
1.
Введение
↗
2.
Рефакторинг пакета model
↗
3.
Проектирование пакета database
↗
4.
Рефакторинг пакета game
↗
5.
Переработка функционала главного меню пакета main
↗
6.
Задания на самостоятельную проработку
↗
Конкурентность в Go
13 уроков
1.
Разница между процессом, потоком и горутинной
↗
2.
Разница между конкурентным и параллельным выполнением кода
↗
3.
Создание горутины
↗
4.
Ожидание завершения горутин
↗
5.
Каналы
↗
6.
Состояние гонки
↗
7.
Мьютексы
↗
8.
Атомарные операции
↗
9.
Переменная среды выполнения GOMAXPROCS
↗
10.
Паттерны (шаблоны) конкурентного программирования
↗
11.
Резюме по главе и вопросы для самопроверки
↗
12.
Задачи на работу с горутинами
↗
13.
Разбор задач на работу с горутинами
↗
Проект: Игра «Крестики-Нолики» v.6
5 уроков
1.
Введение
↗
2.
Параллельная стратегий хода компьютера на высокой сложности
↗
3.
Распараллеливание проверки выигрышных комбинаций
↗
4.
Обращение к БД через горутины
↗
5.
Задание на доработку проекта
↗
Сетевое программирование
6 уроков
1.
Введение
↗
2.
Пример клиента и сервера без установления соединения
↗
3.
Пример клиента и сервера с установлением соединения
↗
4.
Пример реализации TCP-чата
↗
5.
Пример реализации REST API web-сервиса
↗
6.
Резюме по главе и вопросы для самопроверки
↗
Проект: Игра «Крестики-Нолики» v.7
9 уроков
1.
Введение
↗
2.
Рефакторинг слоя работы с данными
↗
3.
Рефакторинг пакета player
↗
4.
Разработка протокола взаимодействия клиента и сервера
↗
5.
Разработка функционала игровой комнаты
↗
6.
Разработка серверной части
↗
7.
Разработка клиентской части
↗
8.
Запуск игры
↗
9.
Задание на доработку проекта
↗
Заключение
1 урок
1.
Заключение
↗