Скачать 

Java backend, как в BigTech. Тариф sam_reshu [Павел Сорокин]

  • Дата начала
Цена: 495 РУБ
Список участников складчины:
  • 1. MaksimLiveFree
Показать больше
Robot
Robot
Складчик
  • #1

Java backend, как в BigTech. Тариф sam_reshu [Павел Сорокин]

Ссылка на картинку
18 недель беспощадного кодинга в формате спринтов

Каждый спринт — это отдельная практическая тема, которую вы проходите, закрепляете на домашнем задании и применяете в реальном выпускном проекте EventManager

Для кого курс
  1. Совсем новичок
    Сэкономишь год самостоятельных несистемных попыток что-то понять и сразу получишь харды уровня middle
  2. Есть база, но ещё не работаю
    Закроешь пробелы и изучишь всё, что нужно реальной работе, чтобы наконец-то вкатиться
  3. Джун
    Быстро прокачаешься по хардам, чтобы заперформить в проекте и апнуть грейд ИЛИ найти новую работу на позицию миддла
  4. Миддл на устаревшем стеке
    Подтянешь все харды до актуального рынку уровня и погрузишься в архитектуру с микросервисами, чтобы быстрее вырасти по грейду/найти новую работу
Научим всему что бигтехи требуют в вакансиях:
  • Строить микросервисы, которые не падают под нагрузкой и не умирают от продовых кейсов
  • Делать авторизацию с нуля: JWT, роли, фильтры, обработка прав, единый формат ошибок
  • Писать бизнес логику и фичи: обработка событий, статусы, задачи по расписанию, отправка нотификаций, история изменений, агрегация событий
  • Подключать Kafka и строить асинхронные пайплайны с гарантированной доставкой
  • Делать кэширование и ускорять сервисы до миллисекундных ответов
  • Разворачивать инфраструктуру: Docker, Redis, Postgres, Liquibase миграции
Все знания разложены по полочкам от «А» до «Я»
  • Программа идёт от простого к сложному, каждый спринт логично вытекает из предыдущего
  • Сначала фундамент: Spring Core, потом настройки: MVC, Hibernate, в конце — продакшен-архитектура
  • Разбираем именно до того уровня глубины, до которого это необходимо для работы и собесов
  • К каждому уроку конспекты + доп. материалы для углубления
  • Живые воркшопы раз в 2 недели — разбираем домашки, отвечаем на вопросы, общаемся. Есть записи, если пропустил
Программа:

Спринт 1. Spring Core — фундамент современного Java backend’а


Коротко: разберёшься, как работает Spring «под капотом»: контейнер, DI, жизненный цикл бинов, конфигурация и базовый AOP. Перестаёшь «разбрасывать new по проекту», начинаешь мыслить как backend-разработчик.

Что внутри:
  • Зачем вообще нужен Spring: чем отличается от «голой» Java и почему на нём пишут почти все современные backend’ы.
  • IoC-контейнер и ApplicationContext: как Spring создаёт и связывает объекты.
  • Dependency Injection:
    • внедрение зависимостей через конструктор / поле / сеттер;
    • @Component, @service, @Repository, @Configuration, @Bean;
    • @Autowired, @Qualifier, @Primary.
  • Области видимости бинов: singleton, prototype, web-scope и где они реально нужны.
  • Жизненный цикл бина: создание, инициализация, уничтожение (@PostConstruct, @PreDestroy).
  • Работа с конфигурацией: application.properties, профили (@profile), вынесение настройки из кода.
  • Введение в AOP:
    • что такое аспектно-ориентированное программирование;
    • логирование, метрики, технический cross-cutting без засорения бизнес-логики.
  • Как не превращать проект в “спагетти”:
    • базовые принципы SOLID;
    • разделение ответственности между слоями.
Практика:
  • Ты поднимешь первый учебный проект на Spring Core:
    • небольшая доменная область — учебный «банкинг»;
    • все сервисы и репозитории собираются через DI, без ручного new;
    • конфигурация вынесена в properties и профили;
    • написан хотя бы один AOP-аспект: логирование или метрики.
Результат:
  • готовый репозиторий с живым Spring-приложением;
  • понимание, что делает Spring-контейнер и зачем нужны все эти аннотации.
