День открытых дверей по курсу «Разработчик на Spring Framework» 23.05.2019 в 20:00 | OTUS
Скидки на курсы июня!
Только два дня! Пишите в чат, чтобы получить максимальную скидку ➞
Написать в чат

Курсы

Программирование
Web-разработчик на Python Разработчик на Spring Framework iOS Разработчик. Продвинутый курс v 2.0. PostgreSQL C# ASP.NET Core разработчик Разработчик C# Архитектор программного обеспечения Разработчик C++ MS SQL Server разработчик Android-разработчик. Базовый курс Архитектор высоких нагрузок Backend-разработчик на PHP Алгоритмы для разработчиков Team Lead 2.0 Python-разработчик. Базовый курс VOIP инженер Базы данных Разработчик Golang Разработчик программных роботов (RPA) на базе UiPath и PIX Разработчик голосовых ассистентов и чат-ботов Agile Project Manager в IT
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02
Проходил 23 мая 2019 года в 20:00

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

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

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

Запись

О курсе

Разработчик на Spring Framework
100 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.
Домашние задания: 1
ДЗ
Приложение по проведению тестирования студентов (только вывод вопросов). Описание задание:

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

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

Опционально (задание со "звёздочкой"):
1*. Приложение должно корректно запускаться с помощью "java -jar"

Задание сдаётся в виде ссылки на pull-request в чат с преподавателем в личном кабинете ОТУС, не в Slack!
Инструкция по работе с pull-request-ами находится в документе "Настройка окружения.pdf" в материалах занятия.
Вопросы можно задавать в чате, но для оперативности рекомендуем Slack.

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

Программа должна спросить у пользователя фамилию и имя, спросить 5 вопросов из CSV-файла и вывести результат тестирования.

Выполняется на основе предыдущего домашнего задания + , собственно, сам функционал тестирования.

Требования:
1. Переписать конфигурацию в виде Java + Annotation-based конфигурации.
2. Добавить функционал тестирования студента.
3. Добавьте файл настроек для приложения тестирования студентов.
4. В конфигурационный файл можно поместить путь до CSV-файла, количество правильных ответов для зачёта - на Ваше усмотрение.
5. Если Вы пишите интеграционные тесты, то не забудьте добавить аналогичный файл и для тестов.
6. Scanner, PrintStream и другие стандартные типы в контекст класть не нужно!
7. Ввод-вывод на английском языке.
8. Помним, "без фанатизма" :)

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

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

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

Помимо проектов Spring, участники смогут разбираться в особенностях различных баз данных, а также использовать специальные embedded-базы даных.
DAO на Spring JDBC
эффективно использовать JDBC вместе со Spring JDBC для разработки приложений с мощью чистого SQL;
правильно применять паттерн DAO для подключения к БД;
пользоваться embedded БД для написания тестов и при разработке простых приложений.
23 июня, 20:00 — 21: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.
26 июня, 20:00 — 21:30
Лектор: Александр Оруджев
JPQL, Spring ORM, DAO на основе Spring ORM + JPA
писать ORM DAO с помощью Spring ORM + JPA + Hibernate (в качестве JPA Vendor-a) в Spring приложениях;
использовать JPQL (аналог HQL) для построения SQL-подобных запросов.
30 июня, 20:00 — 21:30
Лектор: Александр Оруджев
Домашние задания: 1
ДЗ
Переписать приложение для хранения книг на ORM. Домашнее задание выполняется переписыванием предыдущего на JPA.

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

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

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

Это домашнее задание будет использоваться в качестве основы для других ДЗ
Данная работа не засчитывает предыдущую!
SQL и NoSQL базы данных
использовать особенности нереляционных (NoSQL) БД;
выбирать NoSQL БД для решения задач.
10 июля, 20:00 — 21:30
Лектор: Дмитрий Коган
Spring Data для подключения к нереляционным БД
разрабатывать репозитории для хранения данных в NoSQL БД;
использовать другие проекты Spring Data.
14 июля, 20:00 — 21: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;
не допускать частых ошибок;
получить ответы на вопросы.
17 июля, 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.
21 июля, 20:00 — 21:30
Spring MVC View
разрабатывать классические Web-приложения на Spring MVC;
разрабатывать слой View на Thymeleaf.
24 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
CRUD приложение с Web UI и хранением данных в БД. Необходимо:
1. Создать приложение с хранением сущностей в БД (можно взять библиотеку и DAO/репозитории из прошлых занятий)
2. Использовать классический View на Thymeleaf, classic Controllers.
3. Для книг (главной сущности) на UI должны быть доступные все CRUD операции. CRUD остальных сущностей - по желанию/необходимости.
4. Локализацию делать НЕ нужно - она строго опциональна.

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

