Темная тема
Go - The Complete Guide
01. Начало работы
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. Указатели
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. Глубокое погружение в функции
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. Итоги