Skip to content

Go - The Complete Guide

  • 01. Начало работы

001 - Добро пожаловать на курс
002 - Что такое Go и почему это круто
003 - Установка Go
004 - Настройка редактора кода
005 - Написание первой программы
006 - О курсе и содержании курса
007 - Как получить максимум от этого курса
  • 02. Основы Go

008 - Введение
009 - Работа с функциями и значениями
010 - Организация кода с помощью пакетов
011 - Важность имени main
012 - Модули и сборка программ
013 - Функция main имеет значение
014 - Переход к новому проекту
015 - Работа с переменными, значениями и операторами
016 - Типы значений
017 - Вывод значений
018 - Преобразование типов и явное присваивание типов
019 - Использование альтернативных способов объявления переменных
020 - Осмысление константных значений
021 - Важность переменных
022 - Улучшенный ввод данных от пользователя
023 - Упражнение - Создание калькулятора прибыли
024 - Решение упражнения
025 - Форматирование строк
026 - Форматирование чисел с плавающей точкой в строках
027 - Создание форматированных строк
028 - Создание многострочных строк
029 - Функции
030 - Возвращаемые значения функций и область видимости переменных
031 - Альтернативный синтаксис возвращаемых значений
032 - Упражнение - Работа с функциями
033 - Переход к управляющим конструкциям
034 - Введение в if и логические значения
035 - Работа с else if
036 - Упражнение - if-выражения
037 - Использование else
038 - Вложенные if и использование return для остановки выполнения
039 - Повторение кода с помощью циклов for
040 - Бесконечные циклы, break и continue
041 - Осмысление switch
042 - Запись в файлы
043 - Чтение из файлов
044 - Обработка ошибок
045 - Время паниковать
046 - Задание по разделу
047 - Решение задания
048 - Итоги модуля
  • 03. Работа с пакетами

049 - Введение
050 - Разделение кода по файлам в одном пакете
051 - Зачем использовать несколько пакетов
052 - Подготовка кода для нескольких пакетов
053 - Разделение кода между пакетами
054 - Импорт пакетов
055 - Экспорт и импорт идентификаторов (переменных, функций и др.)
056 - Использование сторонних пакетов
057 - Итоги модуля
  • 04. Указатели

058 - Введение
059 - Указатели
060 - Написание кода без указателей
061 - Создание указателя
062 - Указатели как значения
063 - Использование указателей и передача в функции
064 - Использование указателей для изменения данных
065 - Пример - Функция Scan()
066 - Итоги модуля
  • 05. Структуры и пользовательские типы

067 - Введение
068 - Стартовый проект
069 - Какую проблему решают структуры
070 - Определение типа структуры
071 - Создание экземпляров структур и литералы
072 - Альтернативная запись литералов и нулевые значения
073 - Передача структур как аргументов
074 - Структуры и указатели
075 - Введение в методы
076 - Методы для изменения данных
077 - Использование функций-конструкторов
078 - Конструкторы для валидации
079 - Структуры, пакеты и экспорт
080 - Публичные методы и другое имя конструктора
081 - Встраивание структур
082 - Итоги
083 - Создание других типов и добавление методов
084 - Практика - Ввод данных от пользователя
085 - Практика - Создание структуры и конструктора
086 - Практика - Добавление метода
087 - Практика - Работа с длинным вводом текста
088 - Практика - Подготовка сохранения в файл
089 - Практика - Кодирование содержимого в JSON
090 - Практика - Исправления
091 - Теги структур
  • 06. Интерфейсы и обобщённый код

092 - Введение
093 - Подготовка примера для интерфейсов
094 - Завершение подготовки к интерфейсам
095 - Создание первого интерфейса
096 - Использование интерфейса
097 - Встраиваемые интерфейсы
098 - Специальный тип any
099 - Работа с type switch
100 - Извлечение информации о типе из значений
101 - Интерфейсы, динамические типы и ограничения
102 - Введение в дженерики
  • 07. Массивы, срезы и карты

103 - Введение
104 - Введение в массивы
105 - Работа с массивами
106 - Выбор частей массива с помощью срезов
107 - Другие способы выбора срезов
108 - Более глубокое понимание срезов
109 - Создание динамических списков со срезами
110 - Задача
111 - Решение
112 - Распаковка значений списка
113 - Введение в карты (maps)
114 - Изменение карт
115 - Карты vs структуры
116 - Использование специальной функции make
117 - Создание карт
118 - Работа с псевдонимами типов
119 - Циклы for с массивами, срезами и картами
  • 08. Глубокое погружение в функции

120 - Введение
121 - Функции как значения и типы функций
122 - Возврат функций как значений
123 - Введение в анонимные функции
124 - Замыкания
125 - Осмысление рекурсии
126 - Использование вариативных функций
127 - Разделение срезов на параметры
  • 09. Калькулятор цен

128 - Введение
129 - Создание первой базовой версии программы
130 - Настройка первой структуры
131 - Добавление функции-конструктора
132 - Добавление метода
133 - Загрузка данных из файла
134 - Работа с данными файла
135 - Вынос общей логики в пакет
136 - Вынос доступа к файлам в пакет
137 - Сохранение данных JSON в файлы
138 - Добавление структуры FileManager
139 - Добавление и использование тегов структур
140 - Работа над заменяемой структурой
141 - Интерфейсы в помощь
142 - Обработка ошибок
143 - Итоги модуля
  • 10. Калькулятор цен

144 - Введение
145 - Введение в горутины
146 - Запуск функций как горутин
147 - Поведение горутин
148 - Введение и использование каналов
149 - Работа с несколькими каналами и горутинами
150 - Горутины и каналы в проекте
151 - Настройка канала ошибок
152 - Управление каналами с помощью select
153 - Отложенное выполнение кода с defer
  • 11. Создание REST API

154 - Введение
155 - Планирование API
156 - Установка фреймворка Gin
157 - Настройка первого маршрута и обработка запроса
158 - Настройка модели события
159 - Регистрация маршрута POST
160 - Тестирование и исправление обработчика POST-запроса
161 - Добавление базы данных SQL
162 - Создание таблицы в SQL
163 - Сохранение данных в базе (INSERT)
164 - Получение событий из базы (SELECT)
165 - Получение одного события по ID
166 - Рефакторинг кода и вынос маршрутов
167 - Регистрация маршрута обновления события и обработчика
168 - Обновление событий
169 - Удаление событий
170 - Добавление таблицы пользователей в SQL-базу
171 - Добавление регистрации пользователя
172 - Не храните пароли в открытом виде
173 - Хэширование паролей
174 - Начало работы с токенами аутентификации (JWT)
175 - Начало работы с маршрутом входа (Login)
176 - Завершение логики входа
177 - Генерация JWT
178 - Завершение логики JWT
179 - Добавление проверки токенов
180 - Добавление защиты маршрутов
181 - Извлечение и сохранение ID пользователей и событий
182 - Добавление middleware для аутентификации
183 - Улучшение и использование middleware
184 - Добавление авторизации для ограничения редактирования
185 - Добавление таблицы регистраций
186 - Регистрация пользователей
187 - Тестирование и исправление маршрута регистрации
188 - Отмена регистраций
189 - Итоги модуля
  • 12. Итоги

190 - Итоги курса