Спринт 2. Hibernate Core — работа с БД как у взрослых

Коротко: учишься работать с реальной базой данных через JPA/Hibernate: сущности, связи, CRUD, жизненный цикл объектов, ленивые загрузки и первые грабли.

Что внутри:
  • ORM, JPA и Hibernate:
    • зачем маппить объекты на таблицы;
    • чем это лучше ручного JDBC.
  • Поднимаем PostgreSQL в Docker:
    • базовая конфигурация;
    • создание схемы и пользователя.
  • JPA-сущности:
    • @Entity, @Table, @Id, @Column;
    • типы полей, генерация идентификаторов.
  • CRUD-операции через Hibernate:
    • сохранение, поиск, обновление, удаление;
    • разбор SQL, который реально уходит в БД.
  • Жизненный цикл сущностей:
    • Transient → Persistent → Detached → Removed;
    • что делает Session / EntityManager.
  • Связи:
    • @OneToOne, @OneToMany, @ManyToOne, @ManyToMany;
    • каскады, orphanRemoval, как не удалить лишнего.
  • Ленивая и жадная загрузка:
    • FetchType.LAZY vs EAGER;
    • классическая N+1-проблема на примерах.
Практика:
  • Учебный проект «Каталог / курсы / студенты»:
    • несколько таблиц в PostgreSQL;
    • сущности с разными типами связей (1:1, 1:N, N:M);
    • CRUD-операции с разбором SQL, который генерит Hibernate.
Результат
  • ты уверенно создаёшь сущности и связи;
  • понимаешь, что происходит с объектом в разных состояниях;
  • не боишься смотреть в реальные SQL-запросы.
Спринт 3. Spring Boot Web — веб и HTTP на практике

Коротко: выходишь в веб: поднимаешь REST API, работаешь с HTTP, DTO, валидацией и обработкой ошибок. Практика — Payments API: пользователи, их заказы и платежи, плюс тесты через MockMvc.

Что внутри:
  • Введение в Spring Boot:
    • стартеры, автоконфигурация, встроенный Tomcat;
    • структура боевого backend-приложения.
  • HTTP и REST:
    • методы GET/POST/PUT/DELETE, статус-коды, заголовки;
    • хорошие и плохие REST-эндпоинты.
  • Контроллеры:
    @RestController, @RequestMapping, @GetMapping, @PostMapping и др.;
    @PathVariable, @RequestParam, @RequestBody.
  • DTO и валидация:
    разделение сущностей и DTO;
    Bean Validation: @valid, @NotBlank, @email, @min и т. д.
  • Централизованная обработка ошибок:
    @ControllerAdvice, @ExceptionHandler;
    единый формат ошибок для клиента.
  • Тестирование веб-слоя:
    MockMvc;
    проверка кодов ответа, тела, ошибок.
Практика:
  • Ты реализуешь учебный Payments API:
    • пользователи / клиенты и их заказы;
    • создание заказов, получение списка заказов пользователя, просмотр деталей;
    • базовая модель «платежа» — например, статус PAYMENT_PENDING / PAID.
  • Что именно сделаешь руками:
    • набор REST-эндпоинтов для пользователей и их заказов;
    • DTO с валидацией входящих данных;
    • единый формат API-ошибок;
    • тесты контроллеров через MockMvc: успешные кейсы + ошибки.
Результат
  • у тебя есть законченный REST-сервис Payments API;
  • ты умеешь писать и тестировать нормальные HTTP-сервисы, а не «крученные методы».
Спринт 4. Spring Data JPA + EventManager | Iteration 1

Коротко: переходишь от маленьких учебных примеров к выпускному проекту EventManager. Подключаешь Spring Data JPA, строишь нормальные репозитории и делаешь первую итерацию проекта.

Что внутри:
  • Архитектура слоёв:
    Controller → Service → Repository;
    почему «всё в контроллере» — зло.
  • Spring Data JPA:
    • JpaRepository, готовые CRUD-методы;
    • query-методы: поиск по полям без явного SQL.
  • Сложные запросы:
    • @Query — JPQL и нативный SQL;
    • @Modifying для обновлений.
  • Транзакции:
    • @Transactional, propagation, read-only;
    • где нужны транзакции, а где нет.
  • Оптимизация запросов:
    • N+1 снова, но уже в мире Spring Data;
    • JOIN FETCH, EntityGraph.
  • Интеграционные тесты репозиториев:
    • поднятие PostgreSQL через Testcontainers;
    • тесты, которые реально ходят в БД.
