Проходил 30 августа в 20:00

Открытый вебинар "Разработчик Java Enterprise"
CDI in action

Открытый вебинар онлайн

В рамках вебинара слушатели приобретут практические навыки работы с одной из ключевых спецификаций стека JavaEE - Contexts and Dependency Injection 2.0.
Разберутся в основополагающих паттернах IoC и DI для лучшего понимания ее внутреннего устройства.
На примере референсной имплементации Weld познакомятся с Managed Beans, способами их внедрения и определения контекста.
Узнают о таких возможностях данной спецификации, как перехватчики, декораторы и альтернативы.
Можно просто смотреть вебинар, а можно и заняться практикой. Для этого необходимо иметь установленную среду разработки (IntelliJ IDEA, Eclipse, NetBeans, etc), развернуть сервер приложений GlassFish5.
Преподаватель
Виталий Иванов

Запись

О курсе

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

Работа над проектом.

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

Виталий Иванов
Опыт профессиональной разработки с 2007 года.
Во время обучения в Самарском Государственном Университете участвовал в создании автоматизированной системы на платформе J2EE. На протяжении 2009 года успел поучаствовать в проекте для автоматизации процессов госкорпорации «Роскосмос».
С 2010 года принимает активное участие в разработке и развитии информационных систем ООО «Русфинанс Банка» на базе стека JavaEE.
На текущий момент состоит в Scrum-команде, ответственной за разработку клиент-серверного приложения «Инфо-Банк». Участвует в инновационных проектах компании.

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