План курса
..
1. Git
- Введение в системы контроля версий
- Основные команды Git (clone, commit, push, pull, branch, merge)
- Работа с ветками и стратегии ветвления
- Решение конфликтов
- Лучшие практики работы с Git
2. SOLID
- Введение в принципы SOLID
- Отдельное обсуждение каждого принципа:
- Single Responsibility
- Open/Closed
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
- Примеры нарушения и соблюдения принципов SOLID
- Практические задачи на применение принципов SOLID
3. Алгоритмы и структуры данных
- Введение в алгоритмическую сложность
- Основные структуры данных (массивы, списки, стеки, очереди, хэш-таблицы, деревья, графы)
- Основные алгоритмы (сортировка, поиск, обход графов)
- Алгоритмические задачи и их решение
4. Collections
- Обзор коллекций в Java
- Отличия между основными интерфейсами и классами (List, Set, Map)
- Работа с коллекциями: итерация, фильтрация, преобразование
- Best practices использования коллекций
5. Exceptions
- Виды исключений в Java
- Обработка исключений: try, catch, finally
- Создание собственных исключений
- Лучшие практики работы с исключениями
6. JUnit
- Введение в тестирование
- Основы JUnit: аннотации, ассерты
- Написание unit-тестов для классов и методов
- Использование моков и заглушек
7. Mockito
- Введение в Mockito
- Мокирование объектов и методов
- Верификация вызовов методов
- Расширенные возможности Mockito
8. CI/CD
- Основы непрерывной интеграции и непрерывной доставки
- Инструменты CI/CD (Jenkins, GitLab CI, GitHub Actions)
- Пайплайны CI/CD: составление и настройка
- Автоматизация тестирования и деплоймента
- Введение в сериализацию и десериализацию
- Форматы данных: JSON, XML, YAML
- Библиотеки для работы с форматами (Jackson, Gson)
- Примеры сериализации/десериализации в Java
10. Lambdas
- Введение в лямбда-выражения в Java
- Синтаксис и основные принципы
- Функциональные интерфейсы
- Применение лямбда-выражений на практике
11. Stream API
- Основы Stream API в Java
- Создание потоков данных
- Операции над потоками: фильтрация, преобразование, сортировка, агрегация
- Примеры использования Stream API
12. Optional
- Введение в класс Optional
- Использование Optional для предотвращения NullPointerException
- Методы класса Optional
- Практические примеры использования
13. HTTP/HTTPS
- Основы протоколов HTTP и HTTPS
- Методы запросов и статусы ответов
- Работа с заголовками и куками
- Основы безопасности веб-приложений
14. ReST
- Основы RESTful архитектуры
- Создание RESTful сервисов в Java
- Тестирование RESTful API
- Лучшие практики и стандарты
15. SOAP
- Введение в протокол SOAP
- Отличия SOAP от REST
- Создание и потребление SOAP-сервисов
- Валидация и безопасность SOAP-сервисов
16. Relational databases
- Основы реляционных баз данных
- Моделирование данных и нормализация
- SQL: основы языка запросов
- Работа с транзакциями и индексами
17. JDBC
- Введение в JDBC
- Создание подключений к базе данных
- Выполнение SQL-запросов через JDBC
- Обработка результатов запросов
18. JPA
- Основы Java Persistence API
- Сущности и отношения между ними
- JPQL и Criteria API
- Кэширование и оптимизация запросов
19. Hibernate
- Введение в Hibernate
- Конфигурация и сессии в Hibernate
- Работа с объектами и транзакциями
- Наследование и сложные отношения
20. Spring Boot
- Основы Spring Boot
- Создание и конфигурация веб-приложений
- Работа с базами данных через Spring Data
- Тестирование приложений на Spring Boot
21. Spring Data
- Основы Spring Data
- Репозитории Spring Data и их методы
- Работа с различными базами данных
- Пагинация и сортировка данных
22. Spring Security
- Основы безопасности веб-приложений
- Конфигурация Spring Security
- Аутентификация и авторизация
- Работа с ролями и правами доступа