Улучшаемые навыки
                
                                            
                            Spring
                        
                                            
                            Spring Boot
                        
                                            
                            Spring Security
                        
                                            
                            Микросервисы
                        
                                            
                            REST API
                        
                                            
                            Web Services
                        
                                            
                            Hibernate
                        
                                            
                            JPA
                        
                                            
                            Thymeleaf
                        
                                            
                            Maven
                        
                                            
                            Gradle
                        
                                            
                            Kubernetes
                        
                                            
                            Docker
                        
                                            
                            CI/CD
                        
                                            
                            JUnit
                        
                                            
                            JUnit
                        
                                            
                            Mockito
                        
                                            
                            Асинхронное программирование
                        
                                            
                            WebSocket
                        
                                            
                            GraphQL
                        
                                            
                            Оптимизация производительности
                        
                                            
                            Безопасность приложений
                        
                                            
                            DevOps
                        
                                            
                            Cloud Native
                        
                                            
                            AWS
                        
                                            
                            Google Cloud
                        
                                     
                                        Инструменты
                
                                            
                             Docker
                            Docker
                         
                                            
                             IntelliJ IDEA
                            IntelliJ IDEA
                         
                                            
                             Apache Maven
                            Apache Maven
                         
                                     
                                        Чему вы научитесь
                
                                                                    
                            01
                            Оптимизировать производительность приложений с использованием Spring Framework.
                        
                                                                    
                            02
                            Настроить и использовать Spring Boot для быстрой разработки и деплоя приложений.
                        
                                                                    
                            03
                            Реализовывать безопасность приложений с помощью Spring Security.
                        
                                                                    
                            04
                            Интегрировать RESTful API и Web Services в свои проекты.
                        
                                                                    
                            05
                            Проводить юнит-тестирование и интеграционное тестирование с JUnit и Mockito. 	
                        
                                                                    
                            06
                            Разрабатывать асинхронные приложения с использованием Spring WebFlux.
                        
                                                                    
                            07
                            Использовать WebSocket для реализации реального времени взаимодействия.
                        
                                                                    
                            08
                            Работать с GraphQL для создания гибких API.
                        
                                                                    
                            09
                            Использовать Spring Data для работы с различными типами баз данных.
                        
                                                                    
                            10
                            Реализовывать сложные бизнес-процессы с помощью Spring Integration.
                        
                                                                    
                            11
                            Обрабатывать большие объемы данных с помощью Spring Batch.
                        
                                     
                                        Программа курса
                
                                                                                                
                                
                                    01
                                    Spring Data REST - расширенные темы (5 ч)
                                    
                                 
                                
                                    1. Spring REST (3 ч) 
 Введение. Обзор Spring REST (1 ч)
Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since) (30 мин)
REST события (30 мин)
Модель зрелости REST-сервисов (30 мин)
Spring HATEOAS (30 мин)
2. API RestTemplate и WebClient для написания клиентов REST-сервисов (1 ч)
3. Документирование REST-сервисов с использованием Swagger и SpringFox (1 ч)
 
Домашняя работа: ~2 ч                                
                             
                                                                                                                        
                                
                                    02
                                    Object mapping и валидация (5 ч)
                                    
                                 
                                
                                    
 Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO (1 ч)
 Проекции и ограничения в Spring Data REST (1 ч)
 Использование MapStruct для автоматического мэппинга в DTO (1 ч)
 Пользовательские сериализаторы и десериализаторы (1 ч)
 Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций (1 ч)
Домашняя работа: ~2 ч                                
                             
                                                                                                                        
                                
                                
                                    
 Анотация @Transactional (30 мин)
 Уровни изоляции транзакций (1 ч)
 Распространение транзакций (2 ч)
 Обработка исключений в транзакциях (30 мин)
 Проблема вызова транзакции из того же бина (30 мин)
 Оптимистические блокировки (30 мин)
 Подключение нескольких БД к проекту (30 мин)
