Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Разработчик на Spring Framework

Курс о разработке веб-приложений на Spring, о фреймворках и вспомогательных технологиях Spring.
Начало занятий
В феврале 2019 года
Что даст вам этот курс


  • Умение «выживать» в проектах, где есть Spring;

  • Знание современных возможностей Spring;

  • Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке;

  • Умение быстро проходить путь от идеи до production-grade;

  • Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5).


Уникальная авторская программа


14 работодателей пригласят лучших выпускников на собеседования

Большое число проектов Spring, затрагивающих все сферы разработки

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

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

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

Сейчас разрабатывает Web-приложения c UI на React и Angular*.
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

Занимался разработкой "коробочных" систем для внешних заказчиков, разработкой систем для внутренних заказчиков. В 2003 году с отличием закончил Магнитогорский Государственный Интститут им. Носова, специальность — промышленная электроника.

Компании: Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк. Интересы: JavaScript, многопоточное программирование, сборщики мусора в Java.
Преподаватели
Юрий Дворжецкий
Luxoft Training Center
Тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.
Программирует с начальных классов.

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

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

Сейчас разрабатывает Web-приложения c UI на React и Angular*.
Сергей Петрелевич
Java-разработчик в Технологическом центре Deutche Bank
В отрасли с 2003 года. Программировать начал со времен ZX-Spectrum. 8 лет в разработке банковских процессинговых систем пластиковых карт.

Занимался разработкой "коробочных" систем для внешних заказчиков, разработкой систем для внутренних заказчиков. В 2003 году с отличием закончил Магнитогорский Государственный Интститут им. Носова, специальность — промышленная электроника.

Компании: Магнитогорский Металлургический Комбинат, Компас+, Borlas, СМП Банк. Интересы: JavaScript, многопоточное программирование, сборщики мусора в Java.
Отзывы
2
Елена
Кущенко
Впечатления от курса строго положительные)
Грамотно составленная программа с широким охватом тем, отличные учебные материалы и конечно высокая квалификация преподавателей. Курс помог мне систематизировать знания, восполнить пробелы и разобраться в новых для меня технологиях и подходах. Кроме того, домашние задания и проектная работа дают возможность приобрести множество востребованных практических навыков.
Спасибо команде Otus =)
Читать целиком
Martin
Martin
Первое, о чем хочу сказать, это о преподавателе - Юрии Дворжецком.
После долгих 5 месяцев работы возникло огромное желание поработать под его руководством и в реальной жизни.
На протяжении всего курса была с его стороны поддержка в чате (чуть не 24/7), в критических ситуациях - удаленный дебаг.
Харизма преподавателя это то, что заряжало, позволяло не опускать руки, идти до конца. Именно за это Юрию от меня огромная благодарность!

Теперь о курсе. Шел на него с нормальным стажем С++ и уверенным знанием Java core. Из курса где-то 85% материала оказалось для меня новым.
Курс тяжелый. Но многое зависит от студента. Некоторые домашки можно сделать за 10 минут путем копипастинга кода из лекции, а можно подойти к ней, как к настоящей боевой задаче, и потратить пару недель.
Для успешного прохождения курса мне потребовалось брать отпуск. Перед принятием решения о поступлении на курс нужно быть готовым к серьезной работе.
Лекции пересматривать ни раз и ни два. Изучался дополнительный материал.
Программа грамотна составлена, полностью охватывает современные технологии разработки на Spring. Code review домашних заданий строг и беспощаден. В рамках курса была привита любовь в unit тестам.

Хочу так же отметить и общую доброжелательную атмосферу на курсе, отличная взаимопомощь в чате, как говорил Юрий: "У нас Community".

Буду рекомендовать ли я курс? Да.
Читать целиком
Минимальные знания
  • Java Basics
  • Multithreading (позже)
  • Основы HTML/HTTP/JS
  • Основы SQL
  • Maven или Gradle
Процесс обучения
Обучение выстроено в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек. Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и домашних заданий.
Необходимое время: 4 часа на занятия и 4-8 часов на домашнюю работу в неделю.
Программа обучения
Модуль 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 в приложении.
Домашние задания: 1
1 Программа по проведению тестирования студентов
В ресурсах хранятся вопросы и различные ответы к ним в виде CSV файла (5 вопрсов). Программа должна спросить у пользователя фамилию и имя, спросить 5 вопросов из CSV-файла и вывести результат тестирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры тем:
- Онлайн-библиотека
- Блог с админкой/регистрацией пользователей
Выпускной проект
Проектная работа по Spring Framework распределена по всему сроку обучения, хотя может быть сделана и в последний месяц. Она создается на основе знаний, полученных на курсе. Готовый проект станет примером кода, который можно показывать потенциальным работодателям. В процессе написания вы можете консультироваться с преподавателями.

Технические требования к выпускному проекту по Spring Framework

  • проект должен быть сделан на основе Spring Boot, а также включать работу с DB с использованием Spring Data репозиториев и/или Spring JDBC;

  • проект должен иметь UI, построенный на современных принципах разработки Web-приложений (AJAX и/или SPA);

  • создаваемое в проектной работе приложение должно содержать механизмы аутентификации и авторизации с использованием Spring Security;

  • асинхронные части рекомендуется реализовывать с помощью Spring Integration;

  • пакетные обработки и утилиты поддержки должны быть реализованы с помощью Spring Batch+Spring Shell;

  • проект должен быть CloudReady.


Примеры тем проекта

  • онлайн-библиотека;

  • блог с админкой/регистрацией пользователей.

Подглядеть
Java-разработчик
Ирина Гаранина, тимлид команды разработки
Веб-приложения и микросервисы на Spring Boot 2.0
Юрий Дворжецкий
Создание систем на основе микросервисной архитектуры Spring Boot
Юрий Дворжецкий
Видеоматериалы по теме
День открытых дверей
28 ноября в 20:00
День открытых дверей
21 июня в 20:00
После обучения вы

  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, презентации, примеры кода);

  • приобретете практический опыт работы с актуальными фреймворками и технологиями Spring;

  • получите сертификат об окончании курса;

  • сможете создавать как самостоятельные проекты, так и в большие коммерческие приложения в команде;

  • получите приглашение пройти собеседование в компаниях-партнерах (в случае успешного обучения на курсе).

Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик на Spring Framework»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик на Spring Framework»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001