Блок 1: Java: классы и объектная модельОснова объектного программирования и понимание того, как устроен backend-код в реальных Java-проектах
Вы изучите:- Создание собственных типов и классов
- Класс Object и сравнение объектов
- Состояние и жизненный цикл объектов
- Статические поля и методы
- Lombok и data-классы
Результат: понимаете объектную модель Java и уверенно читаете production-код
Блок 2: Java: списки и коллекцииРабота с упорядоченными наборами данных, которые используются в логике приложений и тестах.
Вы изучите:- ArrayList и LinkedList
- Обход и обработку списков
- Списки в определении типов
- Множественные операции над списками
- Сортировку списков
Результат: уверенно обрабатываете наборы данных и состояния системы
Блок 3: Java: Maps и структуры ключ–значениеХранение и обработка конфигураций, состояний и бизнес-данных
Вы изучите:- HashMap
- Обход и обработку Map
- Практическое использование Map в коде
Результат: корректно проверяете сложные структуры данных в тестах
Блок 4: Java: функции и функциональный стильСовременный стиль Java без лишней шаблонности
Вы изучите:- Лямбда-функции
- Функциональные интерфейсы
- Методы compute в Map
- Ссылки на методы (method references)
- Функции высшего порядка
Результат: пишете компактный, читаемый и современный Java-код
Блок 5: Java: дженерикиВы изучите:- Принцип работы дженериков
- Встроенные и пользовательские дженерики
- Параметрический полиморфизм
- Обобщённые и статические обобщённые методы
- Wildcard для ограничения типов
Результат: понимаете обобщённый код библиотек и API, избегаете типовых ошибок
Блок 6: Java: Stream APIДекларативная и эффективная обработка данных
Вы изучите:- map, filter, reduce
- Цепочки вызовов
- Коллекторы (Collectors)
- flatMap и выравнивание данных
- Поиск элементов и лучшие практики работы со стримами
Результат: эффективно обрабатываете коллекции и тестовые данные
Блок 7: Java: автоматическое тестированиеМодульные тесты и лучшие практики качества кода
Вы изучите:- Причины и цели тестирования
- Утверждения и матчеры
- AssertJ и JUnit
- Подготовку тестовых данных и фикстуры
- Хорошие и плохие практики тестирования
- Покрытие кода и TDD
Результат: пишете надёжные модульные автотесты на Java
Блок 8: Непрерывная интеграция (CI)Автоматический запуск тестов в рабочем процессе команды
Вы изучите:- Основы CI
- GitHub Actions
- Экшены и задания
- Запуск тестов в пайплайне
Результат: ваши автотесты запускаются автоматически при каждом изменении кода
Проект «Вычислитель отличий»Это популярная задача, для решения которой существует множество онлайн-сервисов, например, jsondiff. Подобный механизм, например, используется при выводе тестов или при автоматическом отслеживании изменений в конфигурационных файлах