Практика:
  • Старт выпускного проекта EventManager: сервис, где пользователи создают, редактируют и просматривают мероприятия.
  • В Iteration 1 ты:
    • проектируешь базовые сущности: User, Event, Location и необходимые вспомогательные таблицы;
    • создаёшь репозитории на Spring Data JPA;
    • реализуешь базовые CRUD-операции для ключевых сущностей;
    • поднимаешь REST-эндпоинты для создания, редактирования, удаления и получения событий и локаций.
Результат:
  • у тебя есть EventManager Iteration 1 — живой сервис событий с БД и REST-API;
  • это первый кирпич выпускного проекта, который пойдёт в портфолио.
Спринт 5. Spring Security + EventManager — Iteration 2

Коротко: учишься защищать backend: логин, роли, права доступа, JWT. EventManager становится не «открытой песочницей», а реальным защищённым сервисом.

Что внутри:
  • Аутентификация и авторизация:
    • в чём разница;
    • какие подходы используют в реальных проектах.
  • Основы Spring Security:
    • конфигурация SecurityFilterChain;
    • цепочка фильтров и жизненный цикл запроса.
  • Ограничение доступа:
    • hasRole, hasAuthority, @PreAuthorize;
    • защита эндпоинтов по ролям.
  • JWT:
    • структура токена: header, payload, signature;
    • генерация и валидация токена;
    • хранение токена на клиенте, типичные ошибки.
  • Обработка ошибок безопасности:
    • 401 vs 403;
    • AuthenticationEntryPoint, AccessDeniedHandler.
  • Тестирование защищённых эндпоинтов:
    • @WithMockUser;
    • тесты с реальными JWT.
Практика:
  • В Iteration 2 ты:
    • добавляешь регистрацию и логин пользователей;
    • реализуешь выдачу JWT-токенов;
    • ограничиваешь доступ к CRUD-операциям EventManager.
Результат:

— EventManager Iteration 2 — полноценный защищённый REST-сервис;
— ты умеешь интегрировать Spring Security и JWT в реальный проект.


Спринт 6. Бизнес-логика backend-систем + EventManager — Iteration 3

Коротко: спринт целиком посвящён бизнес-логике и умению превращать требования в код. Здесь ты делаешь крупную итерацию выпускного проекта: сложные правила, статусы, сценарии, проверки, транзакции. Это тот слой, который отличает «настоящего backend-разработчика» от человека, который умеет навесить аннотации.

Что внутри:
  • Проектирование доменной модели и сервисов:
    • выделение агрегатов и границ ответственности;
    • проектирование методов сервисов под конкретные сценарии.
  • Типичные бизнес-правила в Event-системах:
    • нельзя создать событие в прошлом;
    • нельзя опубликовать событие без обязательных полей;
    • ограничение мест/capacity: проверка, что не переполнено;
    • дедлайны регистрации и отмены;
    • статусы событий: DRAFT / PUBLISHED / CANCELED / COMPLETED.
  • Бизнес-ошибки и исключения:
    • свои exception’ы для доменных ошибок;
    • маппинг доменных ошибок в HTTP-ответы 4xx.
  • Транзакционные границы:
    • где нужна транзакция, а где нет;
    • как обеспечить целостность при сложных сценариях, например, несколько записей в таблицы.
Практика:
  • В Iteration 3 ты превращаешь EventManager из «CRUD-формочек» в настоящую бизнес-систему:
    • добавляешь статусы событий и переходы между ними;
    • реализуешь проверки;
    • описываешь и реализуешь сценарии;
    • выделяешь отдельный слой доменных сервисов, работающих над сущностями.
  • Пишешь набор тестов:
    • unit-тесты бизнес-логики;
    • интеграционные тесты ключевых сценариев.
Результат:
  • EventManager Iteration 3 — большая итерация, где ты прокачиваешься именно как разработчик бизнес-логики, а не просто «разворачивающий фреймворки».
