23 мая в 20:00

День открытых дверей
Всё о курсе «Разработчик на Spring Framework»

День открытых дверей онлайн

День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Преподаватель
Юрий Дворжецкий
Напомнить о мероприятии в календаре

О курсе

Разработчик на Spring Framework
48 000 ₽
5 месяцев
Начало 28 мая
  • Умение «выживать» в проектах, где есть Spring;
  • Знание современных возможностей Spring;
  • Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке;
  • Умение быстро проходить путь от идеи до production-grade;
  • Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5).
Уникальная авторская программа
Программа курса
Модуль 1
Введение
Модуль 2
Работа с базами данных
Модуль 3
Разработка Web-приложений
Модуль 4
"Около" и "Дзен"
Модуль 5
Проектная работа
Введение
В данном модуле будут рассматриваться понятия и функциональности, на которых базируются все проекты Spring: Inversion of Control (Spring Context), аспектное программирование (Spring AOP), Spring Expression Language (SpEL).

Слушатели смогут правильно и эффективно конфигурировать Spring-приложения различными средствами и способами, а также будет рассмотрена "чёрная магия" Spring Boot - автоконфигурации.
Введение в Spring Framework
ориентироваться в проектах Spring для дальнейшего изучения,
применять принцип IoC при написании классов и тестов,
создавать контекст Spring,
определять Spring Beans в контексте,
организовывать правильный DI
28 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Программа по проведению тестирования студентов. В ресурсах хранятся вопросы и различные ответы к ним в виде CSV файла (5 вопрсов).
Программа должна спросить у пользователя фамилию и имя, спросить 5 вопросов из CSV-файла и вывести результат тестирования.
Вопросы могут быть с выбором из нескольких вариантов или со свободным ответом - на Ваше желание и усмотрение.

Все сервисы в программе должны решать строго определённую задачу.
Контекст описывается XML-файлом.
Все зависимости должны быть настроены в IoC контейнере.
Имя ресурса с вопросами (CSV-файла) необходимо захардкодить в XML-файле с контекстом.
CSV с вопросами читается именно как ресурс, а не как файл.

*Опционально: сервисы, по возможности, покрыть Unit-тестами.
Конфигурирование Spring-приложений
конфигурировать Spring-приложения в Java-based стиле,
писать Spring Beans в Annotation-based стиле,
познакомиться с многоуровневой и луковой (Onion) архитектурами,
пользоваться Spring Expression Language (SpEL),
задавать параметры приложения c помощью .properties файлов,
локализовывать приложения
31 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить файл настроек, Annotation- + Java-based конфигурация приложения. Добавьте файл настроек для приложения тестирования студентов. В конфигурационный файл можно поместить путь до CSV-файла и/или текущую локаль, количество правильных ответов для зачёта - на Ваше усмотрение.

Если Вы пишите интеграционные тесты, то не забудьте добавить аналогичный файл и для тестов.

Локализовать выводимые сообщения и вопросы (в CSV-файле).

И переписать конфигурацию в виде Java + Annotation-based конфигурации.
AOP, Spring AOP
узнать об аспектно-ориентированном программировании,
разобраться в ключевой части Spring - Spring AOP,
реализовывать в приложениях crosscutting-функциональность с помощью Spring AOP
4 июня, 20:00 — 21:30
"Чёрная магия" Spring Boot
По окончанию данного модуля слушатели смогут максимально быстро создавать production-grade standalone Spring-приложения с помощью Spring Boot, научатся писать автоконфигурации и использовать существующие и разрабатывать собственные Spring Boot "starters".

Также слушатели ознакомятся со многими возможностями Spring Boot для различных слоёв, функциональностей и технологий.
7 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Перенести приложение на Spring Boot. Создать проект используя Spring Boot Initializr.

Перенести приложение проведения опросов.

Перенести все свойства в application.yml

Сделать собственный баннер для приложения.

Перенести тесты и использовать spring-boot-test-starter
Продвинутая конфигурация Spring-приложений
По окончанию данного занятия слушатели смогут использовать Best Practiсes для конфигурирования Spring-приложений, максимально эффективно использовать анннотации конфигураций.
11 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Перевести приложение для проведения опросов на Spring Shell. Подключить Spring Shell, используя starter.

