Онлайн-курс «Искусство написания сервиса на Go»
Видео, Текст, Схемы / Самостоятельно с наставником / Обучение в ЛК на сайте автора
Хотите улучшить навыки разработки на Go? Пройдите курс и узнайте, как проектировать и разрабатывать современные веб-сервисы с нуля.
Обновлено: 23.08.2024
- Оплата на сайте автора. Цена может отличаться.
- 7 модулей
- Обучение: в ЛК на сайте автора
- Когда будете учиться: в любой день в любое время
- Уровень сложности: для опытных
- Домашние задания: есть
- Сопровождение: куратором
- Сертификат
- Техническая поддержка: в рабочее время, чат в мессенджере, электронная почта
- Доступ: сразу после оплаты
Чему вы научитесь?
- Написанию веб-сервисов на Go.
- Тестированию сервисов.
- Обеспечению безопасности и мониторингу сервисов.
- Оптимизации производительности сервисов.
Об онлайн-курсе
Описание
Программа онлайн-курса
Особенности
Go (или Golang)— это мощный и быстрый язык программирования, который благодаря своей простоте и высокой производительности подходит для создания высоконагруженных сервисов. На курсе вы узнаете, как использовать мощные инструменты и функции Go для создания современных веб-сервисов. Конечная задача курса – написать с нуля бэкенд для чата поддержки банка. Проводит курс Дмитрий Назарков — эксперт онлайн-школы GOLANG NINJA.
На занятиях освоите этапы создания сервиса на Go, начиная от проектирования и заканчивая развертыванием. Вы научитесь проектировать архитектуру сервиса, писать сервис и тестировать его, подключать аутентификацию, хранилище и очереди и многому другому. Программа рассчитана на начинающих и опытных IT-специалистов, разработчиков, архитекторов ПО и всех, кто хочет улучшить свои навыки в написании высококачественных веб-сервисов и ищет проверенные курсы ИТ-специалистов.
Краткая программа курса «Искусство написания сервиса на Go»:
- Настройка Git-репозитория. Создание СУБД.
- Архитектурные принципы. Изучение работающих API-методов.
- Поднятие сервера и работа над менеджерским API.
- Подготовка скелета web-сокетов.
- Презентация MVP и проверка сервиса на работоспособность.
- Внедрение новых элементов с использованием любых технологий и инструментов.
В результате вы научитесь писать сервисы, которые будут работать быстро, надежно и безопасно и будете создавать масштабируемые и гибкие решения для любых задач.
Модуль первый. Вводный
- В этом модуле мы должны понять правила игры, научиться проходить уроки, выполнять задачи и сдавать рубежные контроли. Также мы с высоты птичьего полёта посмотрим на архитектуру (bird's eye view) и осознаем, что же нам предстоит сделать за курс.
- К концу модуля у тебя должен быть настроен Git-репозиторий, содержащий скелет проекта и необходимые для грамотной разработки мелочи вроде линтеров, запускатора локальных задач, логирования, конфигурации и debug-сервера.
Модуль второй. Становится интереснее
- В этом модуле начнем с запуска зависимостей с помощью docker-compose. Первое на очереди — хранилище PostgreSQL. Чтобы два раза не вставать, сразу прикрутим Sentry.
- Передохнем от докеров и поиграемся с кодогенерацией — нам понадобятся идентификаторы сущностей. Будем генерировать их типы. Чтобы идентификаторы не повисли до лучших времен, сразу их заиспользуем: обратно сгенерируем гошную обвязку над хранилищем, предварительно по косточкам разобрав схему данных.
- Добавим ещё одну зависимость, которая решит за нас задачу аутентификации и (частично) авторизации — Keycloak. Заведём новый контейнер в docker-compose, познакомимся с фронтенд частью сервиса (не пугайтесь, она будет готовой), добавим пользователей в Keycloak и напишем HTTP-клиент к нему.
- Вишенка на торте этого модуля — обмазаться Swagger. Напишем спецификацию клиентского API, сгенерируем обвязку, навесим миддлварей.
- К концу модуля у тебя должна быть СУБД и код по работе с ней, решена задача аутентификации и авторизации, сформирован каркас клиентского API.
Модуль третий. Архитектура
- Новый модуль — новые вызовы.
- Начнем с обзора архитектурных принципов, на которые будем ориентироваться при разработке сервиса. TL;DR: мы будем стараться делать всё хорошо. Слоистая архитектура, правильное выстраивание направления зависимостей — наше всё.
- Сменим теорию практикой. Будем от и до делать первый usecase — получение истории сообщений в чате клиента банка. Запилим слой репозитория. Запилим юзкейс, который будет этим репозиторием пользоваться. И всё? Нет, ещё добавим мяса в хендлер, который сгенерировали в прошлом модуле. Готовый юзкейс протестируем – запустим UI и посмотрим, как получаем сообщения.
- Закрепим усвоенное в предыдущем уроке — сделаем ещё один хендлер, но теперь по отправке сообщения в чат. Перед тем, как бросаться в бой, всё же почитаем немного теории про идемпотентность. Пощупаем E2E-тесты. И, как водится, глядя в заготовку, реализуем отправку сообщения.
- В конце модуля у нас должны быть два работающих API-метода.
Модуль четвертый. Сложные приколы
- Новый модуль, модуль кодинга.
- Outbox. Мы делаем всё надежно, атомарно, поэтому без реализации этого широко известного в узких кругах паттерна не обойтись. На входе, как обычно, теория, тесты и верхнеуровневое API компонента.
- Outbox-у нужен кто-то, кто будет отправлять события в шину данных (спойлер — это будет Kafka). Будем этого кого-то называть продюсером. Задача продюсера инкапсулировать в себе логику по шифрованию сообщения и взаимодействию с Kafka. По традиции — теория, заготовка с тестами. Чтобы тебя не мучать при написании интеграционных тестов, конфигурацию Kafka в docker-compose даём сразу.
- Идёт четвертый модуль, а менеджеры, которые помогают клиентам решать проблемы, сидят неохваченными. Охват начнем с написания компонентов "пул менеджеров" и сервиса их загруженности. Первый компонент — выдает незанятых менеджеров, готовых помочь своим клиентам (т.е. заставляет работать). Второй компонент следит за тем, чтобы менеджер не слишком много работал (мы ведь просвещенные капиталисты и заботимся о всех, не так ли?).
- В заключительном уроке модуля обратим внимание на API менеджера. Поднимем отдельный сервер, подключим менеджерский UI, заведём пару новых методов API по уже отработанным методикам.
- В конце модуля продолжает складываться пазл. Добавится парочка хитрых сервисов, начнется работа над менеджерским API.
Модуль пятый. РАБотаем!
- Добро пожаловать в новый модуль. Продолжим кодить интересные штуки.
- Начнем с WebSocket. Чат-сервис требует красоты, сообщения должны появляться в real-time, без перезагрузки страницы. Первым делом сформулируем идеологию их применения. Затем почитаем теоретические выжимки, чтобы точно понимать происходящее, и, наконец, приступим к делу – реализуем пакет, инкапсулирующий в себе работу с вебсокетами. Он будет апгрейдить соединение до вебсокетного, поддерживать его пингами-понгами, читать события из некоего «потока» (реализуем чуть погодя), писать их в WS-соединение.
- Продолжим собирать кусочки пазла — реализуем тот самый «поток» событий. Спойлер: в конце урока мы сможем увидеть, как отправленное событие в одной вкладке, появится в другой вкладке. Публичный API компонента «потока» мы уже знаем. Будут тесты, осталось сделать так, чтобы они проходили. Заведем события в openapi-схему, покодогенерируем, сделаем адаптер и начнем их писать в «поток».
- AFC. На входе будет Docker-образ специально обученного искать «опасные» сообщения контейнера. Его мы и называем AFC-эмулятор. Эмулятор либо блокирует, либо разрешает публикацию сообщения пользователя. Наша задача — обрабатывать «вердикты» эмулятора. Готовьтесь к написанию Kafka-консумера.
- В конце модуля у нас с тобой будет готовый скелет вебсокетов, который останется только обогатить новыми типами событий. Поток событий также будет реализован. Будет поддержана AFC-обработка сообщений.
Модуль шестой. Менеджерский флоу
- Новый модуль. Чутка передохнем, нагрузки будет поменьше!
- Реализуем компонент, распределяющий проблемы пользователей (как звучит-то) на менеджеров. О том, что менеджер назначен на какую-то проблему нужно уведомлять не только менеджера, но и пользователя (не зря мы заводили всякие потоки и вебсокеты в прошлом модуле). Но штука не в этом. Здесь не будет привычных тестов, на которые можно опираться. Надо будет написать всё самим, опираясь на словесное описание. Прямо как в реальной жизни.
- На втором уроке реализуем историю сообщений для менеджера, почти по аналогии с клиентом. Ограничения на видимость будут только слегка другие. Ещё напомним, что у менеджера есть ещё и сам список чатов, чтобы решать проблемы разных пользователей. Надо будет сделать ещё и это. После того как вы это сделаете, посмотрите, как легко заезжают новые ручки.
- Вишенка на торте — урок так и называется. Научим менеджера отправлять сообщения. По стандарту заведем: ручку, юзкейс, пару методов в репозитории, outbox-задачу. После реализации можно будет залогиниться клиентом и менеджером, и попробовать попереписываться.
- В конце всё должно работать. Здесь мы с тобой дошли до MVP, который уже не стыдно показать миру.
Модуль седьмой. Свободное плавание
- В последнем седьмом модуле тебе будет предоставлена возможность самостоятельно реализовать новые фичи с использованием любых технологий и инструментов, которых требует ваша душа.
-
ФорматСамостоятельно с наставником
Видео / Текст / Схемы
Обучение в ЛК на сайте автора -
Уровень сложностиДля опытных
-
Когда вы будете учитьсяВ любой день в любое время
-
Домашние заданияЕсть
-
Документ об обученииСертификат Освоение программы курса
-
СопровождениеКуратором
-
Общение с группойФорум или чат внутри ЛК
-
Техническая поддержкаВ рабочее времяЧат в мессенджереЭлектронная почта
- Нажмите на кнопку
Узнать подробнее - Вы перейдете на детальную страницу онлайн-курса Дмитрия Назаркова. Внимательно прочитайте представленную на ней информацию.
- Следуя указаниям, оформите заказ на онлайн-курс.
- Обязательно укажите актуальный e-mail. На него придет вся информация, в частности, по доступу к онлайн-курсу.
Если инструкция вам не помогла, пожалуйста напишите нам на почту info@info-hit.ru, мы оперативно поможем вам получить необходимую информацию.
Отзывы об онлайн-курсе
10 отзывов