-
Фаза 1. Основы языка: Java · 18 вопросов
Синтаксис и типы, ООП, коллекции, дженерики, исключения, лямбды и Stream API, современный Java, инструменты — фундамент языка до фреймворков.
- Синтаксис и типы Java: с чего начинается код обязательно
- ООП в Java: классы, наследование, интерфейсы, record и enum обязательно
- Коллекции Java: списки, множества и словари обязательно
- Как устроена HashMap внутри
- Дженерики в Java: типобезопасность без приведения типов обязательно
- Исключения в Java: иерархия, checked/unchecked, try-with-resources обязательно
- Лямбды и Stream API в Java обязательно
- Records, Optional и современный Java
- Сборка мусора в Java
- Инструменты Java: JDK, javac, jar, Maven и Gradle
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 2. Алгоритмы и структуры данных · 12 вопросов
Массивы и O-нотация, сортировки, стеки и очереди, списки, рекурсия, деревья, хеш-таблицы, кучи и графы — фундамент, на котором стоят коллекции, индексы и хранилища.
- Зачем нужны структуры данных и алгоритмы
- Массивы, двоичный поиск и O-нотация
- Простая сортировка: пузырёк, выбор, вставка
- Стеки и очереди
- Связанные списки
- Рекурсия
- Нетривиальная сортировка: Шелла, быстрая, поразрядная
- Двоичные деревья
- Красно-чёрные деревья
- Деревья 2-3-4 и B-деревья
- Хеш-таблицы
- Пирамиды (кучи)
- Графы
- Взвешенные графы: минимальный остов и кратчайший путь
- Как выбрать структуру данных
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 3. Git и модели ветвления · 8 вопросов
Снимки и коммиты, ветки и слияние, push/pull, pull request и код-ревью, rebase и reflog, модели ветвления от Git Flow до trunk-based.
- Что такое Git и зачем он каждому обязательно
- Коммиты и история: add, commit, log и .gitignore обязательно
- Ветки и слияние: merge и конфликты обязательно
- Удалённые репозитории: push, pull и fetch обязательно
- Pull request и код-ревью обязательно
- Rebase и cherry-pick: переписывание истории
- Отмена и спасение: reset, revert, reflog
- Модели ветвления: Git Flow, GitHub Flow, trunk-based
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 4. Фундамент: ядро Spring · 19 вопросов
DI/IoC, жизненный цикл бина, Boot, MVC, Data JPA, транзакции, события, AOP, планировщик.
- Spring DI/IoC, bean scopes обязательно
- Жизненный цикл Spring-бина с примерами обязательно
- Spring Boot auto-configuration, properties, profiles обязательно
- Spring MVC: контроллеры, REST, валидация и обработка ошибок обязательно
- @Transactional в Spring: транзакции, propagation, ловушки обязательно
- Spring Data JPA: репозитории, запросы по имени, проекции, N+1 обязательно
- Spring Events: @EventListener, @TransactionalEventListener, асинхронные события
- Spring AOP: аспекты, прокси и почему @Transactional иногда молчит
- Spring Scheduled, Async, виртуальные потоки
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 5. Многопоточность и конкурентность · 17 вопросов
Потоки и модель памяти Java (JMM, happens-before, volatile), гонки, synchronized и явные блокировки, atomics и CAS, потокобезопасные коллекции, пулы потоков, CompletableFuture, виртуальные потоки Java 21 и типичные баги — deadlock, livelock, starvation.
- Потоки и процессы в Java обязательно
- Модель памяти Java (JMM): видимость и happens-before обязательно
- Гонки в многопоточных программах: race condition и data race обязательно
- synchronized и мониторы: взаимное исключение в Java обязательно
- Явные блокировки: Lock и ReentrantLock обязательно
- Атомарные переменные и CAS в Java
- Потокобезопасные коллекции в Java
- Пулы потоков: ExecutorService обязательно
- CompletableFuture: асинхронные задачи в Java
- Виртуальные потоки в Java 21
- Структурированная конкурентность: StructuredTaskScope
- Deadlock, livelock и starvation: когда потоки мешают друг другу обязательно
- Многопоточность на практике: Spring обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 6. Kotlin для Java-разработчика · 9 вопросов
Второй язык JVM: синтаксис и идиомы, null-safety, data и sealed классы, extension-функции, корутины против virtual threads и Spring Boot на Kotlin.
- Зачем Java-разработчику Kotlin
- Синтаксис Kotlin после Java
- Null-safety в Kotlin: типы против NPE обязательно
- Классы в Kotlin: data, sealed, object обязательно
- Функции и коллекции в Kotlin
- Корутины Kotlin и virtual threads обязательно
- Kotlin и Spring Boot на практике обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 7. PostgreSQL: модель и запросы · 21 вопросов
Транзакции и изоляция, блокировки, типы данных, индексы и EXPLAIN.
- ACID и уровни изоляции транзакций в PostgreSQL обязательно
- Уровни изоляции транзакций в PostgreSQL обязательно
- Spring @Transactional: как работают транзакции и где они ломаются обязательно
- Блокировки в PostgreSQL: SELECT FOR UPDATE, SKIP LOCKED и advisory locks обязательно
- Именование объектов в PostgreSQL — snake_case, единственное число, префиксы
- Числа в PostgreSQL: bigint, numeric, boolean и как не потерять деньги
- Строковые типы в PostgreSQL: text, varchar и char
- Время и таймзоны в PostgreSQL — почему timestamptz и как с ним работать
- UUID в PostgreSQL: тип uuid, v7 против v4, bigint vs UUID
- Перечисления в PostgreSQL: ENUM, справочник или CHECK
- JSONB в PostgreSQL — что это, как работает и когда применять обязательно
- Массивы и range-типы в PostgreSQL: теги, бронирования, EXCLUDE
- Типы индексов в PostgreSQL — B-tree, GIN, GiST, BRIN обязательно
- Составные индексы PostgreSQL и правило левого префикса обязательно
- Как выбрать индекс и считать селективность в PostgreSQL обязательно
- EXPLAIN ANALYZE — как читать план запроса PostgreSQL обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 8. PostgreSQL: эксплуатация и масштаб · 19 вопросов
Миграции, пул, vacuum/WAL, репликация, бэкап, партиционирование, FTS и гео.
- Миграции PostgreSQL без остановки сервиса обязательно
- Connection pooling в PostgreSQL — HikariCP, PgBouncer и формула Wooldridge обязательно
- VACUUM, autovacuum и bloat в PostgreSQL обязательно
- WAL в PostgreSQL: что это и как влиять на объём журнала обязательно
- Репликация PostgreSQL: read-replica и маршрутизация запросов обязательно
- Резервные копии PostgreSQL: pg_dump, pg_basebackup и PITR обязательно
- Мониторинг PostgreSQL: slow queries, активность и ключевые метрики обязательно
- Партиционирование в PostgreSQL: когда нужно и как устроено обязательно
- Партиционирование и шардирование в PostgreSQL
- Multi-tenancy в PostgreSQL: row, schema, db per tenant
- Materialized views в PostgreSQL: как работают и когда использовать
- Триггеры и хранимые процедуры PostgreSQL
- Расширения PostgreSQL: pg_trgm, pgcrypto, pg_stat_statements и другие
- Полнотекстовый поиск в PostgreSQL — tsvector, GIN, russian
- PostGIS: геоданные в PostgreSQL — точки, полигоны, поиск в радиусе
- Анонимизация дампа PostgreSQL для разработчика
- Частые ошибки при выборе типов в PostgreSQL обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 9. Hibernate и ORM · 17 вопросов
Объектно-реляционное отображение: маппинг сущностей и связей, persistence context, ленивая загрузка и N+1, JPQL и Criteria, кэширование, транзакции и блокировки, наследование и типичные грабли.
- Что такое ORM и Hibernate: от JDBC к объектно-реляционному маппингу обязательно
- Маппинг сущностей в Hibernate и JPA обязательно
- Связи между сущностями в Hibernate: @OneToMany, @ManyToOne, @ManyToMany обязательно
- Persistence context и состояния сущности в Hibernate обязательно
- Ленивая и жадная загрузка в Hibernate обязательно
- Проблема N+1 запросов в Hibernate обязательно
- JPQL, Criteria API и нативные запросы в Hibernate
- Кэширование в Hibernate: первый уровень, второй уровень и кэш запросов
- Транзакции, flush и блокировки в Hibernate обязательно
- Наследование сущностей в Hibernate: SINGLE_TABLE, JOINED, TABLE_PER_CLASS
- Типичные ошибки с Hibernate: что идёт не так и как это исправить
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 10. Другие хранилища: документы, поиск, файлы, аналитика · 8 вопросов
MongoDB, Elasticsearch, object storage (S3) и ClickHouse. Плюс развилки выбора базы данных и графовая СУБД Neo4j.
- ACID, read и write concerns, транзакции в MongoDB обязательно
- Моделирование документов в MongoDB: embed vs reference, индексы обязательно
- Репликация и шардинг в MongoDB
- Elasticsearch: как устроен поисковый движок обязательно
- Как работают запросы в Elasticsearch и почему документы сортируются именно так обязательно
- Spring Data Elasticsearch: как подключить и использовать поиск в Java-приложении
- Как работает Elasticsearch в production: ILM, snapshots, sizing, мониторинг
- Что такое object storage: bucket, объект, ключ, классы хранения и presigned URL обязательно
- Spring + AWS SDK v2 для S3: интеграция, паттерны, MinIO
- S3 в production: резервные копии, репликация, стоимость и мониторинг
- Что такое Redis: in-memory хранилище для backend-разработчика обязательно
- Структуры данных Redis: String, Hash, List, Set, Sorted Set и другие обязательно
- Паттерны кэширования в Redis обязательно
- Redis не только для кэша: блокировки, ограничение запросов, очереди и Pub/Sub
- Redis в Spring Boot: RedisTemplate, @Cacheable и Spring Session
- Эксплуатация Redis: персистентность, память, репликация
- Как устроен ClickHouse: колоночное хранение, MergeTree и OLAP обязательно
- ClickHouse: моделирование схемы, запросы, materialized views обязательно
- ClickHouse из Java и Spring Boot: подключение, запись и чтение
- ClickHouse в проде: репликация, TTL, бэкапы и мониторинг
- Архитектура Cassandra: кольцо без главного узла
- Модель данных Cassandra: partition key и clustering columns
- Согласованность и репликация в Cassandra
- Как устроен Neo4j: property graph, узлы, рёбра и обход без индексов обязательно
- Cypher: язык запросов к графу простыми словами обязательно
- Neo4j: моделирование графа, индексы и эксплуатация
- PostgreSQL или MongoDB: как выбрать базу данных
- Oracle или PostgreSQL: отличия и миграция
- Cassandra, PostgreSQL или MongoDB: когда брать колоночную NoSQL
- Графовые данные простыми словами: рекурсивный SQL или графовая СУБД
- Neo4j: где применяют графовую СУБД — от рекомендаций до GraphRAG
- PostgreSQL или ClickHouse: когда добавлять вторую базу
- Поиск: PostgreSQL FTS или Elasticsearch
- Файлы: в базе данных или в object storage
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 11. Принципы и паттерны проектирования · 5 вопросов
SOLID, GRASP, паттерны GoF, DRY/KISS/YAGNI.
- SOLID: пять принципов проектирования обязательно
- Паттерны GoF: все 23 простыми словами обязательно
- GRASP: назначение ответственностей
- DRY, KISS, YAGNI и другие инженерные принципы обязательно
- Clean Code: имена, функции, комментарии
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 12. Сетевой фундамент · 8 вопросов
Модели OSI и TCP/IP, IP и порты, TCP/UDP, DNS, HTTP и HTTPS, версии HTTP, соединения и надёжность.
- Как устроена сеть: модели OSI и TCP/IP обязательно
- IP-адреса, порты и NAT
- TCP и UDP: надёжность против скорости обязательно
- DNS: как доменное имя превращается в адрес обязательно
- HTTP: методы, статусы, заголовки обязательно
- HTTPS и TLS: шифрование и рукопожатие обязательно
- HTTP/1.1, HTTP/2 и HTTP/3: что поменялось
- Соединения: keep-alive, пулы и таймауты
- Балансировщики и обратные прокси обязательно
- Сеть и надёжность: таймауты, ретраи, идемпотентность
- WebSocket, SSE и long polling обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 13. API: REST и контракты · 8 вопросов
URL и ресурсы, query-параметры, ответы и ошибки, версионирование, OpenAPI.
- URL и ресурсы REST: как называть пути и выбирать HTTP-методы обязательно
- Query-параметры и пагинация в REST API обязательно
- JSON и формат ответов в REST API обязательно
- Ошибки в REST API — формат Problem Details обязательно
- HTTP-заголовки в REST API: Content-Type, Authorization, Idempotency-Key и трассировка обязательно
- Версионирование REST API — как менять API без поломки клиентов обязательно
- Alias-сегменты и action-эндпоинты в REST API
- API-first и contract-first: проектируем контракт раньше кода обязательно
- OpenAPI: метаданные и типичные ошибки в REST
- Rate limiting, загрузка файлов и deprecation в REST API
- Массовые операции, асинхронность и локализация в REST API
- gRPC: быстрые вызовы между сервисами обязательно
- GraphQL: клиент запрашивает ровно нужное обязательно
- HATEOAS: зрелость REST и гиперссылки
- Где валидировать данные обязательно
- Bean Validation в Spring: @NotNull, @Valid и MethodArgumentNotValidException обязательно
- Свои ограничения и сообщения об ошибках
- Модель ошибок приложения обязательно
- Единый обработчик ошибок обязательно
- Типичные ошибки в обработке исключений
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 14. Безопасность и авторизация · 10 вопросов
Spring Security, Keycloak/OAuth2/OIDC и паттерны авторизации.
- Spring Security: фильтры, AuthN, AuthZ, OAuth2 обязательно
- Что такое Keycloak и зачем он нужен обязательно
- OAuth2 и OIDC простыми словами обязательно
- Realm, client, роли и пользователи в Keycloak обязательно
- Authorization Code Flow и PKCE по шагам обязательно
- Keycloak и Spring Security: проверка токенов обязательно
- Роли и доступ: RBAC и ABAC с Keycloak
- Три токена Keycloak: access, id, refresh — куда какой
- Kerberos и LDAP: корпоративная аутентификация
- Паттерны аутентификации и авторизации
- Где какая проверка — Gateway, BFF и Domain Service обязательно
- ABAC и проверка владения ресурсом в Spring обязательно
- Service-to-service аутентификация: mTLS и Client Credentials обязательно
- PII и секреты — как не утечь в логи, ответы и сообщения
- Аудит действий администратора
- PCI DSS для разработчика
- GDPR для разработчика
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 15. Брокеры и распределённые системы · 7 вопросов
AMQP/RabbitMQ, Kafka и распределённые паттерны: saga, outbox, idempotency.
- Протокол AMQP: exchange, queue, binding, ack обязательно
- RabbitMQ в production: кластеризация, типы очередей и мониторинг
- Spring AMQP: как отправлять и получать сообщения через RabbitMQ обязательно
- Паттерны обмена сообщениями через AMQP
- AMQP vs Kafka: какой брокер выбрать обязательно
- Apache Kafka: топики, партиции, порядок и гарантии обязательно
- Kafka в production: Spring Kafka, DLQ, Schema Registry, тюнинг, безопасность обязательно
- Kafka Streams: потоковая обработка
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 16. Микросервисы: архитектура и проблемы
Нужны ли микросервисы, как устроен сервис и как они общаются; что ломается в распределённой системе и как это лечить — saga, outbox, идемпотентность, устойчивость.
- Выбор начальной архитектуры: монолит, модульный монолит, микросервисы обязательно
- Структурные паттерны микросервисов обязательно
- Между сервисами: синхронный вызов или события обязательно
- Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму обязательно
- Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности
- Распределённые паттерны
- Паттерны отказоустойчивости обязательно
-
Фаза 17. Контейнеры: Docker · 8 вопросов
Контейнеры и образы, Dockerfile для Spring Boot, multi-stage сборка, запуск контейнеров, тома и данные, сети, Docker Compose, JVM в контейнере, безопасные образы и реестры.
- Что такое Docker и контейнеры обязательно
- Образы, слои и Dockerfile: как Docker упаковывает приложение обязательно
- Dockerfile для Spring Boot: правильная сборка образа обязательно
- Multi-stage сборка и кэш слоёв Docker обязательно
- Запуск контейнеров: docker run и жизненный цикл обязательно
- Тома и данные в Docker: как не потерять базу при перезапуске контейнера
- Сети Docker: как контейнеры общаются между собой
- Docker Compose: поднять всё окружение одной командой обязательно
- JVM в контейнере: память и ядра обязательно
- Маленькие и безопасные образы Docker
- Реестры образов и сборка в CI
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 18. Kubernetes и graceful shutdown · 9 вопросов
Кластер, сеть, Spring Boot в k8s, деплой и корректное завершение работы.
- Kubernetes: pod, deployment, service — с чего начать обязательно
- Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy обязательно
- Spring Boot в Kubernetes: probes, ресурсы и JVM, graceful shutdown обязательно
- Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps обязательно
- Kubernetes на практике: отладка подов и kubectl-команды
- OpenShift: чем отличается от чистого Kubernetes
- Helm: пакетный менеджер Kubernetes
- ArgoCD: GitOps-доставка в Kubernetes
- Graceful shutdown в Spring Boot: server.shutdown, таймауты и health-пробы обязательно
- HTTP drain — preStop sleep и долгие endpoints обязательно
- БД и persistence при завершении Spring Boot обязательно
- Scheduled, @Async и outbox: как правильно останавливать фоновые задачи
- Kafka shutdown — как правильно останавливать потребитель и продюсер
- Идемпотентность при остановке сервиса
- Kubernetes и graceful shutdown: terminationGracePeriodSeconds, probes, maxSurge обязательно
- Бюджеты завершения и наблюдаемость graceful shutdown
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 19. Облака · 8 вопросов
Облачная модель на четырёх провайдерах — AWS, Yandex Cloud, Azure и GCP: сеть, IAM, compute, масштабирование, serverless, данные, хранилища и IaC. Модель одна, знания переносимы между облаками.
- Основы AWS: аккаунты, IAM, регионы и VPC обязательно
- Сеть в AWS: VPC, подсети, NAT и security groups обязательно
- IAM в AWS: пользователи, роли и политики обязательно
- Где запускать сервис в AWS: EC2, ECS, EKS или Lambda обязательно
- Масштабирование и доступность в AWS обязательно
- Serverless в AWS: Lambda, события, cold start, API Gateway обязательно
- Управляемые данные в AWS: RDS, ElastiCache, SQS, MSK обязательно
- DynamoDB: ключи, индексы и когда брать вместо SQL
- AWS из Spring Boot: SDK v2, credentials chain и LocalStack обязательно
- Безопасность и наблюдаемость в AWS: Secrets Manager, SSM, KMS, CloudWatch обязательно
- Отказоустойчивость и аварийное восстановление в AWS
- Оптимизация затрат в AWS: с чего начать
- AWS Well-Architected Framework: шесть столпов и как ими пользоваться обязательно
- Infrastructure as Code: основы
- Terraform: HCL, провайдеры, состояние и модули
- CloudFormation: шаблоны и стеки
- AWS CDK: инфраструктура как программа
- IaC на практике: state, секреты, доставка
- Основы Yandex Cloud: организация, каталоги, IAM, сети
- Сеть в Yandex Cloud: облачная сеть, подсети, NAT, группы безопасности
- Cloud IAM в Yandex Cloud: сервисные аккаунты, роли, привязки
- Где запускать сервис в Yandex Cloud: Compute Cloud, Kubernetes, Serverless Containers, Cloud Functions
- Масштабирование и доступность в Yandex Cloud
- Serverless в Yandex Cloud: Cloud Functions, триггеры, API Gateway
- Управляемые данные в Yandex Cloud: PostgreSQL, Redis, Message Queue, Kafka
- YDB: масштабируемая база данных Yandex Cloud
- Object Storage в Yandex Cloud: объектное хранилище и классы хранения
- Yandex Cloud из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в Yandex Cloud: Lockbox, KMS, Cloud Logging, Monitoring
- Оптимизация затрат в Yandex Cloud: с чего начать
- Отказоустойчивость и аварийное восстановление в Yandex Cloud
- Terraform в Yandex Cloud: инфраструктура как код
- Основы Azure: подписки, группы ресурсов, Entra ID, сеть
- Сеть в Azure: Virtual Network, подсети, NSG, NAT
- Entra ID и RBAC в Azure: удостоверения, роли, managed identity
- Где запускать сервис в Azure: Virtual Machines, AKS, Container Apps, Functions
- Масштабирование и доступность в Azure
- Serverless в Azure: Azure Functions, триггеры, API Management
- Управляемые данные в Azure: PostgreSQL, Redis, Service Bus, Event Hubs
- Cosmos DB: глобально распределённая база данных Azure
- Blob Storage в Azure: объектное хранилище и уровни доступа
- Azure из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в Azure: Key Vault, Azure Monitor, Application Insights
- Оптимизация затрат в Azure: с чего начать
- Отказоустойчивость и аварийное восстановление в Azure
- Инфраструктура как код в Azure: Bicep, ARM, Terraform
- Основы GCP: проекты, Cloud IAM, регионы, сеть
- Сеть в GCP: VPC, подсети, правила файрвола, Cloud NAT
- Cloud IAM в GCP: сервисные аккаунты, роли, привязки
- Где запускать сервис в GCP: Compute Engine, GKE, Cloud Run, Cloud Functions
- Масштабирование и доступность в GCP
- Serverless в GCP: Cloud Run, Cloud Functions, Eventarc
- Управляемые данные в GCP: Cloud SQL, Memorystore, Pub/Sub
- Firestore и другие NoSQL в GCP: Bigtable, Spanner
- Cloud Storage в GCP: объектное хранилище и классы хранения
- GCP из Spring Boot: доступ к сервисам из кода
- Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
- Оптимизация затрат в GCP: с чего начать
- Отказоустойчивость и аварийное восстановление в GCP
- Terraform в GCP: инфраструктура как код
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 20. CI/CD: конвейер доставки · 3 вопросов
Принципы конвейера, CI для Java, стратегии релиза и ветвление.
- Принципы CI/CD: конвейер от коммита до прода обязательно
- CI для Java/Spring: сборка, тесты, quality gates обязательно
- Стратегии релиза: rolling, blue-green, canary, feature flags обязательно
- Ветки и релизный цикл: trunk-based, версии, GitOps
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 21. Качество: тесты и наблюдаемость · 9 вопросов
Стратегия тестов и observability/Actuator.
- Spring Testing: @SpringBootTest, слайсы, TestContainers обязательно
- Пирамида тестов: что и где обязательно
- Интеграционные тесты с Testcontainers обязательно
- Моки и внешние системы в тестах
- Spring Actuator, Micrometer, трейсинг обязательно
- Логирование в Java и Spring Boot: JSON, MDC и уровни логов обязательно
- Метрики в Spring Boot: Micrometer и Prometheus обязательно
- Distributed tracing в Java: OpenTelemetry, spans и как связать логи с трассировкой обязательно
- Context propagation и MDC в Spring Boot
- Health checks в Spring Boot: liveness, readiness и custom HealthIndicator
- SLO и алерты в Java/Spring Boot
- Конфигурация observability в Spring Boot
- Нагрузочное тестирование: k6, Gatling, JMeter обязательно
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 22. Работа с AI-агентами · 9 вопросов
Как работает языковая модель и как продуктивно писать код с AI-агентом: токены и галлюцинации, контекст, вызов инструментов, агенты, базовый цикл работы, ревью и приёмка AI-кода.
- Как работают модели ИИ: предсказание следующего токена
- Галлюцинации ИИ: почему модель уверенно выдумывает
- Токены и стоимость: за что вы платите в работе с ИИ
- Контекст: что модель держит в голове за один раз
- Вызов инструментов: как модель выходит за пределы текста
- Агенты: модель в цикле с инструментами и целью
- Работа с агентами: базовый цикл продуктивной сессии
- Ревью и тестирование кода с агентом
- Приёмка результата AI: критерии и тесты из спеки
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 23. Создание LLM-приложений · 6 вопросов
Как встраивать AI в backend-продукт: из чего состоит LLM-фича, оркестрация через LangChain, RAG и эмбеддинги, векторные базы и агентные приложения.
- Из чего состоит LLM-фича
- LangChain: оркестрация LLM-приложений
- RAG и эмбеддинги: как дать модели ваши данные
- Векторные базы данных
- Агентные приложения: инструменты и автономные циклы
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 24. Системный дизайн и архитектурный выбор · 21 вопросов
Метод дизайна, строительные блоки, развилки хранилищ и нотаций, C4.
- Надёжность, масштабируемость, сопровождаемость — простыми словами обязательно
- Метод системного дизайна: от требований к архитектуре обязательно
- Строительные блоки системного дизайна обязательно
- B-деревья и LSM-деревья простыми словами: как база данных хранит данные обязательно
- OLTP и OLAP простыми словами: два разных мира работы с данными обязательно
- Эволюция схем простыми словами: менять формат данных, ничего не ломая
- Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы обязательно
- Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки обязательно
- Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача обязательно
- Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
- Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
- Как устроена система уведомлений: архитектура с нуля
- Как оформить и защитить дизайн системы: design doc, C4, ревью обязательно
- Spring MVC, WebFlux и виртуальные потоки: что выбрать
- ADR: как фиксировать архитектурные решения обязательно
- Роль архитектора в команде разработки обязательно
- Модель C4
- Spring Cloud или Kubernetes
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 25. Domain-Driven Design · 7 вопросов
Стратегические и тактические паттерны, агрегаты, доменные события.
- Что такое DDD и зачем он нужен обязательно
- Стратегические паттерны DDD обязательно
- Тактические паттерны DDD обязательно
- Интеграционные паттерны DDD
- Принципы проектирования в DDD
- Онтология и доменная модель: система понятий до агрегатов
- Event Storming: добываем модель домена у бизнеса
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 26. Архитектурные паттерны сервиса · 8 вопросов
Структура сервиса и микросервисов, Onion и Hexagonal, CQRS, отказоустойчивость и пакетная обработка.
- Луковая архитектура (Onion Architecture) обязательно
- CQRS
- Когда применять CQRS: от простых маркеров до разных баз данных обязательно
- Command side в CQRS — как работает запись обязательно
- Query side в CQRS: как читать данные без write-инструментов обязательно
- Read-model в CQRS — денормализованная проекция для быстрого чтения обязательно
- Синхронизация read-model через события: outbox, Kafka и idempotent consumer
- Уровень и эволюция CQRS — от простого разделения к event-driven read-model
- Гексагональная архитектура
- Когда применять Hexagonal Architecture обязательно
- Core слой в Hexagonal Architecture обязательно
- Ports в Hexagonal Architecture — interfaces в core/ обязательно
- Входные адаптеры в гексагональной архитектуре — REST, Kafka, CLI обязательно
- Out-адаптеры в Hexagonal Architecture — как сервис разговаривает с внешним миром обязательно
- Структура модулей в Hexagonal Architecture
- Bootstrap / Composition Root в Hexagonal
- Архитектурные тесты в Hexagonal-проекте через ArchUnit
- Пакетная обработка данных: как не сломать фоновый обработчик
- Event Sourcing: хранить события, а не состояние
Пройти опрос фазы → самопроверка после чтения фазы
-
Фаза 27. Методологии и процесс разработки · 8 вопросов
Waterfall, Agile, Scrum, Kanban, XP, оценка и масштабирование — как команда организует работу от идеи до релиза.
- Модели разработки: от Waterfall к Agile
- Scrum: роли, события и артефакты
- Kanban: поток, WIP-лимиты и вытягивание
- Extreme Programming: инженерные практики Agile
- Оценка и планирование: story points и velocity
- Масштабирование Agile: SAFe и LeSS
Пройти опрос фазы → самопроверка после чтения фазы
Программа обучения v6.0.0
Backend · Java
Этот сайт устроен как программа подготовки. Каждая статья — кусочек знаний, необходимый, чтобы работать в команде, использующей Use Case Pattern. Программа ведёт от фундамента Spring через данные, принципы и паттерны, поиск и хранилища, инфраструктуру и качество к архитектурному мышлению — системному дизайну и DDD — и к кульминации в Use Case Pattern, а затем к сквозному кейсу маркетплейса.
Всего в программе 282 вопросов для самопроверки.