Это домашнее задание частично будет использоваться в дальнейшем
Современные приложения на Spring MVC
создавать сложные классические приложения с использованием Spring Web Flow;
создавать современные приложения, как основанные на AJAX архитектуре и jQuery, так и SPA-приложения на Vue, React и Angular.
28 июля, 20:00 — 21: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-операторы для необходимых ситуаций.
31 июля, 20:00 — 21:30
Reactive Spring Frameworks
ориентироваться в реактивных фреймоврках в стеке Spring;
использовать Reactive-версию Spring Data репозиториев.
11 августа, 20:00 — 21:30
Spring WebFlux
создавать с помощью Spring WebFlux современные реактивные Web-приложения.
14 августа, 20:00 — 21: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.
18 августа, 20:00 — 21:30
Spring Security: Механизмы аутентификации
различать различные механизмы аутентификации;
внедрять HTTP Basic аутентификацию для защиты Web-приложения;
внедрять Form-based аутентификацию для защиты Web-приложения;
использовать вторичные виды аутентификации (такие как Remember Me и Anonymous).
21 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
В CRUD Web-приложение добавить механизм аутентификации. Внимание! Задание выполняется на основе нереактивного приложения Sping MVC!

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

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

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

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

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

Данное задание НЕ засчитывает предыдущие!
Spring Batch
использовать Spring Batch для организации пакетной обработки данных в приложении;
применять Spring Batch не только в больших проектах.
1 сентября, 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 при разработке монолитов.
4 сентября, 20:00 — 21:30
Spring Integration: Messages и Channels
использовать различное многообразие сообщение для работы со Spring Integration;
использовать различные семантики каналов там, где необходима нужная семантика интеграции;
пользоваться встроенный DSL для настройки связей в Spring Integration;
различать базовые Endpoints и Flow Components.
8 сентября, 20:00 — 21:30
Spring Integration: Endpoints и Flow Components
использовать Endpoints и Flow Components для разработки сложных Enterprise-приложений c почти любой интеграцией.
18 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализовать обработку доменной сущности через каналы Spring Integration. 1. Выберите другую доменную область и сущности. Пример: превращение гусеницы в бабочку.
2. Опишите/сконфигурируйте процесс (IntegrationFlow) с помощью инструментария предоставляемого Spring Integration.
3. Желательно использование MessagingGateway и subfolw (при необходимости).

Задание выполняется в другом репозитории/в другой папке.

Данное задание НЕ засчитывает предыдущие!
Монолиты vs. Microservices (Round 2), Spring Boot Actuator - must have в микросервисах
использовать Best Practices для разработки приложений на микросервисной архитектуре;
использовать изобилие возможностей Spring Boot Actuator для создания production-grade приложений и микросервисов;
применять HATEOAS подход для разработки REST-сервисов.
22 сентября, 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.
25 сентября, 20:00 — 21:30
Docker, оркестрация, облака, облачные хостинги
использовать Docker для запуска приложений в повседневной жизни,
собирать собственные образы Docker c помощью Dockerfile для запуска собственных приложений,
использовать docker-compose и kubernetes для запуска сложных систем
29 сентября, 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 для интеграции с облаками.
2 октября, 20:00 — 21: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.
6 октября, 20:00 — 21:30
Zuul, Hystrix Circuit Breaker, Sleuth, Zipkin, Hystrix Dashboard, Secure Configuration Properties
строить огромные системы с помощью Zuul, Hystrix, Sleuth, Zipkin.
9 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обернуть внешние вызовы в Hystrix. 1. Обернуть все внешние вызовы в Hystrix, Hystrix Javanica.
2. Возможно использование Resilent4j
3. Возможно использование Feign Client
Опционально: Поднять Turbine Dashboard для мониторинга.

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

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

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

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

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

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

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

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

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