Главная » Каталог компьютерных курсов » Программирование на Java (продвинутый курс)

Программирование на Java (продвинутый курс)

Программирование на Java

Компьютерный курс “Программирование на Java (продвинутый курс)” предназначен для ознакомления слушателей на углубленном уровне с основными технологиями, применяемыми при программировании на языке Java. Для успешного освоения курса слушатель должен уметь иметь знания Java SE в рамках курса "Основы программирования на Java", представление о html, JavaScript.

При успешном окончании курса слушатели получат навыки разработки приложения основанные на архитектуре Java EE, с использованием среды Eclipse и сервера веб-приложений Tomcat. Курс позволит систематизировать знания по теме, освоить новые приёмы и методы программирования, а также при необходимости подготовиться к интервью при трудоустройстве. Занятия проходят в режиме тренинга.

Программа курса “Программирование на Java”
(продвинутый курс)

Занятие 1. Введение.
Занятие 2. Введение в Web-программирование. Основные технологии.
Занятие 3. Введение в Web-программирование на Java.
Занятие 4. Servlet API.
Занятие 5. Servlet API – окончание.
Занятие 6. Java Server Pages.
Занятие 7. Введение в теорию баз данных.
Занятие 8. Введение в JDBC API.
Занятие 9. JSP Model-2 и MVC шаблон.
Занятие 10. Расслоение системы. Введение DAO и Service слоев в приложение.
Занятие 11. Пользовательские тэги. JSTL. Интернационализация приложений.
Занятие 12. Фильтры и слушатели в Servlet API. Организация логирования в приложении.
Занятие 13. Упрощение MVC архитектуры приложения. Введение в MVC фреймворки. Apache Struts-2.
Занятие 14. Обзор других типов клиент-серверных приложений.
Занятие 15. Обзор Rich Internet Applications (RIA). Технология AJAX.
Занятие 16. Введение в тестирование программ.
Занятие 17. Автоматизация сборки приложений на платформе Java. Обзор инструментов Apache ANT и Apache Maven.
Занятие 18. Последнее занятие.

Полная программа курса “Программирование на Java (продвинутый курс)”

Занятие 1. Введение.

  • Программа курса.
  • Лабораторные работы. Правила проверки и приема работ.
  • Курсовой проект. Требования к выполнению проектов.
  • Обзор литературы, рекомендуемой к прочтению до начала курса.
  • Темы из Java Standard Edition, которые нужно знать до начала курса.
  • Установка программного обеспечения – JDK и Eclipse IDE.
  • JDK – основная информация. Отличие JDK от JRE.
  • Отличия 32-х битного и 64-х битного JDK.
  • Обзор спецификаций JSE, JEE и JME.
  • Обзор Eclipse IDE:
    • Запуск Eclipse.
    • Понятие Eclipse Workspace.
    • Создание нового проекта.
    • Импортирование существующих проектов.
    • Eclipse Perspectives.
    • Eclipse Views.
    • Основные настройки Eclipse.
  • Повторение наиболее важных тем JSE-курса:
    • Объектно-ориентированное программирование.
    • Исключительные ситуации.
    • Коллекции.
    • Reflection API и т. д.

Занятие 2. Введение в Web-программирование. Основные технологии.

  • Введение в архитектуру клиент-серверных приложений
    • Виды приложений – Desktop VS Client-Server.
    • Недостатки Desktop-приложений.
    • Client-Server: Клиент-серверное приложение.
    • Отличия клиент-серверных приложений.
    • Достоинства клиент-серверного приложения.
    • Недостатки клиент-серверного приложения.
  • Основные типы клиент-серверных приложений
    • Thin Client - «Тонкий» клиент.
    • Fat Client - «Толстый» клиент.
    • RIA - Rich Internet Application
  • HTTP протокол – основные понятия.
  • HTML – HyperText Markup Language.
  • CSS – Cascading Style Sheets.
  • JavaScript.
  • Работа с DOM-моделью.
  • XML – eXtensible Markup Language.
  • JSON – JavaScript Object Notation.

