Открытый вебинар «Создание систем на основе микросервисной архитектуры Spring Boot» 20.11.2018 в 20:00 | OTUS

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65
Проходил 20 ноября 2018 года в 20:00

Открытый вебинар
Создание систем на основе микросервисной архитектуры Spring Boot

Открытый вебинар онлайн

Юрий Дворжецкий познакомит вас с Spring Boot и расскажет о причинах его крутости. Будем создавать Web-слой с помощью Spring MVC, подключаться к БД с помощью Spring Data, тестировать все слои приложения с помощью Spring Boot и конфигурировать properties необычными способами. Запишитесь, чтобы вовремя получить ссылку на онлайн-трансляцию!
Преподаватель
Юрий Дворжецкий

Запись

О курсе

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

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

Требования:
1. Все сервисы в программе должны решать строго определённую задачу.
2. Контекст описывается XML-файлом.
3. Все зависимости должны быть настроены в IoC контейнере.
4. Имя ресурса с вопросами (CSV-файла) необходимо захардкодить в XML-файле с контекстом.
5. CSV с вопросами читается именно как ресурс, а не как файл.
6. Scanner и стандартные типы в контекст класть не нужно!
7. Крайне желательно написать юнит-тест какого-нибудь сервиса (оцениваться будет только попытка написать тест).

Задание сдаётся в виде ссылки на pull-request в чат с преподавателем.
Вопросы можно задавать в чате, но для оперативности рекомендуем Slack.

Код, написанный в данном ДЗ будет использоваться дальше в домашних заданиях #2 (Занятие #2), #3 (Занятие #4), #4 (Занятие #5)
Конфигурирование Spring-приложений
конфигурировать Spring-приложения в современном Java-based стиле (как сейчас и все пишут);
ориентироваться в многослойной и луковой (Onion) архитектурах;
пользоваться Spring Expression Language (SpEL);
задавать параметры приложения c помощью .properties файлов;
локализовывать приложения.
4 марта, 20:00 — 21:30
Лектор: Юрий Дворжецкий
Домашние задания: 1
ДЗ
Добавить файл настроек, Annotation- + Java-based конфигурация приложения. Выполняется на основе предыдущего домашнего задания.

1. Переписать конфигурацию в виде Java + Annotation-based конфигурации.
2. Локализовать выводимые сообщения и вопросы (в CSV-файле).
3. Добавьте файл настроек для приложения тестирования студентов. В конфигурационный файл можно поместить путь до CSV-файла и/или текущую локаль, количество правильных ответов для зачёта - на Ваше усмотрение.
4. Если Вы пишите интеграционные тесты, то не забудьте добавить аналогичный файл и для тестов.

Задание сдаётся в виде ссылки на pull-request в чат с преподавателем.
Вопросы можно задавать в чате, но для оперативности рекомендуем Slack.

Код, написанный в данном ДЗ будет использоваться дальше в домашних заданиях №3 (Занятие №4), №4 (Занятие №5)
Данное задание засчитывает ДЗ №1 (Занятие №1).
Если Вы хотите засчитать, то обязательно пришлите ссылку в чат соответствующего предыдущего занятия.
AOP, Spring AOP
использовать аспектно-ориентированное программирование (там где нужно),
видеть в коде ключевую функциональность Spring - Spring AOP,
реализовывать в приложениях crosscutting-функциональность с помощью Spring AOP
7 марта, 11:00 — 12:30
Лектор: Александр Оруджев
"Чёрная магия" Spring Boot
ориентироваться в возможностях Spring Boot для различных функциональностей и технологий;
максимально быстро создавать production-grade standalone Spring-приложения с помощью Spring Boot Starters;
писать автоконфигурации и использовать существующие;
писать property в YAML-формате.
11 марта, 20:00 — 21:30
Лектор: Сергей Петрелевич
Домашние задания: 1
ДЗ
Перенести приложение для тестирования студентов на Spring Boot. Это домашнее задание выполняется на основе предыдущего.

