-
Фаза 1. С чего начать
Зачем этот курс и кому он подойдёт: какую проблему решает программа, как устроены фазы, тесты и тренажёры, и как проходить её так, чтобы дошло до конца.
- Зачем этот курс и кому он подойдёт обязательно
-
Фаза 2. Основы языка: Java · 95 вопросов
Синтаксис и типы, ООП, коллекции, дженерики, исключения, лямбды и Stream API, современный Java, инструменты — фундамент языка до фреймворков.
- Синтаксис и типы Java: с чего начинается код обязательно
- ООП в Java: классы, наследование, интерфейсы, record и enum обязательно
- Коллекции Java: списки, множества и словари обязательно
- Как устроена HashMap внутри
- Дженерики в Java: типобезопасность без приведения типов обязательно
- Исключения в Java: иерархия, checked/unchecked, try-with-resources обязательно
- Лямбды и Stream API в Java обязательно
- Records, Optional и современный Java что пощупать
- Загрузка классов в Java: ClassLoader, делегирование и NoClassDefFoundError
- Сборка мусора в Java
- Инструменты Java: JDK, javac, jar, Maven и Gradle
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 3. Алгоритмы и структуры данных · 116 вопросов
Массивы и O-нотация, сортировки, стеки и очереди, списки, рекурсия, деревья, хеш-таблицы, кучи и графы, а затем приёмы решения задач — два указателя, окно, префиксные суммы, динамическое программирование.
- Зачем нужны структуры данных и алгоритмы
- Математика для O-нотации: логарифмы, степени и скорость роста обязательно
- Массивы, двоичный поиск и O-нотация обязательно
- Простая сортировка: пузырёк, выбор, вставка обязательно
- Стеки и очереди
- Связанные списки
- Рекурсия обязательно
- Нетривиальная сортировка: Шелла, быстрая, поразрядная
- Двоичные деревья
- Красно-чёрные деревья
- Деревья 2-3-4 и B-деревья
- Хеш-таблицы обязательно
- Пирамиды (кучи)
- Графы
- Взвешенные графы: минимальный остов и кратчайший путь
- Два указателя и скользящее окно обязательно
- Префиксные суммы обязательно
- Двоичный поиск по ответу обязательно
- Монотонный стек обязательно
- Динамическое программирование обязательно
- Перебор с отсечением обязательно
- Как выбрать структуру данных обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 4. Git и модели ветвления · 45 вопросов
Снимки и коммиты, ветки и слияние, 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, GitLab Flow, trunk-based
- Тест фазы в кабинете
-
Фаза 5. Фундамент: ядро Spring · 54 вопросов
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 WebFlux: когда брать, Mono/Flux, R2DBC
- Spring Scheduled, Async, виртуальные потоки
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 6. Многопоточность и конкурентность · 71 вопросов
Потоки и модель памяти 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 обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 7. Принципы и паттерны проектирования · 26 вопросов
SOLID, GRASP, паттерны GoF, DRY/KISS/YAGNI.
-
Фаза 8. SQL с нуля · 66 вопросов
Язык запросов до особенностей конкретной базы: таблицы и ключи, SELECT и WHERE, соединения, агрегаты, NULL, подзапросы, оконные функции, даты и строки, изменение данных, создание таблиц и почему запрос вдруг стал медленным.
- Что такое база данных и таблицы обязательно
- SELECT: выбрать, отфильтровать, отсортировать обязательно
- JOIN: собрать данные из нескольких таблиц обязательно
- Агрегаты: COUNT, GROUP BY и HAVING обязательно
- NULL и типы данных: где все спотыкаются обязательно
- Подзапросы и CTE: запрос внутри запроса обязательно
- Оконные функции: считать, не схлопывая строки
- Даты и время в SQL: отрезки, группировка по дням и арифметика
- Строки в SQL: склейка, поиск и приведение к одному виду
- INSERT, UPDATE, DELETE и транзакции обязательно
- Схема базы данных: таблицы, ключи и представления
- Почему запрос медленный: индексы на пальцах обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 9. PostgreSQL: модель и запросы · 99 вопросов
Транзакции и изоляция, блокировки, типы данных, индексы и 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 и правило левого префикса обязательно
- Covering Index в PostgreSQL: зачем нужен INCLUDE
- Как выбрать индекс и считать селективность в PostgreSQL обязательно
- Веса в полнотекстовом поиске PostgreSQL (FTS)
- EXPLAIN ANALYZE — как читать план запроса PostgreSQL обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 10. PostgreSQL: эксплуатация и масштаб · 92 вопросов
Миграции, пул, vacuum/WAL, репликация, бэкап, партиционирование, FTS и гео.
- Миграции PostgreSQL без остановки сервиса обязательно
- Connection pooling в PostgreSQL — HikariCP, PgBouncer и размер пула обязательно
- VACUUM, autovacuum и bloat в PostgreSQL обязательно
- WAL в PostgreSQL: что это и как влиять на объём журнала обязательно
- Репликация PostgreSQL: read-replica и маршрутизация запросов обязательно
- Резервные копии PostgreSQL: pg_dump, pg_basebackup и PITR обязательно
- Партиционирование в 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 обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 11. Hibernate и ORM · 58 вопросов
Объектно-реляционное отображение: маппинг сущностей и связей, 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: что идёт не так и как это исправить
- Тест фазы в кабинете
-
Фаза 12. Другие хранилища: документы, поиск, файлы, аналитика · 222 вопросов
Сначала фундамент: как хранилища устроены внутри — движки, репликация, шардинг, потоки. Затем сами хранилища: MongoDB, Elasticsearch, object storage (S3) и ClickHouse. Плюс развилки выбора базы данных и графовая СУБД Neo4j.
- B-деревья и LSM-деревья простыми словами: как база данных хранит данные обязательно
- OLTP и OLAP простыми словами: два разных мира работы с данными обязательно
- Эволюция схем простыми словами: менять формат данных, ничего не ломая
- Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы обязательно
- Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки обязательно
- Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
- Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
- 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
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 13. Сетевой фундамент · 82 вопросов
Модели 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, пулы и таймауты
- Два пула: к базе и по HTTP — чем отличаются и как топят друг друга
- Балансировщики и обратные прокси обязательно
- Сеть и надёжность: таймауты, ретраи, идемпотентность
- Сетевая диагностика с хоста: что смотреть, когда сервис не отвечает
- WebSocket, SSE и long polling обязательно
- Масштабирование WebSocket в Kubernetes через Kafka
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 14. API: REST и контракты · 114 вопросов
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: контракт, который читают машины
- Rate limiting, загрузка файлов и deprecation в REST API
- Массовые операции, асинхронность и локализация в REST API
- gRPC: быстрые вызовы между сервисами обязательно
- GraphQL: клиент запрашивает ровно нужное обязательно
- HATEOAS: зрелость REST и гиперссылки
- Где валидировать данные обязательно что пощупать
- Bean Validation в Spring: @NotNull, @Valid и MethodArgumentNotValidException обязательно
- Свои ограничения и сообщения об ошибках
- Модель ошибок приложения обязательно что пощупать
- Единый обработчик ошибок обязательно
- Типичные ошибки в обработке исключений
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 15. Безопасность и авторизация · 93 вопросов
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 для разработчика
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 16. Брокеры и распределённые системы · 66 вопросов
AMQP/RabbitMQ, Kafka и распределённые паттерны: saga, outbox, idempotency.
- Протокол AMQP: exchange, queue, binding, ack обязательно
- RabbitMQ в production: кластеризация, типы очередей и мониторинг
- Spring AMQP: как отправлять и получать сообщения через RabbitMQ обязательно
- Паттерны обмена сообщениями через AMQP
- AMQP vs Kafka: какой брокер выбрать обязательно
- Apache Kafka: топики, партиции, порядок и гарантии обязательно что пощупать
- Spring Kafka в production: что настроить до первого сбоя обязательно что пощупать
- Kafka Streams: потоковая обработка
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 17. Микросервисы: архитектура и проблемы · 53 вопросов
Нужны ли микросервисы, как устроен сервис и как они общаются; что ломается в распределённой системе и как это лечить — saga, outbox, идемпотентность, устойчивость.
- Выбор начальной архитектуры: монолит, модульный монолит, микросервисы обязательно что пощупать
- Структурные паттерны микросервисов обязательно что пощупать
- Между сервисами: синхронный вызов или события обязательно
- Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму обязательно
- Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача обязательно
- Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности
- Распределённые паттерны что пощупать
- Паттерны отказоустойчивости обязательно что пощупать
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 18. Контейнеры: Docker · 62 вопросов
Контейнеры и образы, 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
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 19. Kubernetes и graceful shutdown · 94 вопросов
Кластер, сеть, Spring Boot в k8s, деплой и корректное завершение работы.
- Kubernetes: pod, deployment, service — с чего начать обязательно
- Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy обязательно
- Spring Boot в Kubernetes: probes, ресурсы и JVM, graceful shutdown обязательно что пощупать
- Конфигурация на лету: @RefreshScope, Spring Cloud Bus и таблица настроек
- Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps обязательно
- Kubernetes на практике: отладка подов и kubectl-команды
- OpenShift: чем отличается от чистого Kubernetes
- Helm: пакетный менеджер Kubernetes
- Argo CD: 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
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 20. Облака · 298 вопросов
Общие принципы облаков и три провайдера — AWS, Azure и GCP: сеть, IAM, compute, масштабирование, serverless, данные, хранилища и IaC. Модель одна, знания переносимы между облаками.
- Что такое облако и зачем оно нужно обязательно
- Регионы и зоны доступности: где физически живёт ваш сервис обязательно
- Учётные записи и права в облаке: пользователи, сервисные аккаунты, роли обязательно
- Сеть в облаке: частная сеть, подсети, файрвол и выход наружу обязательно
- Три уровня вычислений: машины, контейнеры, функции обязательно
- Управляемые данные: базы, кэш, очереди и объектное хранилище обязательно
- Наблюдаемость и секреты в облаке обязательно
- Деньги в облаке: за что платят и как не переплатить обязательно
- Отказоустойчивость и восстановление: зоны, копии, RPO и RTO обязательно
- Основы 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, секреты, доставка
- Основы 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 из приложения: доступ к сервисам из кода
- Безопасность и наблюдаемость в 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 из приложения: доступ к сервисам из кода
- Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
- Оптимизация затрат в GCP: с чего начать
- Отказоустойчивость и аварийное восстановление в GCP
- Terraform в GCP: инфраструктура как код
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 21. CI/CD: конвейер доставки · 30 вопросов
Принципы конвейера, CI для Java, стратегии релиза и ветвление.
-
Фаза 22. Качество: стратегия тестов · 32 вопросов
Пирамида тестов, слайсы и интеграционные тесты, моки и внешние сервисы, нагрузочное тестирование.
- Spring Testing: @SpringBootTest, слайсы, TestContainers обязательно что пощупать
- Пирамида тестов: что и где обязательно
- Интеграционные тесты с Testcontainers обязательно
- Моки и внешние системы в тестах
- Нагрузочное тестирование: k6, Gatling, JMeter обязательно
- Тест фазы в кабинете
-
Фаза 23. Наблюдаемость и диагностика · 83 вопросов
Как понять, что происходит с работающей системой: журналы, метрики, трассировка, проброс контекста, health-проверки, SLO и алерты — плюс диагностика базы и разбор аварий после.
- Spring Actuator: что он умеет и сколько это стоит обязательно что пощупать
- Логирование в 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 что пощупать
- Профилирование и утечки памяти: когда метрик уже мало обязательно
- Thread dump и heap dump: как снять и как читать обязательно
- От алерта до строки лога: как связать три сигнала обязательно
- Мониторинг PostgreSQL: slow queries, активность и ключевые метрики обязательно
- Отчёт нагрузки PostgreSQL: как читать и ставить диагноз обязательно
- Отчёт нагрузки своими руками: запросы по каждому разделу обязательно
- Постмортем и дежурства: разбор аварий без поиска виноватых обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 24. Работа с AI-агентами · 63 вопросов
Как работает языковая модель и как продуктивно писать код с AI-агентом: токены и галлюцинации, контекст, вызов инструментов, агенты, базовый цикл работы, ревью и приёмка AI-кода.
- Как работают модели ИИ: предсказание следующего токена обязательно
- Галлюцинации ИИ: почему модель уверенно выдумывает обязательно
- Токены и стоимость: за что вы платите в работе с ИИ
- Контекст: что модель держит в голове за один раз обязательно
- Вызов инструментов: как модель выходит за пределы текста обязательно что пощупать
- Агенты: модель в цикле с инструментами и целью обязательно что пощупать
- Работа с агентами: базовый цикл продуктивной сессии обязательно
- Claude Code: команды, которыми пользуешься каждый день обязательно
- Spec-driven development: сначала спецификация, потом код
- Ревью и тестирование кода с агентом
- Приёмка результата AI: критерии и тесты из спеки обязательно
- Тест фазы в кабинете
-
Фаза 25. Создание LLM-приложений · 32 вопросов
Как встраивать AI в backend-продукт: из чего состоит LLM-фича, оркестрация через LangChain, RAG и эмбеддинги, векторные базы и агентные приложения.
- Из чего состоит LLM-фича обязательно что пощупать
- LangChain: оркестрация LLM-приложений
- RAG и эмбеддинги: как дать модели ваши данные обязательно что пощупать
- Векторные базы данных что пощупать
- Агентные приложения: инструменты и автономные циклы что пощупать
- Тест фазы в кабинете
-
Фаза 26. Системный дизайн и архитектурный выбор · 94 вопросов
Метод дизайна, строительные блоки, развилки хранилищ и нотаций, C4.
- Надёжность, масштабируемость, сопровождаемость — простыми словами обязательно
- Метод системного дизайна: от требований к архитектуре обязательно
- Строительные блоки системного дизайна обязательно
- Как устроена система уведомлений: архитектура с нуля
- Как оформить и защитить дизайн системы: design doc, C4, ревью обязательно
- Spring MVC, WebFlux и виртуальные потоки: что выбрать
- ADR: как фиксировать архитектурные решения обязательно
- Роль архитектора в команде разработки обязательно
- Модель C4
- Spring Cloud или Kubernetes
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 27. Domain-Driven Design · 42 вопросов
Стратегические и тактические паттерны, агрегаты, доменные события.
- Что такое DDD и зачем он нужен обязательно что пощупать
- Стратегические паттерны DDD обязательно
- Тактические паттерны DDD обязательно
- Интеграционные паттерны DDD
- Принципы проектирования в DDD
- Онтология и доменная модель: система понятий до агрегатов
- Event Storming: добываем модель домена у бизнеса
- Тест фазы в кабинете
-
Фаза 28. Архитектурные паттерны сервиса · 118 вопросов
Структура сервиса и микросервисов, 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: хранить события, а не состояние
- Конечные автоматы и стейт-машины: что это и когда нужны что пощупать
- Как реализовать стейт-машину в Java что пощупать
- BPM и оркестрация процессов: Camunda и аналоги
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 29. Методологии и процесс разработки · 41 вопросов
Waterfall, Agile, Scrum, Kanban, XP, оценка и масштабирование — как команда организует работу от идеи до релиза.
- Модели разработки: от Waterfall к Agile обязательно
- Scrum: роли, события и артефакты обязательно
- Kanban: поток, WIP-лимиты и вытягивание обязательно
- Extreme Programming: инженерные практики Agile
- Оценка и планирование: story points и velocity
- Масштабирование Agile: SAFe и LeSS
- Методология для AI: Use Case Pattern и другие способы
- Тест фазы в кабинете
-
Фаза 30. Kotlin для Java-разработчика · 39 вопросов
Второй язык 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 на практике что пощупать
- Тест фазы в кабинете
-
Фаза 31. Продукт-инженер: роль и практика · 81 вопросов
Роль целиком: начать с проблемы пользователя, метрики результата и владение результатом — плюс практика работы с ИИ-агентом, модель домена и путь от среза к контракту.
- Кто такой продукт-инженер: роль и цикл работы обязательно
- Проблема, а не решение обязательно
- Контакт с пользователем
- Бизнес-метрика, а не метрика выпуска обязательно
- Приоритизация: наименьший ценный срез обязательно
- Владение от идеи до пользователя обязательно
- Релиз и петля метрик в одиночку что пощупать
- AI как рычаг продукт-инженера обязательно
- Как настроить агента под свой проект: правила, память, инструменты обязательно
- Какой язык программирования выбрать для AI-кодинга
- Ежедневная работа с агентом: разобраться, сделать, починить обязательно
- Как ревьюить код, который написал агент обязательно
- Исполняемые правила агента vs SonarQube vs ESLint vs ревью тимлидом
- Язык домена: понятия, словарь и граф знаний
- От модели понятий к контракту, который исполняет агент
- Тест фазы в кабинете
-
Фаза 32. Use Case Pattern и сквозной кейс · 66 вопросов
Кульминация: методология Use Case Pattern — проектирование сервиса от бизнес-задачи, спецификация Use Case, уровни зрелости 0–3 — и сквозной кейс маркетплейса, собирающий весь пройденный путь воедино.
- Use Case Pattern
- Use Case Pattern: как применять пошагово обязательно
- Use Case спецификация: формат обязательно
- Уровень зрелости 0: снимок существующего кода
- Уровень зрелости 1: Слоёный обязательно
- Уровень зрелости 2: UseCase + Handler обязательно что пощупать
- Уровень зрелости 3: DDD + Hexagonal обязательно
- Кейс: маркетплейс — как я понял задачу
- Как разбить систему на сервисы: карта маркетплейса обязательно
- AI пишет код. Зачем тогда методология?
- AI-native компания: маленькая команда + агенты, и почему ей всё равно нужна методология
- Executable standard: исполняемые правила как ESLint для архитектуры
- Тест фазы в кабинете
Программа обучения v14.1.180
Backend · Java
Этот сайт устроен как программа подготовки. Каждая статья — кусочек знаний, необходимый, чтобы работать в команде, использующей Use Case Pattern. Программа ведёт от фундамента Spring через данные, принципы и паттерны, поиск и хранилища, инфраструктуру и качество к архитектурному мышлению — системному дизайну и DDD — и к кульминации в Use Case Pattern, а затем к сквозному кейсу маркетплейса.
Всего в программе 2527 вопросов для самопроверки.