Занятие 3. Введение в Web-программирование на Java.

  • Сервер приложений Apache Tomcat
    • Установка.
    • Настройка.
    • Запуск и остановка сервера.
    • Загрузка приложения на сервер (Deployment).
    • Доступ к приложению из браузера – первый URL своими руками :).
    • Обзор каталогов и файлов сервера.
  • Импорт сервера Tomcat в Eclipse IDE.
  • Запуск сервера в режиме выполнения и в режиме отладки.
  • Обзор структуры Web-приложений на Java.
  • Отличия статических и динамических Web-приложений - первый взгляд на сервлет.

Занятие 4. Servlet API.

  • Введение в Servlet API. Обзор архитектуры сервлетов.
  • Жизненный цикл сервлетов – методы init(), destroy() и service().
  • Метод service() – точка входа в сервлет.
  • Метод service(), поля сервлета и многопоточность.
  • Методы doGet(), doPost() и т. д. Альтернатива методу service().
  • Основные объекты при работе с сервлетами
    • Объект ServletRequest – запрос клиента.
    • Объект ServletResponse – ответ клиенту.
    • Объект HttpSession – сохраним состояние.
    • Объект ServletContext – окружение сервлета.
    • Объект ServletConfig – пара слов о маргиналах.
  • Объект RequestDispatcher.
  • Forward VS Redirect.
  • service() VS doGet()/doPost(). Шаблон POST-REDIRECT-GET
  • Атрибуты Web-приложения
    • Атрибуты – это данные!
    • Отличие атрибутов от параметров Request-а.
    • Request-атрибуты.
    • Session-атрибуты.
    • Context атрибуты.
  • Кодировки в Web-приложении
    • Кодировка HTML-страницы.
    • Кодировка Request-а.
    • Колировка Respons-а.
    • Кодировка текстового документа!
  • Недостатки серветов.

Занятие 5. Servlet API – окончание.

  • Закрепление тем занятий 1-4

Занятие 6. Java Server Pages.

  • Введение в JSP. Первый пример. Первый восторг!
  • Обзор архитектуры JSP.
  • Жизненный цикл JSP.
  • Компоненты JSP.
  • Типы скриплетов
    • Скриплет.
    • Скриплет-объявление.
    • Скриплет-выражение.
    • Скриплет-комментарий.
  • Директивы
    • page.
    • include.
    • taglib.
  • Стандартные тэги JSP.
  • Неявные объекты JSP.
  • Expression Language (EL).
  • О недостатках JSP.

Занятие 7. Введение в теорию баз данных.

  • Установка и настройка сервера MySQL.
  • Общее введение в теорию баз данных.
  • Преимущества баз данных перед другими типами хранилищ.
  • Основные понятия теории баз данных
    • Таблица.
    • Столбец.
    • Строка (запись).
    • Первичный ключ (Primary Key).
    • Внешний ключ (Foreign Key).
    • Отношения между таблицами.
  • Обзор языка SQL
    • Data Definition Language (DDL).
    • Data Manipulation Language (DML).
  • Понятие транзакций.
  • Обзор сохраненных процедур.
  • Понятие схемы базы данных. Скрипт схемы.
  • Миграции базы данных. Когда скрипт перестает работать.
  • Обзор утилит для работы с БД - DB Visualizer, Heidy SQL, JetBrains DataGrip.

Занятие 8. Введение в JDBC API.

  • Введение в архитектуру JDBC.
  • Драйвер к базе данных.
  • Соединение с БД. Объект Connection.
  • Выполнение SQL запросов. Объекты Statement
    • Statement
    • Prepared Statement
    • Callable Statement
  • Обработка данных. Объект ResultSet.
  • Мета-информация о базе данных. Объекты ResultSetMetaData и DatabaseMetaData.
  • Понятие пула соединений с БД (Connection Pool).
  • Объект DataSource.
  • Обзор библиотеки Apache DBCP.
  • Конфигурация DataSource на сервере Tomcat с использованием JNDI.
  • Транзакции в теории баз даных. Табота с транзакциями в JDBC.

