Расписание
27.09: Старт проекта
Сбор группы в Slack
Проверка домашнего задания вступительного занятия (для участников с проверкой решения присылать до 02.10).
04.10: 1-е занятие
Разбор домашнего задания вступительного занятия (вместе с Optional)
Обзор используемых в проекте технологий. Интеграция ПО
Maven
WAR. Веб-контейнер Tomcat. Сервлеты
Логирование
Уровни и зависимости логгирования. JMX
Домашнее задание 1-го занятия (HW1 + Optional)
11.10: 2-е занятие
Разбор домашнего задания HW1 + Optional
Библиотека vs Фреймворк. Стандартные библиотеки Apache Commons, Guava
Слои приложения. Создание каркаса приложения
Обзор Spring Framework. Spring Context
Пояснения к HW2. Обработка Autowired
Домашнее задание (HW2 + Optional)
18.10: 3-е занятие
Разбор домашнего задания HW2 + Optional
Жизненный цикл Spring контекста
Тестирование через JUnit
Spring Test
Базы данных. Обзор NoSQL и Java persistence solution без ORM
Настройка Database в IDEA
Скрипты инициализации базы. Spring Jdbc Template
Подготовка тестовых данных и тестирование UserService
Логирование тестов
Домашнее задание (HW3 + Optional)
25.10: 4-е занятие
Разбор домашнего задания HW3 + Optional
Методы улучшения качества кода
Spring: инициализация и популирование DB
Подмена контекста при тестировании
ORM. Hibernate. JPA
Поддержка HSQLDB
Домашнее задание (HW4 + Optional)
01.11: 5-е занятие
Разбор вопросов
Разбор домашнего задания HW4 + Optional
Транзакции
Профили Maven и Spring
Пул коннектов
Spring Data JPA
Spring кэш
Домашнее задание (HW5 + Optional)
08.11: 6-е занятие
Разбор домашнего задания HW5 + Optional
Кэш Hibernate
Spring Web
JPS, JSTL, internationalization
Динамическое изменение профиля при запуске
Конфигурирование Tomcat через maven plugin. Jndi-lookup
Spring Web MVC
Spring Internationalization
Домашнее задание (HW6 + Optional)
22.11: 7-е занятие
Разбор домашнего задания HW6 + Optional
Автогенерация DDL по модели
Тестирование Spring MVC
REST контроллеры
Тестирование REST контроллеров. Jackson
jackson-datatype-hibernate. Тестирование через матчеры
Тестирование через SoapUi. UTF-8
Домашнее задание (HW7 + Optional)
29.11: 8-е занятие
Разбор домашнего задания HW7 + Optional
WebJars. jQuery и JavaScript frameworks
Bootstrap
AJAX. Datatables. jQuery
jQuery notifications plugin
Добавление Spring Security
Домашнее задание (HW8 + Optional)
06.12: 9-е занятие
Разбор домашнего задания HW8 + Optional
Spring Binding
Spring Validation
Перевод DataTables на Ajax
Форма login / logout
Реализация собственного провайдера авторицазии
Принцип работы Spring Security. Проксирование
Spring Security Test
Cookie. Session
Домашнее задание (HW9 + Optional)
13.12: 10-е занятие
Разбор домашнего задания HW10 + Optional
Spring Security Taglib. Method Security Expressions
Интерсепторы. Редактирование профиля. JSP tag files
Форма регистрации
Обработка исключений в Spring
Encoding password
Защита от межсайтовой подделки запросов (CSRF)
Домашнее задание (HW10)
20.12: Заключительное занятие
Разбор домашнего задания HW10 + Optional
Локализация datatables, ошибок валидации
Защита от XSS (Cross Site Scripting)
Обработка ошибок 404 (NotFound)
Доступ к AuthorizedUser
Ограничение модификации пользователей
Деплой приложения в Heroku
Собеседование. Разработка ПО
Возможные доработки приложения
Код проекта постоянно рефакторится: появились настройки пользователя, сохранения собственных типов в Hibernate, работа с java 8 (time API, Lambda, Streaming), модальные окна bootstrap, переключение локали, JsonView и Validation groups, сильно уменьшено количество и упрощена работа с java script. Появилась логика фильтрации таблицы и сброс фильтра. В каждом уроке добавляются ответы на ваши вопросы по занятию, дополнительные домашние задания и подсказки по выполнению домашних заданий.