1. Создать проект, используя Spring Boot Initializr (https://start.spring.io)
2. Перенести приложение проведения опросов из прошлого домашнего задания. MesageSource должен быть из автоконфигурации Spring Boot.
3. Перенести все свойства в application.yml
4. Сделать собственный баннер для приложения.
5. Перенести тесты и использовать spring-boot-test-starter для тестирования
*Опционально - использовать ANSI-цвета для баннера.

Коммитить wrapper или нет в репозиторий - решать Вам.

Задание сдаётся в виде ссылки на pull-request в чат с преподавателем.
Вопросы можно задавать в чате, но для оперативности рекомендуем Slack.

Написанное приложение будет использоваться в ДЗ №4 (к занятию №5).
Данное задание засчитывает ДЗ №1 (к занятию №1) и ДЗ №2 (к занятию №2).
Если Вы хотите засчитать, то обязательно пришлите ссылку в чат соответствующего предыдущего занятия.
Продвинутая конфигурация Spring-приложений
использовать Best Practiсes для конфигурирования Spring-приложений;
максимально эффективно использовать анннотации конфигураций;
писать приложения с использованием Spring Shell.
14 марта, 11:00 — 12:30
Лектор: Александр Оруджев
Домашние задания: 1
ДЗ
Перевести приложение для проведения опросов на Spring Shell. Домашнее задание выполняется на основе предыдущего.

Необходимо:
1. Подключить Spring Shell, используя spring-starter.
2. Написать набор команд, позволяющий проводить опрос.
3. Написать Unit-тесты с помощью spring-boot-starter-test, учесть, что Spring Shell в тестах нужно отключить.

Набор команд зависит только от Вашего желания. Вы можете сделать одну команду, запускающую Ваш Main, а можете построить полноценный интерфейс на Spring Shell.

Локализовывать команды Spring Shell НЕ НУЖНО (хотя можно, но это долго и непросто).

Задание сдаётся в виде ссылки на pull-request в чат с преподавателем.
Вопросы можно задавать в чате, но для оперативности рекомендуем Slack.

Данное задание НЕ засчитывает предыдущие!

Это домашнее задание больше нигде не будет использоваться. Но интерфейс Spring Shell мы будет использовать в дальнейшем.
Разбор домашних заданий, QnA
писать код с учётом Best Practices;
не допускать частых ошибок;
получить ответы на вопросы.
18 марта, 20:00 — 21:30
Лектор: Александр Оруджев
Работа с базами данных
В данном модуле будет рассмотрены проекты Spring для работы как с реляционными базами данных, так и с NoSQL базами данных.

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

Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
DAO на Spring JDBC
эффективно использовать JDBC вместе со Spring JDBC для разработки приложений с мощью чистого SQL;
правильно применять паттерн DAO для подключения к БД;
пользоваться embedded БД для написания тестов и при разработке простых приложений.
21 марта, 11:00 — 12:30
Лектор: Александр Оруджев
Домашние задания: 1
ДЗ
Создать приложение хранящее информацию о книгах в библиотеке. Это домашнее задание выполняется НЕ на основе предыдущего.

1. Использовать Spring JDBC и реляционную базу (H2 или настоящую реляционную БД). Настоятельно рекомендуем использовать NamedParametersJdbcTemplate
2. Предусмотреть таблицы авторов, книг и жанров.
3. Предполагаются отношения один-ко-многим (у книги один автор, но у автора может быть несколько книг, то же касается книг и жанров). Опциональное усложнение - отношения много-ко-многим.
4. Интерфейс выполняется на Spring Shell (CRUD книги обязателен, операции с авторами и журналами - как будет удобно).
5. Скрипт создания таблиц и скрипт заполнения данными должны автоматически запускаться
с помощью spring-boot-starter-jdbc.
6. Покрыть тестами, насколько это возможно.

Рекомендации к выполнению работы:
1. НЕ делать AbstractDao.
2. НЕ делать наследования в тестах

Это домашнее задание является основой для следующих.
Основы ORM, JPA, Hibernate как провайдер JPA
применять JPA для описания маппинга классов-entities на таблицы реляционной БД;
использовать Hibernate в качестве JPA Vendor.
25 марта, 20:00 — 21:30
Лектор: Александр Оруджев
JPQL, Spring ORM, DAO на основе Spring ORM + JPA
писать ORM DAO с помощью Spring ORM + JPA + Hibernate (в качестве JPA Vendor-a) в Spring приложениях;
использовать JPQL (аналог HQL) для построения SQL-подобных запросов.
28 марта, 11:00 — 12:30
Лектор: Александр Оруджев
Домашние задания: 1
ДЗ
Переписать приложение для хранения книг на ORM. Домашнее задание выполняется переписыванием предыдущего на JPA.

Требования:
1. Использовать JPA, Hibernate только в качестве JPA-провайдера.
2. Добавить комментарии к книгам, и высокоуровневые сервисы, оставляющие комментарии к книгам.
3. Покрыть репозитории тестами, используя H2 базу данных и соответствующий H2 Hibernate-диалект для тестов.
4. Не забудьте отключить DDL через Hibernate

Это домашнее задание будет использоваться в качестве основы для других ДЗ
Данная работа не засчитывает предыдущую!
Транзакции, Spring Tx
применять особенности транзакции в реляционных БД для правильной разработки слоя DAO;
использовать декларативное и императивное управление транзакциями в Spring-приложениях с помощью Spring Tx.
1 апреля, 20:00 — 21:30
Лектор: Виталий Куценко
"Белая магия" Spring Data: Spring Data JPA
использовать абстракции Spring Data для реализации собственных репозиториев в общем виде;
использовать "белую магию" Spring Data JPA для создания репозиториев для JPA сущностей.
4 апреля, 11:00 — 12:30
Лектор: Дмитрий Коган
Домашние задания: 1
ДЗ
Библиотеку на Spring Data JPA. Домашнее задание выполняется переписыванием предыдущего на JPA.

Требования:
1. Переписать все репозитории по работе с книгами на Spring Data JPA репозитории.
2. Используйте spring-boot-starter-data-jpa.
3. Кастомные методы репозиториев (или с хитрым @Query) покрыть тестами, используя H2.

Это домашнее задание будет использоваться в качестве основы для других ДЗ
Данная работа не засчитывает предыдущую!
SQL и NoSQL базы данных
использовать особенности нереляционных (NoSQL) БД;
выбирать NoSQL БД для решения задач.
8 апреля, 20:00 — 21:30
Лектор: Дмитрий Коган
Spring Data для подключения к нереляционным БД
разрабатывать репозитории для хранения данных в NoSQL БД;
использовать другие проекты Spring Data.
11 апреля, 11:00 — 12:30
Лектор: Дмитрий Коган
Домашние задания: 1
ДЗ
Использовать MogoDB и spring-data для хранения информации о книгах. Задание может выполняться на основе предыдущего, а может быть выполнено самостоятельно

Требования:
1. Использовать Spring Data MongoDB репозитории, а если не хватает функциональности, то и *Operations
2. Тесты можно реализовать с помощью Flapdoodle Embedded MongoDB
3. Hibernate, равно, как и JPA, и spring-boot-starter-data-jpa не должно остаться в зависимостях, если ДЗ выполняется на основе предыдущего.
4. Как хранить книги, авторов, жанры и комментарии решать Вам. Но перенесённая с реляционной базы структура не всегда будет подходить для MongoDB.

Данное задание НЕ засчитывает предыдущие!

Это задание может использоваться в дальнейшем, а может не использоваться - на Ваше дальнейшее усмотрение
Разбор домашних заданий, QnA
писать код с учётом Best Practices;
не допускать частых ошибок;
получить ответы на вопросы.
15 апреля, 20:00 — 21:30
Лектор: Александр Оруджев
Разработка Web-приложений
В данном модуле будут рассматриваться возможности Spring для разработки Web-приложений: Spring MVC и современный Reactive-ориентированный Spring WebFlux.

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

И, конечно, различные "плюшки" Spring Boot, максимально ускоряющие разработку Web-приложений.
Введение в Spring MVC, Spring MVC на Spring Boot
различать архитектуры MVC и Spring MVC;
создавать простые классические Web-приложения на основе Spring MVC и Spring Boot;
создавать REST-сервисы на основе Spring MVC и Spring Boot.
18 апреля, 11:00 — 12:30
Лектор: Юрий Дворжецкий
Spring MVC View
разрабатывать классические Web-приложения на Spring MVC;
разрабатывать слой View на Thymeleaf.
22 апреля, 20:00 — 21:30
Лектор: Юрий Дворжецкий
Домашние задания: 1
ДЗ
CRUD приложение с Web UI и хранением данных в БД. Необходимо:
1. Создать приложение с хранением сущностей в БД (можно взять библиотеку и DAO/репозитории из прошлых занятий)
2. Использовать классический View на Thymeleaf, classic Controllers.
3. Для книг (главной сущности) на UI должны быть доступные все CRUD операции. CRUD остальных сущностей - по желанию/необходимости.

Данное задание НЕ засчитывает предыдущие!

Это домашнее задание частично будет использоваться в дальнейшем
Современные приложения на Spring MVC
создавать сложные классические приложения с использованием Spring Web Flow;
создавать современные приложения, как основанные на AJAX архитектуре и jQuery, так и SPA-приложения на Vue, React и Angular.
25 апреля, 11:00 — 12:30
Лектор: Юрий Дворжецкий
Домашние задания: 1
ДЗ
Переписать приложение с использованием AJAX и REST-контроллеров. Домашнее задание выполняется на основе предыдущего.

1. Переписать приложение с классических View на AJAX архитектуру и REST-контроллеры.
2. Минимум: получение одной сущности и отображение её на странице с помощью Vanilla JS или jQuery
3. Опционально максимум: полноценное SPA приложение на React/Vue/Angular, только REST-контроллеры.

В случае разработки SPA - рекомендуется вынести репозиторий с front-end. Используйте proxy при разработке (настройки CORS не должно быть).

Данное задание, выполненное в виде SPA засчитывает ДЗ №9 (Занятие №15).
Если Вы хотите засчитать, то обязательно пришлите ссылку в чат соответствующего предыдущего занятия.

Данное ДЗ будет использоваться в дальнейшем
Реактивное программирование
применять принципы, на которых построено Reactive программирование;
пользоваться библиотекой RxJava для построения реактивных приложений;
применять различные Rx-операторы для необходимых ситуаций.
29 апреля, 20:00 — 21:30
Reactive Spring Frameworks
ориентироваться в реактивных фреймоврках в стеке Spring;
использовать Reactive-версию Spring Data репозиториев.
13 мая, 20:00 — 21:30
Spring WebFlux
создавать с помощью Spring WebFlux современные реактивные Web-приложения.
16 мая, 11:00 — 12:30
Домашние задания: 1
ДЗ
Использовать WebFlux. 1. Задание выполняется на основе ДЗ с MongoDB.
2. Вы можете выбрать другую доменную модель (не библиотеку) и другую БД (Redis).
3. Необходимо использовать Reactive Spring Data Repositories. Использовать PostgreSQL и экспериментальную R2DBC не рекомендуется.
4. RxJava vs Project Reactor - на Ваш вкус.
5. Вместо классического Spring MVC и embedded Web-сервера использовать WebFlux.
6. Опционально: реализовать на Functional Endpoints

Данное задание НЕ засчитывает предыдущие!

Рекомендации:
Старайтесь избавиться от лишних архитектурных слоёв. Самый простой вариант - весь flow в контроллере.
"Около" и "Дзен"
В данном модуле рассматриваются продвинутые проекты Spring решающие специфичные задачи, связанные с авторизацией и аутентификацией, размещения сервисов в облаках и работой с БД, а также облегчающие создание больших монолитов и систем на микросервисной архитектуре.
Spring Security: Архитектура
различать аутентификацию и авторизацию;
различать задачи безопасности в Enterprise приложениях;
разбираться в архитектуре Spring Security.
20 мая, 20:00 — 21:30
Spring Security: Механизмы аутентификации
различать различные механизмы аутентификации;
внедрять HTTP Basic аутентификацию для защиты Web-приложения;
внедрять Form-based аутентификацию для защиты Web-приложения;
использовать вторичные виды аутентификации (такие как Remember Me и Anonymous).
23 мая, 11:00 — 12:30
Домашние задания: 1
ДЗ
В CRUD Web-приложение добавить механизм аутентификации. Внимание! Задание выполняется на основе нереактивного приложения Sping MVC!

1. Добавить в приложение новую сущность - пользователь. Не обязательно реализовывать методы по созданию пользователей - допустимо добавить пользователей только через БД-скрипты.
2. В существующее CRUD-приложение добавить механизм Form-based аутентификации.
3. UsersServices реализовать самостоятельно.
4. Авторизация на всех страницах - для всех аутентифицированных. Форма логина - доступна для всех.

Данное задание НЕ засчитывает предыдущие!

Данное ДЗ будет использоваться в дальнейшем.
Spring Security: Авторизация
внедрять в приложение различные механизмы авторизации - на основе URL и методов сервисов, для глубокой защиты приложений.
27 мая, 20:00 — 21:30
Spring Security: ACL
внедрять в приложение безопасность на основе доменных сущностей - ACLs.
30 мая, 11:00 — 12:30
Домашние задания: 1
ДЗ
Ввести авторизацию на основе URL и/или доменных сущностей. Внимание! Задание выполняется на основе нереактивного приложения Sping MVC!

1. Минимум: настроить в приложении авторизацию на уровне URL.
2. Максимум: настроить в приложении авторизацию на основе доменных сущностей и методов сервиса.

Рекомендации по выполнению:
1. Не рекомендуется выделять пользователей с разными правами в разные классы - т.е. просто один класс пользователя.
2. В случае авторизации на основе доменных сущностей и PostgreSQL не используйте GUID для сущностей.

Данное задание НЕ засчитывает предыдущие!
Spring Batch
использовать Spring Batch для организации пакетной обработки данных в приложении;
применять Spring Batch не только в больших проектах.
3 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
На основе Spring Batch разработать процедуру миграции данных из реляционного хранилища в NoSQL или наоборот. 1. Задание может быть выполнено в отдельном репозитории, с сущностями из ДЗ JPA и MongoDB.
2. Вы можете выбрать другую доменную модель
3. Не обязательно добавлять процесс миграции в веб-приложение. Приложение может быть оформлено в виде отдельной утилиты.
3. Используя Spring Batch, следите, чтобы связи сущностей сохранились.
4. Опционально: Сделать restart задачи с помощью Spring Shell.

Данное задание НЕ засчитывает предыдущие!
Монолиты vs. Microservices Round 1, Messaging, Enterprise Integration Patterns (EIP)
различать два похода к разработке Enterprise-приложений - монолиты и микросервисы;
видеть проблемы, возникающие при создании монолитов;
использовать Best Practices при разработке монолитов.
6 июня, 11:00 — 12:30
Spring Integration: Messages и Channels
использовать различное многообразие сообщение для работы со Spring Integration;
использовать различные семантики каналов там, где необходима нужная семантика интеграции;
пользоваться встроенный DSL для настройки связей в Spring Integration;
различать базовые Endpoints и Flow Components.
10 июня, 20:00 — 21:30
Spring Integration: Endpoints и Flow Components
использовать Endpoints и Flow Components для разработки сложных Enterprise-приложений c почти любой интеграцией.
20 июня, 11:00 — 12:30
Домашние задания: 1
ДЗ
Реализовать обработку доменной сущности через каналы Spring Integration. 1. Внимание! Задание может быть выполнено в отдельном репозитории и с совершенно другой доменной областью и сущностями
2. Для каждого действия выберите подходящий канал
3. Опционально: протестируйте приложение под нагрузкой.

Данное задание НЕ засчитывает предыдущие!
Монолиты vs. Microservices (Round 2), Spring Boot Actuator - must have в микросервисах
использовать Best Practices для разработки приложений на микросервисной архитектуре;
использовать изобилие возможностей Spring Boot Actuator для создания production-grade приложений и микросервисов;
применять HATEOAS подход для разработки REST-сервисов.
24 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Использовать метрики, healthchecks и logfile к приложению. Данное задание выполняется на основе одного из реализованных Web-приложений


1. Подключить Spring Boot Actuator в приложение метрики.
2. Включить метрики, healthchecks и logfile.
3. Реализовать свой собственный HealthCheck индикатор
4. UI для данных от Spring Boot Actuator реализовывать не нужно.
5. Опционально: переписать приложение на HATEOAS принципах с помощью Spring Data REST Repository

Данное задание НЕ засчитывает предыдущие!
REST-клиенты, SOAP, Spring WebServices и клиенты к ним
писать REST-клиенты с различными дополнениями для построения полноценных микросервисных систем;
писать на Spring WebServices SOAP-сервисы и клиенты к ним для разработки систем на SOA и SOAP.
27 июня, 11:00 — 12:30
Docker, оркестрация, облака, облачные хостинги
использовать Docker для запуска приложений в повседневной жизни,
собирать собственные образы Docker c помощью Dockerfile для запуска собственных приложений,
использовать docker-compose и kubernetes для запуска сложных систем
1 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть приложение в docker-контейнер. Внимание! Задание выполняется на основе любого сделанного Web-приложения

1. Обернуть приложение в docker-контейнер. Dockerfile принято располагать в корне репозитория. В image должна попадать JAR-приложения. Сборка в контейнере рекомендуется, но не обязательна.
2. БД в собственный контейнер оборачивать не нужно (если только Вы не используете кастомные плагины)
3. Настроить связь между контейнерами, с помощью docker-compose
4. Опционально: сделать это в локальном кубе.
5. Приложение желательно реализовать с помощью всех Best Practices Docker (логгирование в stdout и т.д.)

Данное задание НЕ засчитывает предыдущие!
Облака, Mongo DB Atlas cluster, Spring Cloud
разобраться с облаками, их типами, конкретными реализациями;
создать бесплатный кластер Mongo DB Atlas;
ознакомиться с возможностями Spring для интеграции с облаками.
4 июля, 11:00 — 12:30
Spring Cloud Config, Spring Cloud Bus, Spring Cloud Service Discovery с Eureka, Ribbon и Feign
организовать взаимодействие микросервисов c Config Server с помощью Spring Cloud
изучить возможности обновления данных микросервисов "на лету" с помощью Spring Cloud Bus;
научиться строить огромные системы на Cloud Service Discovery с использованием Eureka, Ribbon и Feign.
8 июля, 20:00 — 21:30
Zuul, Hystrix Circuit Breaker, Sleuth, Zipkin, Hystrix Dashboard, Secure Configuration Properties
строить огромные системы с помощью Zuul, Hystrix, Sleuth, Zipkin.
11 июля, 11:00 — 12:30
Домашние задания: 1
ДЗ
Обернуть внешние вызовы в Hystrix. 1. Обернуть все внешние вызовы в Hystrix, Hystrix Javanica.
2. Возможно использование Resilent4j
3. Возможно использование Feign Client
Опционально: Поднять Turbine Dashboard для мониторинга.

Данное задание НЕ засчитывает предыдущие!
Обзор дополнительных технологий Spring, быстрая разработка приложений
быстро создавать современные приложения со всеми необходимыми примочками.
15 июля, 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.

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

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

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

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

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

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