Распределенные транзакции и паттерн SAGA (30 мин)                                
                             
                                                                                                                        
                                
                                    04
                                    Безопасность для REST-сервисов (JWT авторизация и управление ролями) (6 ч)
                                    
                                 
                                
                                    
 Подходы к использованию безопасности в Spring (1 ч)
 Разработка сервера UAA с использованием OAuth2 (1 ч)
 JWT токены (2 ч)
 Использование Spring Security для доступа на основе ролей, демонстрация примеров (2 ч)
Домашняя работа: ~2 ч                                
                             
                                                                                                                        
                                
                                    05
                                    Реактивное программирование на Spring WebFlux (8 ч)
                                    
                                 
                                
                                    
 Обзор реактивного подхода (30 мин)
 Спецификация реактивных потоков в Java 9 (30 мин)
 Классы Mono и Flux (30 мин)
 Операторы (2 ч)
 Реактивные драйверы БД R2DBC (30 мин)
 Реактивный Spring Data (30 мин)
 Построение REST API с использованием WebFlux (1 ч)
 WebClient для получения реактивных данных (30 мин)
 Протокол RSocket (1 ч)
 Реактивный доступ к RabbitMQ (30 мин)
 Реактивные паттерны и бенчмарки (30 мин)
  Домашняя работа: ~2 ч                                
                             
                                                                                                                        
                                
                                    06
                                    Тестирование сервисов Spring (4 ч)
                                    
                                 
                                
                                    
 Юнит-тесты с применением Mockito (30 мин)
 Интеграционное тестирование (1 ч)
 Аннотации тестирования Spring (30 мин)
 Фреймворк TestContext (30 мин)
 Серверные тесты REST (30 мин)
 Тестирование REST сервисов в IntelliJ IDEA (30 мин)
 Тестирование WebFlux (30 мин)
 Домашняя работа: ~2 ч                                
                             
                                                                                                                        
                                
                                    07
                                    Spring Планировщики (30 мин)
                                    
                                 
                                
                                    
 Аннотация @Scheduled 
 fixedRate, fixedDelay, initialDelay
 использование выражений CRON 
  Домашняя работа: ~30 мин                                
                             
                                                                                                                        
                                
                                    08
                                    Spring кэширование (2 ч)
                                    
                                 
                                
                                    
 Использование кеширования 
 Использование и параметры настройки EhCache
 @Cacheable
 @CacheEvict, @CachePut
 @CacheConfig
 Conditional кэширование
 Java-based кэширование
 Кэширование в Spring Data
 Кэширование в Spring на основе EhCache
 Конфигурирование EhCache
  Домашняя работа: ~1 ч                                
                             
                                                                                                                        
                                
                                    09
                                    Spring Boot Actuator (1 ч)
                                    
                                 
                                
                                    
 Actuator endpoints
 Метрики в Spring Boot
 Мониторинг и управление через HTTP
 Инструмент мониторинга Spring Boot Admin                                
                             
                                                                                                                        
                                
                                    10
                                    Развертывание приложения Spring (2,5 ч)
                                    
                                 
                                
                                    
 Развертывание в Docker (30 мин)
 Развертывание в nginx as a front serverв качестве фронт-сервера (включая балансировку нагрузки) (30 мин)
 HTTP кэширование при помощи NGINX (30 мин)
 Развертывание приложения Spring с помощью nginx - контейнерная установка, docker-compose (30 мин)
Домашняя работа: ~30 мин                                
                             
                                                             
                        
                                        Для кого
                
                                            
                             Разработчик
                            Разработчик
                         
                                     
                                        Предварительная подготовка
                Уверенное владение Java, знание Spring.
                                        Расписание курсов
                
                
                                                        Курс проводят
                
                    
                        
                        
                            Козлов Павел
                                                            
                                    Специалист в области разработки ПО
                                
                                                                                 
                     
                    
                                                                            О тренере
                            
                                Павел в IT отрасли с 2005 года. В настоящее время занимает позицию Главного архитектора в компании IBS. 
За время свей профессиональной деятельности принимал участие в многочисленных проектах для ведущих российских и зарубежных компаний, таких как Boeing, Почта России, DHL, MVideo. 
Главный интерес Павла - разработка масштабируемых приложений на Java, а также предоставление технических решений для повышения производительности и надежности приложений.