Полный курс по языку Golang. С нуля до REST API и gRPC [stepik] [NeuralGo]

Bot

Администратор
Команда форума
23 Янв 2020
207,276
3,145
113
269049.jpg

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