Написать юнит-тесты и использовать spring-boot-test-starter
Работа с базами данных
В данном разделе будет рассмотрены проекты Spring для работы как с реляционными базами данных, так и с NoSQL базами данных.

Spring JDBC, Spring ORM, Spring Data Repositories и, разумеется, работа с транзакциями.

Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
DAO на Spring JDBC
Слушатели смогут ориентироваться в архитекрутных паттернах, свзяанных с работой с БД.
Слушатели смогут эффективно использовать Spring JDBC для разработки DAO в приложении.
14 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создать приложение хранящее информацию о книгах в библиотеке. Использовать Spring JDBC и реляционную базу.

Опционально использовать настоящую реляционную БД, но можно использовать H2.

Предусмотреть таблицы авторов, книг и жанров.

Интерфейс на Spring Shell

Покрыть тестами, насколько это возможно.

НЕ делать AbstractDao.
НЕ делать наследования в тестах
Основы ORM, JPA, Hibernate как провайдер JPA
По окончанию этого занятия слушатели смогут эффективно применять JPA для описания маппинга классов-entities на таблицы реляционной БД.
Также слушатели смогут использовать Hibernate, как провайдера JPA для подключения к БД.
18 июня, 20:00 — 21:30
JPQL, Spring ORM, DAO на основе Spring ORM + JPA
По окончанию данного модуля слушатели смогут разрабатывать ORM DAO в Spring-приложении с помощью Spring ORM + JPA + Hibernate (в качестве провайдера JPA).

Также слушатели узнаю про JPQL (аналог HQL).
21 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Переписать приложение для хранения книг на ORM. Использовать JPA, Hibernate только в качестве JPA-провайдера.

Добавить комментарии к книгам, и высокоуровневые сервисы, оставляющие комментарии к книгам.

Покрыть DAO тестами используя H2 базу данных и соответствующий H2 Hibernate-диалект
Транзакции, Spring Tx
Слушатели погрузятся в теорию транзакций и поймут все особенности транзакций.
Также слушатели смогут использовать декларативное и императивное управление транзакциями в Spring-приложениях с помощью Spring Tx.
25 июня, 20:00 — 21:30
"Белая магия" Spring Data: Spring Data JPA
После данного занятия слушатели узнаю про набор проектов Spring Data и понятие репозитория, которое вводит Spring Data.

Также слушатели научатся использовать мощную "белую магию" Spring Data ORM для создания ORM DAO на основе JPA.
28 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Билиотеку на Spring Data JPA. Реализовать весь функционал работы с БД в приложении книг с использованием spring-data-jpa репозиториев.
SQL и NoSQL базы данных
По окончанию данного семинара слушатели начнут разбираться в особенностях реляционных и различных нереляционных (NoSQL) баз данных.

Также слушатели научатся правильно выбирать NoSQL БД для решения соответствующих задач.
2 июля, 20:00 — 21:30
Spring Data для подключения к нереляционным БД
После данного занятия слушатели смогу разрабатывать DAO, хранящие данные в нереляционных БД с помощью других Spring Data проектов.
5 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать MogoDB и spring-data для хранения информации о книгах. Тесты можно реализовать с помощью spring-boot-strter-embedded-mongodb
Разработка Web-приложений
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux.

Разумеется, будут рассмотрены популярные технологии View и разработка современных SPA-приложений.

И, конечно, различные "плюшки" Spring Boot, максимально ускоряющие разработку Web-приложений.
Введение в Spring MVC, Spring MVC на Spring Boot
Слушатели смогут ориентироваться в архитектуре MVC и Spring MVC, создавать простые классические веб-приложения на основе Spring MVC и Spring Boot.
9 июля, 20:00 — 21:30
Spring MVC View
По окончании данного занятия слушатели смогут разрабатывать View в классических Web-приложениях, как с использованием JSP, так и с помощью современных технологий: Thymeleaf, Freemarker, и т.д.
12 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
CRUD приложение с Web UI и хранением данных в БД. Создайте приложение с хранением сущностей в БД (можно взять DAOs из прошлых занятий)

