Начало занятий 13 сентября

Разработчик Java Enterprise

Общая стоимость: 43 000 ₽
В месяц: 12 500 ₽
4 часа в неделю
4 месяца
Программа курса
Модуль 1
Контейнеры, уровень данных
Модуль 2
Web-профиль
Модуль 3
SOA
Модуль 4
Бизнес-логика
Модуль 5
Проект
Контейнеры, уровень данных
Данный блок дает возможность прокачать навыки развертывания разработческих окружений при работе со стеком технологий JavaEE, позволяет сформировать общее представление об архитектуре современных приложений, а также научит разрабатывать приложения, способные интегрироваться с СУБД и обрабатывать данные, используя широкоиспользуемые форматы данных – XML и JSON.
Вводное занятие. Знакомство со стеком JavaEE
Обзор и цель курса. Многоуровневая архитектура приложения: обзор спецификации JavaEE/JakartaEE, web и full-профили. Области применения и вендоры. UML-проектирование.
13 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Основные модели приложения. Различия между архитектурными подходами. Тонкий и толстый клиент. Выделение слоев на примере информационной системы..
JavaEE-окружения
Контейнеры и сервера приложений. Tomcat vs GlassFish. Конфигурирование и администрирование, мониторинг и профилирование, remote debugging. Embedded-режим работы. Типичная структура артефакта приложения. Дескриптор развертывания. Подготовка dev-окружения.
17 сентября, 20:00 — 21:30
Работа с базами данных. JDBC vs JPA
Реляционная СУБД. SQL, stored procedure, PL/SQL. Архитектура JDBC. Соединение с базой данных. Драйверы СУБД и их менеджер. Запросы Statement, PreparedStatement и CallableStatement. Транзакции и автокоммит. Работа с СУБД в рамках JavaEE-окружения. ConnectionPool. ORM. Обзор спецификации JPA. Паттерн DAO.
20 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Проектирование предметной области. Схема СУБД. DML, DDL. Работа с SQL, PL/SQL посредством JDBC..
Обработка XML
Язык XML. JAXP и JAXB. Валидация и XSD. Выражения и функции XPath.
24 сентября, 20:00 — 21:30
Парсинг JSON
Структура JSON. JSONP и JSONB. JSONSchema. JSONPath. Конвертация XML-JSON. Работа с YAML.
27 сентября, 20:00 — 21:30
Домашние задания: 1
ДЗ
. Генерация и модификация XML. Поиск и извлечение данных в XML. Сериализация/десериализация JSON-данных..
Web-профиль
Данный блок курса нацелен на изучение особенностей разработки веб-приложений с использованием JavaEE. Он включает в себя изучение фронтенд-технологий и получение навыков работы с HTML, CSS, JavaScript. Также в рамках данного блока детально рассматриваются технологические возможности Java для реализации Интернет-решений. На примере зарекомендовавших фреймворков и библиотек (GWT, Struts, JQuery и т.д.) будут рассмотрены возможности расширения клиентских возможностей разрабатываемых веб-приложений.
Основы веба. Статичный и динамичный HTML
World Wide Web. URI, URL, URN. Протокол HTTP/s. Client API. HTML5, JS, CSS3, AJAX. Парсер Jsoup. Проект Nashorn.
1 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Вёрстка веб-контента и его стилизация. Переходы между страницами. Вычисления на клиенте.
Client Layer
Обзор существующих JS-фреймворков. Клиентский и серверный рендеринг DOM. Архитектура Single Page Application. Возможности GWT: UIBinder, RPC, i18n и прочее. Bean Validation.
4 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Исполнение клиентской логики средствами JS. Валидация входных данных. Асинхронные запросы. JSONP..
Servlet API
Схема взаимодействия запрос/ответ. Методы доступа HTTP и их назначение. Коды состояний ответов. Сервлет и его жизненный цикл. Сессионность. Параметры запроса. Заголовки запроса/ответа. Cookie. Контекст сервлета. Проблемы многопоточности. Server PUSH. Server Sent Events.
8 октября, 20:00 — 21:30
Взаимодействие сервлетов
Фильтры и их жизненный цикл. WebEvents и слушатели. Servlet Collaboration. Диспетчеризация запросов. Servlet Thread Model и асинхронность. Обеспечение безопасности.
11 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Генерация динамического контента на базе пользовательских данных и входящих параметров. Файловые вложения. Перенаправления запросов. Работа с пользовательскими cookies..
Серверные страницы Java
Назначение JSP. Основные JSP-элементы: scripting, directives, actions, EL. Встроенные объекты. JSP-процессинг и жизненный цикл.
15 октября, 20:00 — 21:30
Пользовательские теги
Кастомные JSP-теги. Обработчики тегов. Tag Library Descriptor. Вложенность тегов.
18 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Динамические серверные страницы. Работа с кодировками. Трансляция и компиляция JSP. Обработка ИС во время генерации страницы. Язык выполнения..
Шаблонизаторы
JSTL. Шаблонизаторы Freemarker и Mustache.
22 октября, 20:00 — 21:30
Web Frameworks
Шаблон проектирования MVC. Struts2 vs JSF. Паттерн MVP. GWT Activity/Places.
25 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
MVC-веб проект. Action. Конфигурирование struts.xml.
Веб-сокеты
HTTP vs WS. Http Upgrade. Схема ws/wss. Клиент-сервер в технологии вебсокетов. Форматы сообщений. Encoder/Decoder. Области применения.
29 октября, 20:00 — 21:30
Непрерывная интеграция
Java Build Tools. CI/CD. Jenkins. Контейнеризация средствами Docker.
1 ноября, 20:00 — 21:30
SOA
Сервис-ориентированная архитектура (SOA). Этот блок курса призван познакомить слушателя с возможностями проектирования и создания сервисно-ориентированной архитектуры с использованием протоколов REST и SOAP на платформе Java. Отдельное внимание уделяется вопросу документирования подобных сервисов и как они могут облегчить жизнь при интеграции с внешними командами.
SOAP-вебсервисы
Протокол SOAP. JAX-WS. Клиент и обработка исключений. WSDL.
5 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Самописный REST API.
RESTful-сервисы
Обзор SOA. REST и принципы построения API. Сравнение с SOAP. JAX-RS и Jersey. Обеспечение безопасности.
8 ноября, 20:00 — 21:30
Расширенные возможности JAX-RS
JAX-RS Client. Асинхронный и реактивный JAX-RS. JavaEE Concurrency. WADL. Библиотека Swagger. Проблемы REST.
12 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Интеграция со сторонними сервисами..
Бизнес-логика
Данный блок курса посвящен вопросам инкапсуляции бизнес-логики в приложении JavaEE. Слушатель познакомится и получит навыки работы с основными типами Enterprise Java бинов, принимая во внимание области их применения. Также будут рассмотрены вопросы транзакционности исполняемой бизнес-логики, сквозной функциональности и повторного переиспользования.
Основы EJB
Архитектура EJB.Сессионные бины: Stateless, Stateful. Singleton. Local, LocalBean vs Remote. Поддержка асинхронности. TimerServiceAPI.
15 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Инкапсуляция бизнес-логики и ее переиспользование. Stateless и Stateful session beans. MDB. Entity Beans..
Персистентность и транзакционность
Жизненный цикл Entity. PesistenceUnit и PersistenceContext. Persistence.xml. Методы-колбэки сущностей. Работа с транзакциями JTA. ACID. Менеджер транзакций и атрибуты. Ручное и декларативное управление границами транзакций.
19 ноября, 20:00 — 21:30
Аспекто-ориентированный подход
Кросс-функциональность. Основные элементы AOP. JavaEE Interceptors. AspectJ.
22 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сквозная функциональность. Валидация входных параметров и результата..
Внедрение зависимостей
IoC-контейнеры. Паттерн DI. Спецификация CDI. Injection Points. Квалификаторы. Типы контекстов. Методы продюсеры. Альтернативы, перехватчики, декораторы, стереотипы, наблюдатели. AsyncEvents. Сравнение и синергия с EJB.
26 ноября, 20:00 — 21:30
JMS
MOM-сервера. Архитектура JMS. Структура сообщения. Queue и Topic. Синхронный и асинхронный режимы получения сообщений. Message-Driven бины.
29 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обработка очередей..
Генерация отчетности
JasperReport и JasperSoft Studio. JavaMail.
3 декабря, 20:00 — 21:30
Проект
Выполнение проектной работы можно рассматривать как этап создания портфолио для будущей карьеры слушателя. Потенциальный работодатель сможет оценить профессиональный уровень и навыки владениями технологиями, рассматриваемыми в данном курсе. Также успешно выполнив работу, слушатель научиться решать коммерческие задачи практически любой сложности, при этом получив навыки командной разработки и поработав действительно с актуальными технологиями, фреймворками и инструментарием.

