Проходил 21 июня в 20:00

День открытых дверей
Разработчик на Spring Framework

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

Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!
Преподаватель
Юрий Дворжецкий

Запись

О курсе

Разработчик на Spring Framework
60 000 ₽
5 месяцев
Начало 30 ноября
  • Умение «выживать» в проектах, где есть 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 Beans в приложении.
30 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Программа по проведению тестирования студентов. В ресурсах хранятся вопросы и различные ответы к ним в виде CSV файла (5 вопрсов). Программа должна спросить у пользователя фамилию и имя, спросить 5 вопросов из CSV-файла и вывести результат тестирования.

Все сервисы в программе должны решать строго определённую задачу. Зависимости должны быть настроены в IoC контейнере.

Опционально: сервисы, по возможности, покрыть тестами.
Конфигурирование Spring-приложений
Слушатели смогут научиться конфигурировать Spring-приложения в разных стилях, пользоваться Spring Expression Language, конфигурировать приложения c помощью .properties/YAML файлов.
4 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить файл настроек в приложение для тестирования, Annotation- + Java-based конфигурация приложения. Добавьте файл настроек для приложения тестирования.
Не забудьте добавить аналогичный файл и для тестов.

Локализовать выводимые сообщения и вопросы теста.

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

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

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

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

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

Перенести тесты и использовать spring-boot-test-starter
Продвинутая конфигурация Spring-приложений
По окончанию данного занятия слушатели смогут использовать Best Practiсes для конфигурирования Spring-приложений, максимально эффективно использовать анннотации конфигураций.
14 декабря, 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 в приложении.
18 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создать приложение хранящее информацию о книгах в билиотеке. Использовать Spring JDBC и реляционную базу.

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

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

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

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

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

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

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

Также слушатели научатся правильно выбирать NoSQL БД для решения соответствующих задач.
4 января, 20:00 — 21:30
Spring Data для подключения к нереляционным БД
После данного занятия слушатели смогу разрабатывать DAO, хранящие данные в нереляционных БД с помощью других Spring Data проектов.
8 января, 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.
11 января, 20:00 — 21:30
Spring MVC View
По окончании данного занятия слушатели смогут разрабатывать View в классических Web-приложениях, как с использованием JSP, так и с помощью современных технологий: Thymeleaf, Freemarker, и т.д.
15 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
CRUD приложение с Web UI и хранением данных в БД. Создайте приложение с хранением сущностей в БД (можно взять DAOs из прошлых занятий)

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

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

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

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

UsersServices реализовать самостоятельно.
Spring Security: Авторизация
После занятия пользователи смогу внедрять в приложение различные механизмы авторизации - на основе URL, методов сервисов.
5 февраля, 20:00 — 21:30
Spring Security: ACL
После прохождения данного модуля слушатели научатся внедрять в приложение безопасность на основе доменных сущностей: ACLs
8 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Ввести авторизацию на основе URL и/или доменных сущностей. Настроить в приложении авторизацию на уровне URL и/или доменных сущностей.
Reactive Spring Data
По окончанию данного модуля слушатели научаться использовать Reactive-версию Spring Data репозиториев, и, наконец, полноценно использовать Reactive Stack Spring.
12 февраля, 20:00 — 21:30
Spring Batch
Слушатели смогут использовать всю мощь Spring Batch, узнают когда он необходим проекту и почему он нужен не только для больших проектов.
15 февраля, 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.
19 февраля, 20:00 — 21:30
Spring Integration: Messages и Channels
Слушатели узнают различные семантики каналов, все сорта различных каналов и где они используются.
Также слушатели узнают о сообщениях, которые передаются в каналах и встроенный DSL для настройки связей в Spring Integration.
Также слушатели узнают про базовые Endpoints и Flow Components.
22 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализовать обработку доменной сущности через каналы Spring Integration. Выберите подходящий канал для каждого соответствующего запроса

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

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

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

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

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

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

Смогут правильно выбирать архитектуру и стек технологий для проекта.
19 марта, 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.

Примеры тем:
- Онлайн-библиотека
- Блог с админкой/регистрацией пользователей

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

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

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

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

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

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

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