Подробная программа обучения
- Зачем тестировать Spring Boot приложение
- JUnit 6 как рабочая база курса
- AssertJ, Hamcrest, JSONassert и JsonPath как язык проверок
- Mockito без магии и без ложного чувства надежности
- Unit-тесты бизнес-логики без Spring-контекста
- Spring Boot 4 testing landscape и карта test annotations
- Test profiles, properties и управляемая тестовая конфигурация
- JSON tests как отдельный слой качества API
- @WebMvcTest как базовый инструмент узкого controller testing
- MockMvc и HTTP-механика без поднятия сервера
- MockMvcTester как более ergonomic MVC path
- Validation и error handling в controller tests
- Более прикладные MVC-сценарии: pagination, files и boundary cases
- @DataJpaTest и честное тестирование repository-layer
- TestEntityManager, flush, clear и реальные последствия JPA-мэппинга
- Queries, pagination и мост к реальной базе данных
- Связи сущностей, lazy loading и конкурентные сценарии
- Flyway, @Sql и repeatable test data
- @SpringBootTest и карта полного контекста
- Full-context tests с MockMvc
- Running server integration tests через RestTestClient
- Минимальный профессиональный regression suite
- Security testing для защищенного Spring Boot API
- Тестирование внешних интеграций и простого async-поведения
- Testcontainers и real PostgreSQL path
- REST Docs, platform settings и финальная стратегия test suite
- Зачем Hibernate, что будем строить и как читать SQL-вывод
- Жизненный цикл сущности и persistence context как основа всего остального
- Dirty checking и как Hibernate автоматически замечает изменения в объектах
- Flush и когда именно Hibernate решает идти в базу данных
- Detached-объекты, что с ними происходит и как правильно использовать merge()
- Lazy loading, proxy-объекты и почему границы транзакции важнее чем кажется
- N+1 на живых примерах как первая настоящая ORM-проблема
- JOIN FETCH, EntityGraph и @BatchSize как инструменты осознанной загрузки данных
- Entity как write-model и projection как read-model в зрелом persistence layer
- HQL, Criteria API и native SQL — три инструмента и понимание когда что выбрать
- Owning side, cascades и lifecycle design как фундамент корректного mapping
- Link entity вместо наивного ManyToMany — честная модель с контролем над lifecycle
- equals(), hashCode() и proxy в коллекциях как источник тихих дорогих багов
- Embeddables, value objects и converters для выразительной и удобной модели
- Стратегии идентификаторов, natural id и их реальная цена в runtime
- Наследование, @DynamicUpdate, ограничения схемы и зрелый mapping design
- Hibernate внутри Spring-транзакций и transaction boundary на уровне сервиса
- Optimistic locking как базовая защита от lost update в бизнес-сценариях
- Pessimistic locking как точечный инструмент для критических конкурентных секций
- Soft delete, filters и управление видимостью данных в реальном приложении
- Hibernate Envers как полноценная история изменений без ручных audit fields
- Lifecycle callbacks и listeners — удобный механизм со скрытыми side effects
- JDBC batching как практический способ ускорить массовые записи
- Bulk operations и StatelessSession как выход за пределы entity-модели
- Read-only mode, first-level cache и кэширование как часть performance-мышления
- SQL diagnostics и performance audit как системный подход к оптимизации
- Hibernate под капотом Spring Data JPA и границы удобства абстракции
- ORM integration testing как способ ловить реальные баги слоя данных
- Hibernate anti-patterns и рефакторинг как подготовка к честному code review
- Финальный persistence audit, decision framework и roadmap роста после курса
- Контейнерное мышление для Java/Spring-разработчика и карта всего курса
- Ежедневный Docker CLI без DevOps-overload
- Первый контейнер для Spring Boot приложения
- Dockerfile глазами Java-разработчика
- Слои, кэш и быстрая пересборка образа
- Multi-stage build как стандартный путь для Java
- Базовые образы, воспроизводимость и платформы
- Layered Spring Boot images на Boot 4.0.3
- Buildpacks и bootBuildImage
- Development target и debug-oriented image
- Externalized configuration внутри контейнеризированного Boot-приложения
- Profiles и внешние конфигурационные файлы
- Volumes, bind mounts и файловые сценарии
- Логи, health и корректное завершение приложения
- Compose как нормальный способ жить с несколькими контейнерами
- Первый взрослый стенд — app + PostgreSQL
- Startup order и настоящая readiness-модель
- Flyway и жизненный цикл локальной среды
- Добавление Redis в тот же Compose-стек
- Добавление RabbitMQ без превращения курса в messaging-track
- Developer workflow вокруг Compose
- Troubleshooting workshop
- JVM под memory и CPU limits
- Image hygiene, non-root и финальный reusable template
400+
Лекций
700+
Задач
80
Тестов
А также:
- Мгновенная проверка
- AI-валидатор кода
- Плагин для IDE
- WebIDE
- Геймификация