Первое занятие 06.06 (расписание) либо индивидуально


Стажировка Spring 5/JPA Enterprise (Topjava)

Возможно ты уже видел известное видео Java-чемпиона Якова Фaйна Как стать профессиональным Java-разработчиком.
Не надо устраиваться на работу как Junior. Получи опыт работы в реальном Spring/JPA Enterprise проекте!

Разработка полнофункционального Spring 5/JPA enterprise-приложения c авторизацией и правами доступа на основе ролей на самом востребованном Java стеке: Maven, Spring MVC, Security, JPA(Hibernate), REST(Jackson), Bootstrap (css,js), datatables, jQuery + plugins, Java 8 Stream and Time API, сохранением в базах данных PostgreSQL и HSQLDB и деплоем в облачный сервис Heroku.

Структура проекта

Первое занятие было 6 июня. Еще можно присоединиться к группе!
Следующий поток в конце сентября
Прохождение проекта возможно либо с группой по расписанию,
либо индивидуально

Последние отзывы (более 150 положительных отзывов реальных участников!)

 Демо разрабатываемого приложения

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



Видеообзор стажировки Topjava



The State of Java in 2018


  Пример 7-го занятия Topjava, несколько видео открыто


Стажировка ведется по рассылке: по записям, подготовленным на основе вебинара, разбитым по темам, дополненным и отредактированным. Каждый четверг производится рассылка новых материалов, обновления к проекту и домашние задания. Мы последовательно разрабатываем приложение с разбором кода и теоретическим материалом. Все домашние задания подобраны по темам занятия, требуют реализации функциональности, схожей с пройденным на занятии и являются частью проекта. Разбор домашних заданий происходит в начале каждого урока. Вопросы и обсуждение занятий и домашних заданий, общение на разные темы происходит в различных каналах группы проекта (используем мессенджер Slack). Начиная с 4-го занятия, участники разрабатывают собственный выпускной проект на стеке Maven/ Spring MVC, Security/ Hibernate/ REST, ревью которого входит в участие с проверкой. На заключительном занятии каждый участник деплоит свой проект из github в облачный сервис Heroku.


Посмотреть персональную стоимость (и оплатить участие) можно в личном профиле после запроса первого занятия


Стоимость за всю стажировку

Оформи рассрочку и плати раз в месяц

Письмо участника (доступ ко всем материалам, приглашение в Slack и единоразовый ключ Ultimate IntelliJ IDEA на 6 месяцев) приходит сразу после оплаты картой из личного профиля (по ссылка в письме вводного занятия)

При оплате другими способами обязательно требуется подтверждение (ваш email, проект, куда отправлен платеж)

Курс рубля | Контакты для связи


В конце обучения выдается электронный сертификат об окончании