Спринт 7. Архитектура и микросервисы + EventManager — Iteration 4

Коротко: поднимаешься на уровень архитектуры: монолит vs микросервисы, Kafka, паттерны взаимодействия сервисов. Делаешь Iteration 4 EventManager — вынос нотификаций в отдельный сервис и переход к event-driven-архитектуре.

Что внутри:

  • Архитектура монолита и микросервисов:
    • плюсы и минусы каждого подхода;
    • когда вообще имеет смысл делить систему.
  • Типовые уровни архитектуры:
    • системная архитектура: какие сервисы и как взаимодействуют;
    • архитектура приложения: слои, модули;
    • инфраструктурная часть: БД, брокеры, балансировщики.
  • Kafka и event-driven:
    • producer / consumer, topic, partition, offset;
    • семантика «at least once», «at most once», «exactly once»;
    • долговечность и репликация.
  • Паттерны микросервисов:
    • API Gateway, Circuit Breaker, Saga, Outbox — на уровне идей;
    • взаимодействие sync HTTP и async Kafka;
    • отказоустойчивость и масштабирование;
    • базовые подходы к резервированию и мониторингу.
Практика:
  • В Iteration 4 ты:
    • выделяешь сервис уведомлений, например NotificationService, в отдельный микросервис;
    • настраиваешь Kafka-топики для событий: создание/изменение/отмена события, регистрация пользователя;
    • из EventManager публикуешь доменные события в Kafka;
    • в NotificationService подписываешься на эти события и подготавливаешь уведомления, которые пользователи могут получить через API.
Результат:
  • EventManager Iteration 4 — уже не просто монолит, а система из нескольких сервисов, общающихся через Kafka;
  • ты понимаешь, как выглядят event-driven-системы и какие проблемы они решают.
Спринт 8. Redis и кэширование + EventManager — Iteration 5

Коротко: подключаешь Redis и учишься ускорять систему через кэш и счётчики. Сделаете Iteration 5: кэш локаций и быстрые счётчики уведомлений в EventManager.

Что внутри:
  • Зачем вообще кэш:
    • где помогает — быстрый доступ к часто читаемым данным;
    • где убивает консистентность и приносит боль.
  • Базовые паттерны кэширования:
    • cache-aside — самый популярный;
    • read/write-through, write-behind — на уровне идей.
  • Redis:
    • модель «ключ-значение»;
    • строки и простые структуры данных;
    • базовые команды и TTL.
  • Поднимаем Redis в Docker:
    • базовая конфигурация;
    • проверка через CLI-клиент.
  • Интеграция Redis со Spring:
    • RedisTemplate, работа с ключами и значениями;
    • кэширующие аннотации: @Cacheable, @CacheEvict, @CachePut.
Практика:
  • В Iteration 5 ты:
    • внедряешь Redis в архитектуру EventManager;
    • реализуешь cache-aside для «горячих» данных, например;
    • добавляешь быстрый счётчик уведомлений или непрочитанных событий для пользователя в Redis;
    • настраиваешь инвалидацию кэша при изменениях, чтобы не было «протухших» данных.
Результат:
  • EventManager Iteration 5 — быстрый и отзывчивый, с кэшем и счётчиками в Redis;
  • ты понимаешь, где и как применять Redis в backend-системах.
Спринт 9. CI/CD для backend-разработчика

Коротко: разбираешься, как код доезжает до пользователей: сборка, тесты, Docker, пайплайны, окружения. После этого спринта ты не теряешься, когда видишь gitlab-ci.yml в проекте или kubernetes в вакансии.

Что внутри:
  • Что такое CI и CD:
    • continuous integration, continuous delivery/deployment;
    • как это экономит время и деньги команде.
  • Жизненный цикл задачи:
    commit → build → test → package → docker → deploy → monitor.
  • Пайплайны:
    • stages: build/test/deploy;
    • jobs, артефакты, variables.
  • Docker в контексте CI/CD:
    • сборка образа приложения;
    • Docker registry;
    • версии образов, tags и откаты.
  • Инструменты:
    • GitLab CI, GitHub Actions, Jenkins — кто чем отличается и где встречается;
    • базовое представление о деплое на сервер/в кластер.
  • Окружения:
    • Dev / Stage / Prod;
    • переменные окружения, секреты, конфиги.
