1. Введение
- О языке Go
- Почему стоит выбрать Go?
- Установка Go на Linux
- Установка Go на Windows
- Установка Go на Mac
- IDE/редактор кода
- Установка VS Code на Linux
- Установка VS Code на Windows
- Установка VS Code на Mac
- Настройка среды разработки: расширения
- Привет, мир! 10 мин.
- Беги! 3 мин.
- Компилятор Go 13 мин.
- Стандартная библиотека 3 мин.
- Импортное заявление 13 мин.
- Типы данных 5 мин.
- Переменные 15 мин.
- Соглашения об именовании 11 мин.
- Константы 14 мин.
- Арифметические операции 22 мин.
- Цикл: For (прерывание, продолжение) 27 мин.
- Цикл: For (используя как while) 21 мин.
- Операторы 7 мин.
- Условия: Если иначе 20 мин.
- Массивы 31 мин.
- Оператор Switch 25 мин
- Срезы 32 мин.
- Карты 27 мин.
- Диапазон 8 мин.
- Функции 22 мин.
- Множественные возвращаемые значения 18 мин.
- Вариативные функции 19 мин.
- Отсрочка 11 мин.
- Паника 11 мин.
- Восстановить 16 мин.
- Выход 6 мин.
- Функция инициализации 6 мин.
- Раздел Резюме и мотивация 10 мин.
- Закрытия 21 мин.
- Рекурсия 13 мин.
- Указатели 20 мин.
- Струны и руны 49 мин.
- Глаголы форматирования 25 мин.
- Пакет FMT 32 мин.
- Структуры 33 мин.
- Методы 20 мин.
- Интерфейсы 38 мин.
- Встраивание структур 13 мин.
- Дженерики 29 мин.
- Ошибки 26 мин.
- Пользовательские ошибки 18 мин.
- Строковые функции 42 мин.
- Форматирование строки 13 мин.
- Текстовые шаблоны 57 мин.
- Регулярные выражения 26 мин.
- Время 40 мин.
- Эпоха 10 мин.
- Форматирование времени / Анализ 10 мин.
- Случайные числа 30 мин.
- Анализ чисел 16 мин.
- Анализ URL 20 мин.
- Пакет Бафио 48 мин.
- Кодирование Base64 17 мин.
- SHA 256/512 Хэши / Хеширование / Криптография / Криптопакет
- Написание файлов 14 мин.
- Чтение файлов 26 мин.
- Сетевые фильтры 16 мин.
- Пути к файлам 24 мин.
- Справочники 44 мин.
- Временные файлы и каталоги 19 мин.
- Директива по внедрению 24 мин.
- Аргументы/флаги командной строки 20 мин.
- Подкоманды командной строки 22 мин.
- Переменные среды 22 мин.
- Ведение журнала 44 мин.
- JSON 47 мин.
- Структурные теги 14 мин.
- XML 42 мин.
- Расширение Go 10 мин.
- Преобразования типов 19 мин.
- Пакет ввода-вывода 1 ч 3 мин
- Математический пакет 5 мин.
- Раздел Резюме и мотивация 6 мин.
- Горутины 43 мин.
- Каналы - Введение 33 мин.
- Небуферизованные каналы и механизм выполнения 22 мин.
- Буферизованные каналы 40 мин.
- Синхронизация каналов 40 мин.
- Направления канала 11 мин.
- Мультиплексирование с использованием Select 31 мин.
- Неблокируемые операции канала 14 мин.
- Закрытие каналов 19 мин.
- Контекст 1 ч 3 мин
- Таймеры 26 мин.
- Тикеры 22 мин.
- Рабочие пулы 27 мин.
- Группы ожидания 52 мин.
- Мьютексы 45 мин.
- Атомные счетчики 24 мин.
- Ограничение скорости 5 мин.
- Ограничение скорости — алгоритм Token Bucket 33 мин.
- Ограничение скорости - Фиксированный счетчик окон 19 мин.
- Ограничение скорости - Алгоритм дырявого ведра 51 мин.
- Горутины с сохранением состояния 14 мин.
- Сортировка 47 мин.
- Тестирование/Сравнительный анализ 46 мин.
- Выполнение процессов / Процессы ОС / Другие процессы 25 мин.
- Сигналы 47 мин.
- Отражение 36 мин.
- Раздел «Резюме и поздравления» 4 мин.
- Параллелизм против Конкурентности 18 мин.
- Условия гонки 9 мин.
- Тупики 16 мин.
- РВМьютекс 13 мин.
- синхронизация.NewCond 45 мин.
- синхронизация.Once 5 мин.
- синхронизация.Pool 26 мин.
- для выбора оператора 5 мин.
- URL/URI 20 мин.
- Цикл запроса ответа 13 мин.
- Что такое Frontend Dev/Клиентская сторона 6 мин.
- Что такое Backend Dev/API/Server Side 3 мин.
- HTTP 1/2/3, HTTPS 6 мин.
- Выбор ОС для разработки 2 мин.
- Что такое REST API 9 мин.
- Конечные точки 6 мин.
- HTTP-клиент 9 мин.
- HTTP-сервер 16 мин.
- Порты 17 мин.
- Почтальон для тестирования API 11 мин.
- Установить wrk (инструмент для сравнительного анализа) 3 мин.
- Установить Htop 4 мин.
- Сравнительный анализ API 36 мин.
- Модули - go mod init 14 мин.
- Давайте начнем делать API/Сервер 5 мин.
- Загрузка сторонних/внешних пакетов - go get 12 ми
- Давайте добавим HTTP2 и HTTPS в наш API 14 мин.
- https-сертификаты - SSL/TLS 10 мин.
- Почтальон для запросов TLS + HTTP2 10 мин.
- Использование Curl для создания http2-запроса 16 мин.
- Соединения HTTP2/HTTPS/HTTP, TLS-рукопожатие 20 мин.
- Настройки mTLS и Postman 22 мин.
- Сравнительный анализ HTTP1 и HTTP2 - H2Load BM Tool 27 мин.
- Сериализация/Десериализация - Маршалл/Демаршалл - Кодирование 16
- Структура папок API 9 мин.
- Этап планирования API 13 мин.
- Базовые методы маршрутизации-CRUD-HTTP 23 мин.
- Обработка запросов 42 мин.
- Параметры пути 12 мин.
- Параметры запроса 13 мин.
- Файл .gitignore 9 мин.
- Мультиплексор (mux) 12 мин.
- Промежуточное программное обеспечение 7 мин.
- Промежуточное ПО - Заголовки безопасности 26 мин.
- Промежуточное программное обеспечение - CORS 20 мин.
- Промежуточное программное обеспечение - Время отклика 26 мин.
- Промежуточное ПО - Сжатие 19 мин.
- Middlewares - Ограничитель скорости 16 мин.
- Промежуточное программное обеспечение - HPP 35 мин.
- Промежуточное программное обеспечение - HPP 35 мин.
- Эффективное цепочечное промежуточное ПО 8 мин.
- Старая техника маршрутизации (Pre Go 1.22) 1 мин.
- Получение всех/отфильтрованных/одной записи(й) - GET 30 мин.
- Добавление одиночной записи/множественных записей - POST 19 мин
- Рефакторинг обработчиков 13 мин.
- MariaDB/MySQL - Введение 8 мин.
- Установка MariaDB 10 мин.
- Инструмент MariaDB GUI - Установка DBeaver 6 мин.
- SQL Primer - CRUD - Командная строка 25 мин.
- SQL Primer - CRUD - DBeaver 30 мин.
- Подключить API к SQL 14 мин.
- Переменные среды (файл .env) 16 мин.
- Создание нашей базы данных SQL 7 мин.
- Обновление методов POST для публикации в базе данных 12 мин.
- Обновление метода GET для извлечения одной записи из базы данных
- Обновление метода GET для извлечения нескольких записей из базы
- ГДЕ 1=1. ПОЧЕМУ??? 5 мин.
- Расширенная технология фильтрации — GET — получение записей на о
- Расширенный метод сортировки — GET — получение записей на основе
- Обновление «Полной записи» — PUT 22 мин.
- Изменение записи - PATCH 9 мин.
- Улучшение нашей функции PATCH — Reflect Package 22 мин.
- Удаление записи - УДАЛИТЬ 11 мин.
- Модернизация маршрутов — старая технология маршрутизации и ее о
- Рефакторинг Mux 2 мин.
- Использование параметров пути для определенной записи 5 мин.
- Изменение нескольких записей - PATCH 37 мин.
- Удаление нескольких записей - DELETE 19 мин.
- Моделирование данных 7 мин.
- Рефакторинг операций базы данных 29 мин.
- Обработка ошибок 21 мин.
- Структурные теги 27 мин.
- Проверка данных 44 мин.
- Создание базы данных студентов 10 мин.
- Маршрут CRUD для студентов 20 мин.
- Маршруты и тестирование студентов 18 мин.
- Новые подмаршруты 2 мин.
- Получение списка учеников для определенного учителя 14 мин.
- Получение количества учеников для определенного учителя 11 мин.
- Рефакторинг маршрутизатора 8 мин.
- Маршрутизатор Execs 10 мин.
- Модель Execs и таблица базы данных 16 мин.
- Маршрут CRUD для руководителей 36 мин.
- Пароли - Хеширование 16 мин.
- Авторизация и аутентификация 4 мин.
- Файлы cookie, сеансы и JWT 6 мин.
- Маршрут входа Часть 1 — Проверка данных 11 мин.
- Маршрут входа Часть 2 - Хеширование пароля - Argon2 13 мин.
- Маршрут входа, часть 3 — JWT, Cookie 32 мин.
- Рефакторинг маршрута входа 13 мин.
- Выйти 6 мин.
- Промежуточное ПО аутентификации - JWT 28 мин.
- Пропуск маршрутов с помощью промежуточных программ - PreLogin 10
- Обновить пароль 33 мин.
- Отправка электронных писем - MailHog 12 мин.
- Забыли пароль? 37 мин.
- Сброс пароля 31 мин.
- CSRF 5 мин.
- Добавление пагинации 16 мин.
- Очистка данных — XSS Middleware 55 мин.
- Разрешение 9 мин.
- Повторный обзор последовательности промежуточного программного о
- Обфускация кода 5 мин.
- Корректировки перед финальным двоичным кодом 12 мин.
- API-двоичный 29 мин.
- Расширенный бенчмаркинг — Исходный код против Go Binary против O
- Раздел Резюме и мотивация 6 мин.
- Что такое буферы протоколов? 6 мин.
- Синтаксис и структура файлов .proto 4 мин.
- Пакеты в буферах протоколов 4 мин.
- Сообщения в буферах протоколов 3 мин.
- Поля в буферах протоколов 2 мин.
- Типы полей и типы данных 6 мин.
- Номера полей 3 мин.
- Сериализация и десериализация 4 мин.
- RPC (удаленный вызов процедур) в буферах протоколов 2 мин.
- Версионность и обратная совместимость 3 мин.
- Лучшие практики для файлов .proto 2 мин.
- Установка компилятора Protoc для генерации кода из файлов .prot
- Протокольные буферы на практике 58 мин.
- Что такое gRPC? 5 мин.
- Заглушки 3 мин.
- REST против gRPC 8 мин.
- Создание сервера gRPC 33 мин.
- Создание клиента gRPC 18 мин.
- gRPC + TLS 10 мин.
- Глубокое погружение - Пакеты Proto Buf + RPC 1 ч 4 мин
- Потоковая передача данных gRPC 2 мин.
- Серверный поток 20 мин.
- Клиентский поток 17 мин.
- Двунаправленный поток 34 мин.
- Расширенные возможности gRPC 8 мин.
- Метаданные, заголовки и трейлеры 21 мин.
- Почтальон для gRPC 24 мин.
- gRPCurl для gRPC 11 мин.
- Плагин проверки Protoc Gen 22 мин.
- Combo API (gRPC + REST функциональность в одном API) 41 мин.
- API бенчмаркинга Combo - инструмент GHZ BM 41 мин.
- Вступление 1 мин.
- MongoDB и NoSQL — Введение 15 мин.
- MongoDB - Установка 9 мин.
- MongoDB Compass — графический интерфейс для MongoDB 9 мин.
- MongoDB Primer - CRUD 23 мин.
- Структура папок API gRPC и требования к проекту 5 мин.
- Создание файлов Proto на основе наших маршрутов REST API 37 мин.
- Создание gRPC-сервера проекта 8 мин.
- Загрузка известных требуемых зависимостей 2 мин.
- Подключить API к MongoDB 8 мин.
- Обработка ошибок 4 мин.
- Добавление нового учителя(ей) 47 мин.
- Рефакторинг 13 мин.
- Получение Учителя(ей) - Фильтр 30 мин.
- Получение Учителя(ей) - Сортировка 15 мин.
- Получение Учителя(ей) - Завершение 37 мин.
- Интерфейсы - Общий фильтр для всех Get RPC 16 мин.
- Функция декодирования 8 мин.
- Generics — общее декодирование для всех функций Get 23 мин.
- Изменение учителя(ей) 20 мин.
- Generics - Помощники картирования - Рефакторинг 20 мин.
- Удаление учителя(ей) 19 мин.
- Добавление новых студентов и руководителей 29 мин.
- Получение студентов и руководителей 17 мин.
- Изменение студентов и руководителей 14 мин.
- Удаление студентов и руководителей 8 мин.
- Отношения в NoSQL (MongoDB) 4 мин.
- Получение учеников учителем - RPC 14 мин.
- Получение учеников учителем - RPC 14 мин.
- Войти RPC 12 мин.
- Обновление пароля RPC 18 мин.
- Деактивировать RPC пользователя 14 мин.
- Забыли пароль RPC 31 мин.
- Сброс пароля RPC 18 мин.
- Перехватчик времени отклика 12 мин.
- Ограничивающий скорость перехватчик 9 мин.
- Перехватчик аутентификации 29 мин.
- Выход из RPC 35 мин.
- Разрешение 6 мин.
- Преимущество gRPC —нет необходимости в HPP, Sanitize, Compressio
- Последовательность перехвата 2 мин.
- Проверка данных с использованием Protoc Gen Validate 16 мин.
- TLS/SSL + gRPC 7 мин.
- Обфускация кода и двоичный API 14 мин.
- Сравнительный анализ 20 мин.