Использовать классический View, предусмотреть страницу отображения всех сущностей и создания/редактирования.

View на Thymeleaf, classic Controllers.
Современные приложения на Spring MVC
Слушатели смогут создавать современные приложения (основанные на AJAX архитектуре и SPA-приложения).
Ну и, конечно, после данного занятия слушатели смогут создавать контроллеры всех сортов и мастей для решения большого спектра задач в веб-приложениях.

А также слушатели познакомятся с высокоуровневым WebFlow для описания Web-приложений.
16 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Переписать приложение с использованием AJAX и REST-контроллеров. Переписать приложение с классических View на AJAX архитектуру и REST-контроллеры.

Опционально: Сделать SPA приложение на любом из Web-фреймоврков
Реактивное программирование
В данном модуле слушатели узнают, что такое Reactive программирование и познакомятся с библиотекой RxJava.
19 июля, 20:00 — 21:30
Reactive Spring Frameworks
По окончанию данного модуля слушатели узнают про реактивные фреймоврки в стеке Spring и научаться использовать Reactive-версию Spring Data репозиториев.
23 июля, 20:00 — 21:30
Spring WebFlux
После данного занятия слушатели смогу создавать современные Reactive Web-приложения с помощью Spring WebFlux.
26 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать WebFlux. Вместо классического потока и embedded Web-сервера использовать WebFlux.
"Около" и "Дзен"
В данном модуле рассматриваются продвинутые проекты Spring решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещения сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Spring Security: Архитектура
По окончанию занятия слушатели разберутся что такое аутентификация и авторизация, разберутся в архитектуре Spring Security, и смогут настроить HTTP Basic Auth аутнетификацию.
30 июля, 20:00 — 21:30
Spring Security: Механизмы аутентификации
По окончанию занятия слушатели смогут внедрять в приложение любой механизм аутнетификации.
2 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
В CRUD Web-приложение добавить механизм аутентификации. В существующее CRUD-приложение добавить мехнизм Form-based аутентификации.

UsersServices реализовать самостоятельно.
Spring Security: Авторизация
После занятия пользователи смогу внедрять в приложение различные механизмы авторизации - на основе URL, методов сервисов.
6 августа, 20:00 — 21:30
Spring Security: ACL
После прохождения данного модуля слушатели научатся внедрять в приложение безопасность на основе доменных сущностей: ACLs
9 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Ввести авторизацию на основе URL и/или доменных сущностей. Настроить в приложении авторизацию на уровне URL и/или доменных сущностей.
Spring Batch
Слушатели смогут использовать всю мощь Spring Batch, узнают когда он необходим проекту и почему он нужен не только для больших проектов.
13 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Разработать процедуру миграции данных из реляционного хранилища в NoSQL или наоборот. Используя Spring Batch.

Опционально: Сделать restart с помощью Spring Shell.
Spring Integration: Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
По окончании данного модуля слушатели узнают два похода к разработке Enterprise-приложений - монолиты и микросервисы.
Узнают, какие проблемы возникают при создании монолитов, что такое Messaging и Enterprise Integration Patterns (EIP) и где здесь Spring Integration.
16 августа, 20:00 — 21:30
Spring Integration: Messages и Channels
Слушатели узнают различные семантики каналов, все сорта различных каналов и где они используются.
Также слушатели узнают о сообщениях, которые передаются в каналах и встроенный DSL для настройки связей в Spring Integration.
Также слушатели узнают про базовые Endpoints и Flow Components.
20 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализовать обработку доменной сущности через каналы Spring Integration. Выберите подходящий канал для каждого соответствующего запроса

Опционально: протестируйте приложение под нагрузкой.
Spring Integration: Endpoints и Flow Components
Слушатели также узнают про другие Endpoints и Flow Components и смогут разрабатывать сложные Enterprise-приложения c почти любой интеграцией.
23 августа, 20:00 — 21:30
Spring Boot Actuator: Монолиты vs. Microservices (Round 2), Must have в микросервисах
На данном занятии слушатели будут рассматривать возможности Spring Boot Actuator для создания production-grade приложений и микросервисов, а потом будут долго отходить от таких возможностей и изобилия.