Практика:
  • Собираешь минимальный рабочий CI/CD-процесс для Java-сервиса:
    • конфиг для GitLab CI или GitHub Actions;
    • сборка и запуск тестов;
    • сборка Docker-образа приложения;
    • деплой на выбранную целевую среду: локальный сервер / Docker-хост.
Результат:
  • ты понимаешь, как описывается и живёт пайплайн;
  • можешь уверенно общаться с тимлидом и DevOps по поводу деплоя и окружений.
Бонусный модуль №1. Прохождение собеседований: резюме, стратегия, ответы

Коротко: упаковываешь весь пройденный путь в резюме, портфолио и стратегию поиска работы, чтобы EventManager и остальные практики работали на твой оффер.

Что внутри:
  • Стратегия поиска работы:
    • как анализировать рынок и выбирать вакансии;
    • таблица откликов и работа с воронкой.
  • Резюме разработчика:
    • структура и оформление;
    • как грамотно описать учебные проекты и EventManager;
    • типичные ошибки, из-за которых резюме не читают.
  • Самопрезентация:
    • как рассказывать о себе и своём опыте;
    • ответы на поведенческие вопросы по модели STAR.
  • Подготовка к тех-собеседованиям:
    • темы по Java/Spring/SQL/архитектуре, которые ждут на интервью;
    • как использовать эти темы в твоих проектах, в том числе в EventManager.
  • Как говорить о процессах:
    • Agile, Scrum, роли в команде;
    • CI/CD, код-ревью, работа с задачами.
Практика:
  • Готовое резюме в PDF с описанием:
    • твоих навыков;
    • выпускного проекта EventManager с итерациями;
    • дополнительных проектов, типа Payments API.
  • Таблица откликов и план поиска работы.
  • Набор заготовок ответов на типовые вопросы: тех + поведенческие.
Бонусный модуль №2. Паттерны проектирования и чистый код

Коротко: закрываешь важный блок по паттернам и чистому коду: то, что регулярно спрашивают на собеседованиях и что действительно помогает писать поддерживаемые системы.

Что внутри:
  • Принципы SOLID:
    • на конкретных примерах «до/после»;
    • как они применяются в коде Spring-приложений.
  • Ключевые паттерны:
    • Builder — как избегать «конструкторов на 10 аргументов»;
    • Strategy — как гибко менять поведение без if-else-адов;
    • Proxy — где его видишь в Spring: AOP, транзакции, безопасность;
    • Facade — как прятать сложность подсистем.
  • Связка паттернов с EventManager:
    • какие решения в проекте можно описать через паттерны;
    • как об этом говорить на собеседовании.
Практика:
  • Небольшой учебный проект, например «система опросов / квизов», где ты:
    • реализуешь 3–4 паттерна в живом коде;
    • фиксируешь, как они помогают держать код чистым.
  • Конспект по SOLID и паттернам с примерами и формулировками «как для собеса».
Преподаватель и автор курса — Павел Сорокин
  • ВТБ
    Senior Java Dev
    работал в инвестиционном блоке: высоконагруженная обработка десятков тысяч поручений на переводы, сделки, бумаги, интеграции с внешними сервисами и календарями выплат по облигациям
  • Yoomoney
    Java Dev
    работал над Core карточного эквайринга: интеграции с платёжными системами и провайдерами, интернет-платежи, высоконагруженная обработка транзакций
  • NDA
    Backend-разработчик
    участвовал в разработке backend-систем крупной телеком-компании: системы обработки звонков, биллинга, конфигурации сети и SMS-центра
Тариф sam_reshu
  • Доступ ко всем материалам курса (видео + конспекты)
Показать больше
 
Зарегистрируйтесь , чтобы посмотреть контент.
bigtech java павел сорокин стратегия
Похожие складчины

Войдите или зарегистрируйтесь!

Учетная запись позволит вам участвовать в складчинах и оставлять комментарии

Регистрация

Создайте аккаунт. Это просто!

Вход

Вы уже зарегистрированы? Войдите.

Сверху