Расписание (следующий поток в конце сентября)


    06.06: 1-е занятие

  • Разбор домашнего задания вступительного занятия (вместе с Optional)
  • Обзор используемых в проекте технологий. Интеграция ПО
  • Maven
  • WAR. Веб-контейнер Tomcat. Сервлеты
  • Логирование
  • Уровни и зависимости логгирования. JMX
  • Домашнее задание 1-го занятия (HW1 + Optional)

    13.06: 2-е занятие

  • Разбор домашнего задания HW1 + Optional
  • Библиотека vs Фреймворк. Стандартные библиотеки Apache Commons, Guava
  • Слои приложения. Создание каркаса приложения
  • Обзор Spring Framework. Spring Context
  • Пояснения к HW2. Обработка Autowired
  • Домашнее задание (HW2 + Optional)

    20.06: 3-е занятие

  • Разбор домашнего задания HW2 + Optional
  • Жизненный цикл Spring контекста
  • Тестирование через JUnit
  • Spring Test
  • Базы данных. Обзор NoSQL и Java persistence solution без ORM
  • Настройка Database в IDEA
  • Скрипты инициализации базы. Spring Jdbc Template
  • Тестирование UserService через AssertJ
  • Логирование тестов
  • Домашнее задание (HW3 + Optional)

    27.06: 4-е занятие

  • Разбор домашнего задания HW3 + Optional
  • Методы улучшения качества кода
  • Spring: инициализация и популирование DB
  • Подмена контекста при тестировании
  • ORM. Hibernate. JPA
  • Поддержка HSQLDB
  • Домашнее задание (HW4 + Optional)

    04.07: 5-е занятие

  • Обзор JDK 9/11. Миграция Topjava с 1.8 на 11
  • Разбор вопросов
  • Разбор домашнего задания HW4 + Optional
  • Транзакции
  • Профили Maven и Spring
  • Пул коннектов
  • Spring Data JPA
  • Spring кэш
  • Домашнее задание (HW5 + Optional)

    11.07: 6-е занятие

  • Разбор домашнего задания HW5 + Optional
  • Кэш Hibernate
  • Spring Web
  • JPS, JSTL, internationalization
  • Динамическое изменение профиля при запуске
  • Конфигурирование Tomcat через maven plugin. Jndi-lookup
  • Spring Web MVC
  • Spring Internationalization
  • Домашнее задание (HW6 + Optional)

    25.07: 7-е занятие

  • Разбор домашнего задания HW6 + Optional
  • Автогенерация DDL по модели
  • Тестирование Spring MVC
  • Миграция на JUnit 5
  • Принципы REST. REST контроллеры
  • Тестирование REST контроллеров. Jackson
  • jackson-datatype-hibernate. Тестирование через матчеры
  • Тестирование через SoapUi. UTF-8
  • Домашнее задание (HW7 + Optional)

    01.08: 8-е занятие

  • Разбор домашнего задания HW7 + Optional
  • WebJars. jQuery и JavaScript frameworks
  • Bootstrap
  • AJAX. Datatables. jQuery
  • jQuery notifications plugin
  • Добавление Spring Security
  • Домашнее задание (HW8 + Optional)

    08.08: 9-е занятие

  • Разбор домашнего задания HW8 + Optional
  • Spring Binding
  • Spring Validation
  • Перевод DataTables на Ajax
  • Форма login / logout
  • Реализация собственного провайдера авторицазии
  • Принцип работы Spring Security. Проксирование
  • Spring Security Test
  • Cookie. Session
  • Домашнее задание (HW9 + Optional)

    22.08: Заключительное занятие

  • Разбор домашнего задания HW10 + Optional
  • Локализация datatables, ошибок валидации
  • Защита от XSS (Cross Site Scripting)
  • Обработка ошибок 404 (NotFound)
  • Доступ к AuthorizedUser
  • Ограничение модификации пользователей
  • Деплой приложения в Heroku
  • Собеседование. Разработка ПО
  • Возможные доработки приложения


Код проекта постоянно рефакторится: появились настройки пользователя, сохранения собственных типов в Hibernate, работа с java 8 (time API, Lambda, Streaming), модальные окна bootstrap, переключение локали, JsonView и Validation groups, сильно уменьшено количество и упрощена работа с java script. Появилась логика фильтрации таблицы и сброс фильтра. В каждом уроке добавляются ответы на ваши вопросы по занятию, дополнительные домашние задания и подсказки по выполнению домашних заданий. Проект мигрировал на JDK 11, Spring 5, JUnit 5


История изменений проекта


Позиционирование в резюме стажировки

После окончания

После прохождения испытательного срока на первой работе жду твою историю успеха

Один из последних отзывов участников

Всем привет!

В ИТ и в разработке ПО я не новичок, однако с миром Java не пересекался. Java Core изучал самостоятельно, но посмотрев на разгул фреймворков и спецификаций в Java EE, решил, что будет быстрее и эффективнее подписаться на какой-нибудь курс. Тут как раз встретился на просторах сети Topjava. Впечатлило количество технологий, при этом технологий востребованных на рынке – вывод делал по анализу вакансий на хедхантерских сайтах. Также плюсом Topjava виделось обучение через разработку веб проекта. Изучать программирование теоретически – бесполезная трата времени. Подписался на курс с проверкой заданий. Три месяца пролетели в активном кодинге и изучении нового. В целом остался очень и очень доволен.

Считаю, что необходимо проходить этот курс с проверкой заданий. Код ревью дает обратную связь от разработчика с огромным опытом в Java. Всегда с большим интересом и нетерпением ждал проверок и получил массу полезных рекомендаций и комментариев по своему коду. Григорий, как истинный джавист, уделяет большое внимание качеству кода и рефакторингу. Подытоживая, рекомендую Topjava всем, кто готов погрузится в сложный, но интересный мир Java Enterprise. Для оптимальной отдачи от проекта нужна база в Java и программировании.

Григорию спасибо! Всем участникам проекта удачи и успеха!
Дмитрий Холодилов