Также в данном разделе будет рассмотрен HATEOAS подход для разработки REST-сервисов.
27 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать метрики, healthchecks и logfile к приложению. И любую другую функциональность на выбор.

Опционально: переписать приложение на HATEOAS принципах.
REST-клиенты, SOAP, Spring WebServices и клиенты к ним
Слушатели научаться писать REST-клиентов к микросервисам.
Также, после занятия слушатели овладеют одним из самых простых способов создания SOAP-сервисов и клиентов к ним Spring WebServices, ну и, конечно будет рассмотрены SOA и SOAP.
30 августа, 20:00 — 21:30
Docker, оркестрация, облака, облачные хостинги
По окончании данного занятия слушатели смогут разбираться в вышеперечисленных словах, а также разбираться в современных принципах построения облачных систем.
3 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть приложение в docker-контейнер. Обернуть приложение в docker-контейнер, БД тоже. Настроить связь между ними.

Опционально: сделать это в локальном кубе.
Spring Cloud: Config Server, Service Registry, интеграция в облака
Слушатели научаться пользоваться возможностями Spring для интеграции с облаками: Config Server, Service Registry, Docker/Kubernates/AWS/Azure best-practices.
6 сентября, 20:00 — 21:30
Spring Cloud Data Flow, Hystrix Circuit Breaker
Слушатели смогут узнать как строятся огромные системы на Spring с использованием Spring Cloud Data Flow.

Также будет рассмотрен популярный фреймворк для использования внешних систем и ресурсов - Hystrix (+Hystrix Javanica) и его интеграция со Spring.
10 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть внешние вызовы в Hystrix. Обернуть все внешние вызовы в Hystrix, Hystrix Javanica.

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

Смогут правильно выбирать архитектуру и стек технологий для проекта.
13 сентября, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Проект должен быть сделан на основе Spring Boot, включать работу с DB с ипользованием Spring Data репозиториев и/или Spring JDBC.
Проект должен иметь UI построенный на современных принципах разработки Web-приложений (AJAX и/или SPA).
Приложение должно содержать механизмы аутентификации и авторизации с использованием Spring Security
Асинхронные части могут быть реализованы с помощью Spring Integration.
Пектные обработки, утилиты поддержки должны быть реализованы с помощью Spring Batch + Spring Shell.
Проект должен быть cloud-ready.

Примеры тем:
- Онлайн-библиотека
- Блог с админкой/регистрацией пользователей
Вводное занятие по проектной работе
Выбрать и обсудить предполагаемую тему проектной работы
Домашние задания: 1
ДЗ
Проектная работа. Проект должен быть сделан на основе Spring Boot, включать работу с DB с ипользованием Spring Data репозиториев и/или Spring JDBC.
Проект должен иметь UI построенный на современных принципах разработки Web-приложений (AJAX и/или SPA).
Приложение должно содержать механизмы аутентификации и авторизации с использованием Spring Security
Асинхронные части могут быть реализованы с помощью Spring Integration.
Пектные обработки, утилиты поддержки должны быть реализованы с помощью Spring Batch + Spring Shell.
Проект должен быть cloud-ready.
Консультация по проекту + пробная защита проекта
Консультирование слушателей по вопросам проектной работы.
Защита проектных работ №1
На данном занятии слушатели будут защищать собственные проекты.
Защита проектных работ №2
На этом занятии слушатели могут защитить свои проектные работы.

Преподаватель

Юрий Дворжецкий
Luxoft Training Center
Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

Разрабатывает на разных платформах: большие и маленькие проекты, высоконагруженные и очень красивые, многим известные и совсем специфические.

Влюблён в элегантность и оригинальность JavaScript как классического, так и современного во всех его проявлениях.

Сейчас разрабатывает Web-приложения c UI на React и Angular.
Преподаватель курсов:
Разработчик на Spring Framework

F.A.Q.: Наиболее часто задаваемые вопросы:

Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.