[OTUS] Разработчик Java Enterprise
О курсе
Платформа JavaEE является спецификацией, описывающая архитектуру серверной платформы, включая всю необходимую документацию, для решения задач средних и крупных предприятий. Ключевой особенностью данного стека технологий является обеспечение работоспособности и переносимостиприложений на различных платформах, что достигается использованием возможностей языка программирования Java (вспоминая известный девиз WORA: writeonce, runanywhere).
Данная спецификация отлично подходит для создания веб-ориентированных приложений, предназначенных для использования в локальных и глобальных сетях. При этом область ее применения не ограничивается банковской и финансовой сферами, она также активно используется в областях e-commerce и e-business, при построении инфраструктурных систем, в решениях интеграционных сервис-провайдеров, для создания крупных Интернет-порталов и т.д.
Исходя из многообразия решаемых спецификацией задач, данный курс нацелен на получение специализированных знаний, связанных с различными областями её применения, а также на приобретение профессиональных навыков разработки программных комплексов масштаба предприятия.
В рамках курса рассматривается актуальная версия спецификации JavaEE7, компонентно-модульный подход которой позволяет изучить детально каждую технологию экосистемы JavaEE в отдельности.
По мере изучения курса также будут рассмотрены необходимые инструменты и практики, получившие широкое применениев мире Enterprise. Более того, слушатель научится писать поддерживаемый код, при этом освоив навыки командной разработки.
Первый блок
Контейнеры, уровень данных
Данный блок дает возможность прокачать навыки развертывания разработческих окружений при работе со стеком технологий JavaEE, позволяет сформировать общее представление об архитектуре современных приложений, а также научит разрабатывать приложения, способные интегрироваться с СУБД и обрабатывать данные, используя широкоиспользуемые форматы данных – XML и JSON.
Занятие 1: Вводное занятие. Знакомство со стеком JavaEE
Обзор и цель курса. Многоуровневая архитектура приложения: обзор стека JavaEE.
ДЗ
Основные модели приложения. Различия между архитектурными подходами. Тонкий и толстый клиент. Выделение слоев на примере информационной системы..
Занятие 2: JavaEE-окружение
Контейнеры и сервера приложений. Tomcat vs GlassFish. Конфигурирование. Дескриптор развертывания. Настройка dev-окружения. Разбор домашнего задания.
Занятие 3: Работа с уровнем данных. JDBC
Соединение с базой данных. Драйверы СУБД и их менеджер. SQL, PL/SQL. Запросы Statement, PreparedStatement и CallableStatement. Автокоммит. Connection Pool.
ДЗ
Проектирование предметной области. Схема СУБД. DML, DDL. Работа с SQL, PL/SQL посредством JDBC..
Занятие 4: Обработка XML
Язык XML. DOM и SAX парсеры. Валидация и XSD. Выражения XPath. Разбор домашнего задания.
Занятие 5: Обработка JSON
JAXB. Работа с JSON. JSONPath.
ДЗ
Генерация и модификация XML. Поиск и извлечение данных в XML. Сериализация/десериализация JSON-данных..
Второй блок
Web-профиль
Данный блок курса нацелен на изучение особенностей разработки веб-приложений с использованием JavaEE. Он включает в себя изучение фронтенд-технологий и получение навыков работы с HTML, CSS, JavaScript. Также в рамках данного блока детально рассматриваются технологические возможности Java для реализации Интернет-решений. На примере зарекомендовавших фреймворков и библиотек (GWT, Struts, JQuery и т.д.) будут рассмотрены возможности расширения клиентских возможностей разрабатываемых веб-приложений.
Занятие 6: Основы веба. Статичный HTML
Протокол HTTP/s (в том числе, v.2). URL. HTML5. Разбор домашнего задания.
ДЗ
Вёрстка веб-контента и его стилизация. Переходы между страницами. Вычисления на клиенте.
Занятие 7: DHTML
CSS, JS. События. AJAX. Кросс-доменные запросы и JSON-P. Средства разработчика: firebug, chrome inspector, fiddler. Разбор домашнего задания.
Занятие 8: Популярные JS-фреймворки
JQuery. Знакомство с возможностями GWT. UIBinder. Декларативное программирование.
ДЗ
Исполнение клиентской логики средствами JS. Валидация входных данных. Асинхронные запросы. JSONP..
Занятие 9: Servlet API
Схема взаимодействия запрос/ответ. Методы доступа HTTP. Сессионность. Параметры запроса. Заголовки запроса/ответа. Cookie. Контекст сервлета. Разбор домашнего задания.
Занятие 10: Обработка запросов
Фильтры, слушатели. Диспетчеризация запросов. Редирект. Асинхронность сервлета.
ДЗ
Генерация динамического контента на базе пользовательских данных и входящих параметров. Файловые вложения. Перенаправления запросов. Работа с пользовательскими cookies..
Занятие 11: Серверные страницы Java
Возможности JSP. Директивы page, include, taglib.Встроенные объекты. EL. Передача управления. Разбор домашнего задания.
Занятие 12: Пользовательские теги
Кастомные JSP-теги. Обработчик тегов. Вложенные теги.
ДЗ
Динамические серверные страницы. Работа с кодировками. Трансляция и компиляция JSP. Обработка ИС во время генерации страницы. Язык выполнения..
Занятие 13: Дополнения возможностей JSP
JSTL. Шаблонизаторы Freemarker. JSF. Разбор домашнего задания.
Занятие 14: MVC-фреймворки
Шаблоны проектирования MVC, MVP. Struts. Дополнения по GWT.
ДЗ
MVC-веб проект. Action. Конфигурирование struts.xml.
Занятие 15: Веб-сокеты
Уведомление об изменениях без клиентского запроса. Серверная и клиентская поддержка. Схема ws/wss. Разбор домашнего задания.
Занятие 16: Автоматизация деплоймента
Сборка проекта. Средства сборки: Ant, Maven, Gradle. Jenkins.
Третий блок
Сервис-ориентированная архитектура (SOA)
Этот блок курса призван познакомить слушателя с возможностями проектирования и создания сервисно-ориентированной архитектуры с использованием протоколов REST и SOAP на платформе Java. Отдельное внимание уделяется вопросу документирования подобных сервисов и как они могут облегчить жизнь при интеграции с внешними командами.
Занятие 17: REST-сервисы
REST. JAX-RS. Контейнер Jersey. WADL.
ДЗ
Самописный REST API.
Занятие 18: Самодокументируемые сервисы.
Библиотека Swagger. Разбор домашнего задания.
Занятие 19: Webservices
Протокол SOAP. JAX-WS. WSDL.
ДЗ
Интеграция со сторонними сервисами..
Четвертый блок
Бизнес-логика
Данный блок курса посвящен вопросам инкапсуляции бизнес-логики в приложении JavaEE. Слушатель познакомится и получит навыки работы с основными типами Enterprise Java бинов, принимая во внимание области их применения. Также будут рассмотрены вопросы транзакционности исполняемой бизнес-логики, сквозной функциональности и повторного переиспользования.
Занятие 20: Основы EJB
Знакомство EJB: Session, MessageDriven, Entity бины. Разбор домашнего задания.
ДЗ
Инкапсуляция бизнес-логики и ее переиспользование. Stateless и Stateful session beans. MDB. Entity Beans..
Занятие 21: Транзакционность
Работа с транзакциями JTA. Менеджер транзакций. Ручное и автоматическое управление. Декларативное управление. Разбор домашнего задания.
Занятие 22: Аспекто-ориентированный подход
Элементы AOP в EJB: interceptors.
ДЗ
Сквозная функциональность. Валидация входных параметров и результата..
Занятие 23: Внедрение зависимостей
Технология CDI. Разбор домашнего задания.
Занятие 24: JMS
Queue и P2P. Topic и Publisher-Subscriber. Синхронный и асинхронный режимы получения сообщений.
ДЗ
Обработка очередей.
Пятый блок
Доп. возможности
Этот блок курса посвящен таким важным аспектам любого приложения уровня Enterpise, как безопасности, интернационализации, генерации отчетности, отправки электронных писем. Слушатель также познакомиться и научиться использовать инструменты тестирования и логирования JavaEE-приложений.
Занятие 25: Безопасность
JAAS. LoginModule.Principal. jaas.config
ДЗ
Разработка безопасного веб-приложения..
Занятие 26: Распространенные уязвимости веб-приложений
OWASP. Разбор домашнего задания.
Занятие 27: Интернационализация и логирование
I18n. Log4j.
ДЗ
Разработка многоязычного веб-приложения..
Занятие 28: Генерация отчетов
JasperReports, iReport, scriptlets.Apache POI. Разбор домашнего задания.
Занятие 29: Отправка email
JavaMail
ДЗ
Поддержка формирования отчетов и отправки писем в веб-приложении..
Занятие 30: Тестирование
Средства тестирования: JUnit, Selenium, REST Assured. Advanced REST Client. SOAP UI. Разбор домашнего задания.
Скрытое содержимое.
О курсе
Платформа JavaEE является спецификацией, описывающая архитектуру серверной платформы, включая всю необходимую документацию, для решения задач средних и крупных предприятий. Ключевой особенностью данного стека технологий является обеспечение работоспособности и переносимостиприложений на различных платформах, что достигается использованием возможностей языка программирования Java (вспоминая известный девиз WORA: writeonce, runanywhere).
Данная спецификация отлично подходит для создания веб-ориентированных приложений, предназначенных для использования в локальных и глобальных сетях. При этом область ее применения не ограничивается банковской и финансовой сферами, она также активно используется в областях e-commerce и e-business, при построении инфраструктурных систем, в решениях интеграционных сервис-провайдеров, для создания крупных Интернет-порталов и т.д.
Исходя из многообразия решаемых спецификацией задач, данный курс нацелен на получение специализированных знаний, связанных с различными областями её применения, а также на приобретение профессиональных навыков разработки программных комплексов масштаба предприятия.
В рамках курса рассматривается актуальная версия спецификации JavaEE7, компонентно-модульный подход которой позволяет изучить детально каждую технологию экосистемы JavaEE в отдельности.
По мере изучения курса также будут рассмотрены необходимые инструменты и практики, получившие широкое применениев мире Enterprise. Более того, слушатель научится писать поддерживаемый код, при этом освоив навыки командной разработки.
Первый блок
Контейнеры, уровень данных
Данный блок дает возможность прокачать навыки развертывания разработческих окружений при работе со стеком технологий JavaEE, позволяет сформировать общее представление об архитектуре современных приложений, а также научит разрабатывать приложения, способные интегрироваться с СУБД и обрабатывать данные, используя широкоиспользуемые форматы данных – XML и JSON.
Занятие 1: Вводное занятие. Знакомство со стеком JavaEE
Обзор и цель курса. Многоуровневая архитектура приложения: обзор стека JavaEE.
ДЗ
Основные модели приложения. Различия между архитектурными подходами. Тонкий и толстый клиент. Выделение слоев на примере информационной системы..
Занятие 2: JavaEE-окружение
Контейнеры и сервера приложений. Tomcat vs GlassFish. Конфигурирование. Дескриптор развертывания. Настройка dev-окружения. Разбор домашнего задания.
Занятие 3: Работа с уровнем данных. JDBC
Соединение с базой данных. Драйверы СУБД и их менеджер. SQL, PL/SQL. Запросы Statement, PreparedStatement и CallableStatement. Автокоммит. Connection Pool.
ДЗ
Проектирование предметной области. Схема СУБД. DML, DDL. Работа с SQL, PL/SQL посредством JDBC..
Занятие 4: Обработка XML
Язык XML. DOM и SAX парсеры. Валидация и XSD. Выражения XPath. Разбор домашнего задания.
Занятие 5: Обработка JSON
JAXB. Работа с JSON. JSONPath.
ДЗ
Генерация и модификация XML. Поиск и извлечение данных в XML. Сериализация/десериализация JSON-данных..
Второй блок
Web-профиль
Данный блок курса нацелен на изучение особенностей разработки веб-приложений с использованием JavaEE. Он включает в себя изучение фронтенд-технологий и получение навыков работы с HTML, CSS, JavaScript. Также в рамках данного блока детально рассматриваются технологические возможности Java для реализации Интернет-решений. На примере зарекомендовавших фреймворков и библиотек (GWT, Struts, JQuery и т.д.) будут рассмотрены возможности расширения клиентских возможностей разрабатываемых веб-приложений.
Занятие 6: Основы веба. Статичный HTML
Протокол HTTP/s (в том числе, v.2). URL. HTML5. Разбор домашнего задания.
ДЗ
Вёрстка веб-контента и его стилизация. Переходы между страницами. Вычисления на клиенте.
Занятие 7: DHTML
CSS, JS. События. AJAX. Кросс-доменные запросы и JSON-P. Средства разработчика: firebug, chrome inspector, fiddler. Разбор домашнего задания.
Занятие 8: Популярные JS-фреймворки
JQuery. Знакомство с возможностями GWT. UIBinder. Декларативное программирование.
ДЗ
Исполнение клиентской логики средствами JS. Валидация входных данных. Асинхронные запросы. JSONP..
Занятие 9: Servlet API
Схема взаимодействия запрос/ответ. Методы доступа HTTP. Сессионность. Параметры запроса. Заголовки запроса/ответа. Cookie. Контекст сервлета. Разбор домашнего задания.
Занятие 10: Обработка запросов
Фильтры, слушатели. Диспетчеризация запросов. Редирект. Асинхронность сервлета.
ДЗ
Генерация динамического контента на базе пользовательских данных и входящих параметров. Файловые вложения. Перенаправления запросов. Работа с пользовательскими cookies..
Занятие 11: Серверные страницы Java
Возможности JSP. Директивы page, include, taglib.Встроенные объекты. EL. Передача управления. Разбор домашнего задания.
Занятие 12: Пользовательские теги
Кастомные JSP-теги. Обработчик тегов. Вложенные теги.
ДЗ
Динамические серверные страницы. Работа с кодировками. Трансляция и компиляция JSP. Обработка ИС во время генерации страницы. Язык выполнения..
Занятие 13: Дополнения возможностей JSP
JSTL. Шаблонизаторы Freemarker. JSF. Разбор домашнего задания.
Занятие 14: MVC-фреймворки
Шаблоны проектирования MVC, MVP. Struts. Дополнения по GWT.
ДЗ
MVC-веб проект. Action. Конфигурирование struts.xml.
Занятие 15: Веб-сокеты
Уведомление об изменениях без клиентского запроса. Серверная и клиентская поддержка. Схема ws/wss. Разбор домашнего задания.
Занятие 16: Автоматизация деплоймента
Сборка проекта. Средства сборки: Ant, Maven, Gradle. Jenkins.
Третий блок
Сервис-ориентированная архитектура (SOA)
Этот блок курса призван познакомить слушателя с возможностями проектирования и создания сервисно-ориентированной архитектуры с использованием протоколов REST и SOAP на платформе Java. Отдельное внимание уделяется вопросу документирования подобных сервисов и как они могут облегчить жизнь при интеграции с внешними командами.
Занятие 17: REST-сервисы
REST. JAX-RS. Контейнер Jersey. WADL.
ДЗ
Самописный REST API.
Занятие 18: Самодокументируемые сервисы.
Библиотека Swagger. Разбор домашнего задания.
Занятие 19: Webservices
Протокол SOAP. JAX-WS. WSDL.
ДЗ
Интеграция со сторонними сервисами..
Четвертый блок
Бизнес-логика
Данный блок курса посвящен вопросам инкапсуляции бизнес-логики в приложении JavaEE. Слушатель познакомится и получит навыки работы с основными типами Enterprise Java бинов, принимая во внимание области их применения. Также будут рассмотрены вопросы транзакционности исполняемой бизнес-логики, сквозной функциональности и повторного переиспользования.
Занятие 20: Основы EJB
Знакомство EJB: Session, MessageDriven, Entity бины. Разбор домашнего задания.
ДЗ
Инкапсуляция бизнес-логики и ее переиспользование. Stateless и Stateful session beans. MDB. Entity Beans..
Занятие 21: Транзакционность
Работа с транзакциями JTA. Менеджер транзакций. Ручное и автоматическое управление. Декларативное управление. Разбор домашнего задания.
Занятие 22: Аспекто-ориентированный подход
Элементы AOP в EJB: interceptors.
ДЗ
Сквозная функциональность. Валидация входных параметров и результата..
Занятие 23: Внедрение зависимостей
Технология CDI. Разбор домашнего задания.
Занятие 24: JMS
Queue и P2P. Topic и Publisher-Subscriber. Синхронный и асинхронный режимы получения сообщений.
ДЗ
Обработка очередей.
Пятый блок
Доп. возможности
Этот блок курса посвящен таким важным аспектам любого приложения уровня Enterpise, как безопасности, интернационализации, генерации отчетности, отправки электронных писем. Слушатель также познакомиться и научиться использовать инструменты тестирования и логирования JavaEE-приложений.
Занятие 25: Безопасность
JAAS. LoginModule.Principal. jaas.config
ДЗ
Разработка безопасного веб-приложения..
Занятие 26: Распространенные уязвимости веб-приложений
OWASP. Разбор домашнего задания.
Занятие 27: Интернационализация и логирование
I18n. Log4j.
ДЗ
Разработка многоязычного веб-приложения..
Занятие 28: Генерация отчетов
JasperReports, iReport, scriptlets.Apache POI. Разбор домашнего задания.
Занятие 29: Отправка email
JavaMail
ДЗ
Поддержка формирования отчетов и отправки писем в веб-приложении..
Занятие 30: Тестирование
Средства тестирования: JUnit, Selenium, REST Assured. Advanced REST Client. SOAP UI. Разбор домашнего задания.
Скрытое содержимое.
https://otus.ru/lessons/JEE/