Работа над проектом.
Минимальные требования для прохождения курса
Входными требованиями для изучения курса «Разработчик JavaEE» являются уверенное знание платформы JavaSE и поверхностное понимание смежных технологий, среди которых следует выделить базы данных, сетевые технологии, а также знание веба. Поскольку процесс обучения подразумевает командную разработку, то важным является умение работать с современными системами контроля версий (в частности, Git) и наличие собственного профиля на одном из доступных репозиториев (например, Github). Также в рамках обучения, помимо получения опыта разработки ПО, потребуется развитие навыков проектирования приложений и моделирования их архитектуры, поэтому будет плюсом знакомство с языком UML и его наиболее распространенными типами диаграмм (классов, прецедентов, последовательности и т.д.), а также основными паттернами и принципами проектирования (GoF, GRASP, SOLID, etc). Из личностных качеств от слушателя ожидаются желание учиться, наличие аналитических качеств, умение быстро находить релевантную информацию, ну и конечно же быть готовым работать в команде.
Расписание
JavaEE-2018-09 (cтарт 13 сентября)
13 сентября, четверг 20:00 — 21:30
17 сентября, понедельник 20:00 — 21:30
Преподаватели
Виталий Иванов
Опыт профессиональной разработки с 2007 года.
Во время обучения в Самарском Государственном Университете участвовал в создании автоматизированной системы на платформе J2EE. На протяжении 2009 года успел поучаствовать в проекте для автоматизации процессов госкорпорации «Роскосмос».
С 2010 года принимает активное участие в разработке и развитии информационных систем ООО «Русфинанс Банка» на базе стека JavaEE.
На текущий момент состоит в Scrum-команде, ответственной за разработку клиент-серверного приложения «Инфо-Банк». Участвует в инновационных проектах компании.

Проводит корпоративные обучающие workshop-ы для сотрудников.
С 2012 года - преподаватель и научный руководитель по образовательным курсам «Программирование на Java», «Разработка веб и бизнес приложений на Java», а также «Основ методологий разработки и проектирования ПО» в Московском Технологическом Институте.
Отзыв
Александр Оруджев
Курс охватывает широкий набор тем, большинство из которых участвуют в домашних заданиях, а следовательно хорошо усваиваются в случае его (задания) выполнения.
Сами задания, как минимум объемны и иногда вполне себе сложны. Приходится много читать дополнительно, разбираться, задавать вопросы преподавателю (Виталию Иванову), который, к слову охотно идет на контакт.

Есть масса "организационных" недочетов, но т.к. это первый запуск курса на большую их часть можно закрыть глаза.
Лично мне портило жизнь, то, что платформа для вебинаров, на которой проходили последние несколько занятий, крайне чувствительна к качеству связи и не прощает ни одного потерянного пакета тут же реагируя фризом на 5-15 секунд.

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