Разработка на Spring

Бесплатный
Онлайн курс
Открыта регистрация
Курс начался 11 апреля 2024
Занятия проходят
по четвергам в 18:30 (Время МСК+1)

О курсе

Для кого?

Курс рассчитан на тех, кто знаком с разработкой на Java и хочет научиться создавать веб-приложения на основе фреймворка Spring. 

Что дает курс?

  • Поработаем с типовой архитектурой приложения, настроим валидацию запросов и обработку исключений. 
  • Будем взаимодействовать с БД через Hibernate+SpringData: узнаем что такое проекция, как выполнять запросы по нескольким критериям. Поработаем с блокировками транзакций. Расширим проект до нескольких таблиц, связанных составным первичным ключом.
  • Поработаем со сложной логикой по преобразованию структур данных.
  • Поработаем с файлами и генерацией отчетов.
  • Выстроим межсервисное взаимодействие через Rest-HTTP и Kafka. Напишем обработчик событий, научимся запускать несколько экземпляров сервиса и поговорим о проблемах микросервисных систем.
  • Узнаем как легко настроить кэширование с помощью Spring.

Информация

  • Курс будет проходить в новом формате — чтобы попасть на курс, необходимо выполнить тестовое задание (до 31 марта включительно). Тестовое задание появится в телеграм-канале курса после регистрации. Количество мест ограниченно.
  • Лекционные материалы в формате конференций на нашем сервере в Discord, большой упор на практические материалы.
  • Менторство от наших ведущих специалистов.

Программа курса

  • /01 тема
    Базовая архитектура back-end приложения на SpringBoot

    Послойная архитектура. Работа с моделями: конвертация, валидация

    Профили Spring и конфигурация

    Глобальный обработчик исключений

    АОП

  • /02 тема
    Проектирование БД и связей. Работа со слоем данных

    Построение many-to-many и one-to-many связей при помощи Hibernate

    N+1 проблема

    Организация поиска по критериям на Spring-Data

    Блокировки транзакций

  • /03 тема
    Юнит-тестирование

    Основные принципы написания тестов на Junit+Mockito. Mock, Spy, stub

    Фабрика заглушек на паттерне ObjectMother

    SpringBootTest: поднятие контекста в тестовой среде. MockBean, SpyBean

  • /04 тема
    Работа с файлами и отчетами

    Создание эндпоинтов для загрузки и выгрузки файлов

    Генерация pdf/csv отчетов

  • /05 тема
    Межсервисная интеграция по HTTP-Rest

    Настройка HTTP взаимодействия. RestClient.

    Кэширование вызовов.

    Сложная логика и работа со структурами данных при взаимодействии с другими сервисами. Stream-Api

  • /06 тема
    Взаимодействие через брокер сообщений Kafka

    Интеграция с Kafka. Producer, consumer

    Обработчик событий на паттерне Chain of Responsibility

    Запуск нескольких экземпляров сервиса и проблемы микросервисных систем

  • /07 тема
    Нереляционные БД

    Интеграция с Redis. Распределенный кэш

    Хранение ключей идемпотентности

  • /08 тема
    Микросервисные системы

    Интеграционные тесты на Testcontainers. WireMock

    Паттерны построения микросервисных систем

    Docker-образы и Kubernetes