Backend Developer Java
Уроки с примерами кода; тему можно сразу закрепить вопросами в тренажёре.
Материалы открываются после регистрации на Free.
Уроки по модулям
Язык Java
7 уроковСемантика языка Java: система типов и упаковка, строки и иммутабельность, контракт equals/hashCode, интерфейсы, обобщения и стирание типов, records и sealed-типы, модель исключений. Не синтаксис, а поведение и стоимость решений.
- Типы: примитивы, ссылки и упаковка
- Строки: пул, иммутабельность и конкатенация
- Контракт equals и hashCode
- Интерфейсы: default-методы и функциональные интерфейсы
- Обобщения и стирание типов
- Records, sealed-типы и сопоставление с образцом
- Модель исключений
Коллекции
6 уроковJava Collections Framework изнутри: устройство ArrayList и HashMap, стоимость операций, хеширование и коллизии, упорядоченные структуры, fail-fast итераторы и потокобезопасные коллекции. Выбор коллекции — это выбор асимптотики и памяти.
- Иерархия коллекций и стоимость операций
- ArrayList и LinkedList: массив против связного списка
- HashMap изнутри
- TreeMap, LinkedHashMap и упорядоченность
- Итераторы и fail-fast поведение
- Потокобезопасные коллекции
Stream API и функциональный стиль
5 уроковФункциональный слой Java: лямбды и ссылки на методы, конвейер Stream с ленивыми промежуточными операциями, коллекторы, Optional и цена параллельных стримов.
- Лямбды и функциональные интерфейсы
- Конвейер Stream: ленивость и исполнение
- Коллекторы: сбор, группировка, агрегация
- Optional: семантика и границы применения
- Параллельные стримы и их цена
JVM: память и сборка мусора
7 уроковСреда выполнения Java: устройство памяти (куча, стеки, metaspace), поколения и алгоритмы сборки мусора, загрузка классов, JIT-компиляция и диагностика проблем с памятью. Отделяет гарантии языка от поведения под нагрузкой.
- Память JVM: куча, стеки, metaspace
- Сборка мусора: достижимость и поколения
- Алгоритмы GC: G1, ZGC и выбор коллектора
- Ссылки: strong, soft, weak, phantom
- Загрузка классов
- JIT: от интерпретации к машинному коду
- OutOfMemoryError и поиск утечек
Многопоточность
7 уроковМногопоточность в Java: потоки и их жизненный цикл, мониторы и synchronized, volatile и видимость, пулы потоков и ExecutorService, CompletableFuture, явные блокировки и координация, виртуальные потоки. Гонки, взаимоблокировки и как их не создавать.
- Потоки: создание, состояния, прерывание
- Мониторы: synchronized, wait и notify
- Volatile, атомарность и гонки данных
- Пулы потоков и ExecutorService
- CompletableFuture: композиция асинхронных задач
- Явные блокировки и примитивы координации
- Виртуальные потоки
Модель памяти Java
4 урокаФормальная модель того, что потоки видят в памяти: happens-before, безопасная публикация объектов, атомики и CAS, ThreadLocal. Объясняет, почему код без синхронизации может видеть устаревшие данные.
- Happens-before и гонки данных
- Безопасная публикация и final
- Атомики и CAS
- ThreadLocal: изоляция состояния по потоку
Spring Core и Boot
5 уроковОснование Spring: IoC-контейнер и ApplicationContext, конфигурация и сканирование компонентов, автоконфигурация Spring Boot, externalized configuration с профилями и запуск приложения со встроенным сервером.
- IoC-контейнер и ApplicationContext
- Конфигурация: @Configuration, @Bean и сканирование
- Автоконфигурация и стартеры
- Внешняя конфигурация и профили
- Старт приложения и встроенный сервер
Бины и внедрение зависимостей
5 уроковЖизненный цикл бина от определения до уничтожения, области видимости, способы внедрения зависимостей, разрешение неоднозначностей и циклические зависимости. Неверная область видимости — источник трудноуловимых багов.
- Жизненный цикл бина
- Области видимости бинов
- Способы внедрения зависимостей
- Разрешение неоднозначностей
- Циклические зависимости
AOP и прокси
4 урокаКак работает «магия» Spring: динамические прокси JDK и CGLIB, модель аспектов, @Transactional под капотом и ограничения прокси-подхода — самовызов, final-методы, видимость.
- Динамические прокси: JDK и CGLIB
- Модель Spring AOP: аспекты, advice, pointcut
- @Transactional под капотом
- Ограничения прокси: самовызов и границы
Spring MVC и REST API
5 уроковСлой, где контракт API превращается в код: путь запроса через DispatcherServlet, контроллеры и привязка параметров, валидация, единый формат ошибок и сериализация через Jackson.
- DispatcherServlet: путь запроса
- Контроллеры и привязка параметров
- Валидация входных данных
- Обработка ошибок и ProblemDetail
- Сериализация: Jackson и DTO
HTTP и REST-семантика
4 урокаСемантика протокола, на которой держится любой API: методы и коды состояния, безопасность и идемпотентность, кэширование с условными запросами, версионирование и эволюция контракта.
- Методы и коды состояния
- Безопасность и идемпотентность
- Кэширование и условные запросы
- Версионирование и эволюция API
JPA и Hibernate
7 уроковORM поверх реляционной БД: persistence context и жизненный цикл сущности, маппинг связей, стратегии загрузки и проблема N+1, запросы и проекции, транзакции и блокировки, кэши Hibernate. Ключевой навык — видеть, какой SQL порождает код.
- ORM и persistence context
- Жизненный цикл сущности
- Маппинг связей
- Ленивая загрузка и проблема N+1
- Запросы: JPQL, производные методы и проекции
- Транзакции и блокировки в JPA
- Кэши Hibernate
JDBC, пулы соединений и миграции
3 урокаСлой под ORM: JDBC как протокол доступа, пулы соединений и их настройка, границы транзакций на уровне соединения и версионирование схемы через миграции. Именно этот слой определяет поведение под нагрузкой.
- JDBC: соединение, statement, результат
- Пулы соединений
- Миграции схемы
Kafka и обмен сообщениями
7 уроковАсинхронный обмен событиями через Kafka: архитектура (топики, партиции, offset), продюсеры и консьюмеры, семантики доставки, идемпотентность потребителя и обработка отравленных сообщений, интеграция через Spring Kafka.
- Зачем брокер сообщений
- Архитектура Kafka
- Продюсер: ключи, партиционирование, гарантии
- Консьюмеры и группы
- Семантики доставки
- Идемпотентность потребителя, retry и DLQ
- Spring for Apache Kafka
Spring Security
5 уроковБезопасность Spring-приложения: цепочка фильтров и SecurityContext, модель аутентификации, правила авторизации, stateless REST API с JWT, а также CSRF, CORS и сессии.
- Цепочка фильтров и SecurityContext
- Модель аутентификации
- Авторизация: URL и методы
- Stateless API: JWT resource server
- CSRF, CORS и сессии
Готовность к продакшну
4 урокаЧто отличает рабочий сервис от учебного: операционные требования, Actuator и health-проверки, корректное завершение под трафиком, конфигурация окружений и обращение с секретами.
- Что значит production-ready
- Actuator и health-проверки
- Корректное завершение
- Конфигурация окружений и секреты
Тестирование
6 уроковПирамида тестов для Java-бэкенда: JUnit 5, тестовые дублёры с Mockito, срезы контекста Spring, интеграционные тесты с реальными зависимостями через Testcontainers и проектирование кода под тестируемость.
- Пирамида тестов
- JUnit 5
- Mockito и тестовые дублёры
- Тесты Spring: срезы контекста
- Интеграционные тесты с Testcontainers
- Проектирование под тестируемость
Наблюдаемость
4 урокаТри канала наблюдаемости Java-сервиса: структурное логирование с корреляцией, метрики через Micrometer и распределённая трассировка с OpenTelemetry. Без них поведение под нагрузкой остаётся непрозрачным.
- Логи, метрики, трассировки
- Структурное логирование
- Метрики: Micrometer
- Распределённая трассировка
Контейнеры и CI/CD
5 уроковДоставка Java-сервиса: образы и Dockerfile с учётом особенностей JVM, основы Kubernetes (поды, деплойменты, конфигурация), пробы и лимиты ресурсов, конвейер сборки и деплоя.
- Контейнеры: изоляция и образы
- Dockerfile для Java-приложения
- Kubernetes: поды, деплойменты, сервисы
- Пробы и ресурсы пода
- Конвейер CI/CD
Устойчивость к сбоям
4 урокаСервис среди ненадёжных соседей: режимы отказов и каскады, повторы с таймаутами, размыкатель цепи, изоляция ресурсов и осознанная деградация.
- Режимы отказов и каскады
- Таймауты и повторы
- Размыкатель цепи
- Изоляция и деградация
Углублённые направления
1 урокОбзорный модуль-развилка: как выбирать направление роста после уверенного владения основой — профилирование JVM, специализированные протоколы, реактивный стек, соседние языки платформы.
- Как выбирать специализацию
Профилирование JVM
4 урокаПоиск узких мест по измерениям: методология профилирования, Java Flight Recorder и Mission Control, CPU- и аллокационные профили с флеймграфами, чтение GC-логов и базовая настройка сборщика.
- Сначала измерение
- Java Flight Recorder и Mission Control
- CPU- и аллокационные профили
- GC-логи и базовая настройка
gRPC на Java
3 урокаБинарный RPC поверх HTTP/2: контракты в protobuf, генерация кода и виды вызовов, дедлайны и обработка ошибок, стриминг. Когда gRPC выигрывает у REST и какой ценой.
- Модель gRPC: protobuf и HTTP/2
- Сервисы, стабы и дедлайны
- Стриминг
Reactive и WebFlux
3 урокаНеблокирующий стек: модель реактивных потоков с обратным давлением, типы Reactor (Mono, Flux), WebFlux против MVC и честное сравнение с виртуальными потоками.
- Реактивные потоки и обратное давление
- Reactor: Mono, Flux и операторы
- WebFlux, MVC и виртуальные потоки
О курсе
Глубокое понимание Java и JVM для backend-разработки. Курс разбирает не синтаксис, а семантику языка и поведение платформы: коллекции и их стоимость, Stream API, устройство JVM — память, сборку мусора, JIT, — модель памяти и многопоточность, внутренности Spring (контейнер, прокси, транзакции), JPA/Hibernate, Kafka и production-практики: тестирование, наблюдаемость, контейнеры, устойчивость. Цель — научиться видеть стоимость абстракций и поведение кода под нагрузкой, а не просто заставлять его работать.