Занятие 9. JSP Model-2 и MVC шаблон.

  • Краткий обзор JSP Model-1.
  • Недостатки JSP Model-1.
  • Переход к JSP Model-2.
  • Паттерн Model-View-Controller (MVC).
  • Спецификация JavaBeans.
  • Недостатки MVC паттерна.
  • Паттерн Front Controller.

Занятие 10. Расслоение системы. Введение DAO и Service слоев в приложение.

  • Дальнейшее рассмотрение MVC-шаблона. «Перегруженность» компонента Model.
  • Введение дополнительных слоев в компонент Model
    • DAO (Data Access Object) слой.
    • Service-слой или слой бизнес-логики.
  • Обсуждение сфер ответственности слоев.
  • Передача параметров между слоями.
  • Обработка Исключений в рамках каждого слоя. Проброс исключений между слоями.
  • Передача результатов между слоями.
  • Обсуждение дальнейшего расслоения программных систем.
  • Несколько слов о вредности «Слоеной» архитектуры.

Занятие 11. Пользовательские тэги. JSTL. Интернационализация приложений.

  • Введение в теорию пользовательских тэгов.
  • Тэги без поддержки тела. Класс TagSupport.
  • Подключение тэгов к JSP.
  • Tag Lib Definition.
  • Тэги с поддержкой тела. Класс BodyTagSupport.
  • Обзор тэгов JSTL.
  • Интернационализация Web приложений.

Занятие 12. Фильтры и слушатели в Servlet API. Организация логирования в приложении.

  • Фильтры.
  • Слушатели.
  • Введение в логирование приложений
    • Java Logging.
    • Log4J.
    • SLF4J

Занятие 13. Упрощение MVC архитектуры приложения. Введение в MVC фреймворки. Apache Struts-2.

  • Обсуждение недостатков самодельного MVC решения. Анти-паттерны.
  • Введение в мир фреймворков. Отличие фреймворка от библиотеки.
  • Загрузка фреймворка Struts-2. Дополнительеые библиотеки фреймворков.
  • Структура приложения на основе Struts-2.
  • Struts.xml – конфигурационный файл приложения.
  • Struts Actions.
  • Struts Views.
  • Struts Tags.
  • Struts Interceptors.
  • Валидация данных при помощи Struts.

Занятие 14. Обзор других типов клиент-серверных приложений.

  • Сетевое программирование. Пакет java.net.*
  • Обзор технологии Apache HttpComponents.
  • Обзор технологии RMI.
  • Web-сервисы в Java. SOAP-сервисы.

Занятие 15. Обзор Rich Internet Applications (RIA). Технология AJAX.

  • Недостатки тонкого клиента.
  • Rich Internet Applications – придание динамики вашему приложению.
  • Технология AJAX. Объект XMLHttpRequest.
  • JSON – новый формат данных.
  • Использование JQuery для отправки AJAX-запросов.
  • Web-сервисы в Java. REST-сервисы.
  • Сравнение SOAP и REST сервисов.

Занятие 16. Введение в тестирование программ.

  • Ошибки ПО – основная проблема разработчика.
  • Введение в теорию автоматического тестирования ПО.
  • TDD – Test Driven Development. 3 закона TDD.
  • Unit-тесты. Фреймворм JUnit.
  • Integration-тесты. Фреймворк DBUnit.
  • Автоматизированное тестирование. Проект Selenium.

Занятие 17. Автоматизация сборки приложений на платформе Java. Обзор инструментов Apache ANT и Apache Maven.

  • Apache ANT
  • Apache Maven

Занятие 18. Последнее занятие.

  • Итоги. Сдача проектов.