Курс: Разработчик приложений и баз данных на Java и Postgre SQL

Курс: Разработчик приложений и баз данных на Java и Postgre SQL

Курс: Разработчик приложений и баз данных на Java и Postgre SQL


Продолжительность курса: 216 ак. ч.

Описание курса:
Профессия разработчика последние годы традиционно входит в топ самых востребованных. Области, в которых трудятся разработчики, расширяются, поэтому профессия не потеряет своей актуальности еще долгое время. Ведь работа с массивами информации и мобильные приложения, которым посвящена программа, давно уже стали важной частью бизнеса.
Расширяется и список требований к этим сотрудникам: разработчик должен владеть программированием, UX\UI-дизайном, знать прототипирование и т.д. Разнообразие инструментов, которые есть на рынке, очень велико. Один из них – Java, самый популярный объектно-ориентированный язык программирования. Он используется для создания серверного программного обеспечения, прикладных программ, разработки веб-сайтов, игр и т.д. Другой – PostgreSQL, реляционная база данных с открытым кодом, которая завоевала популярность своей гибкостью и целостностью.

Аудитория:
• Java-разработчики.
• Программисты
• ИТ-специалисты

Необходимая подготовка:
Успешное окончание курса «Основы программирования и баз данных» или эквивалентная подготовка.

Программа курса:
Часть 1. Программирование на Java. Уровень 1. Базовый курс
Модуль 1. Введение в Java технологии
• Особенности языка программирования Java.
• Описание Java технологий.
• Использование интегрированной среды разработки (IDE).
Практика:
• Установка JDK/IDE, настройка параметров среды.

Модуль 2. Система типов Java
• Языковые лексемы Java.
• Ссылочная модель в Java и основы размещения/удаления объектов в памяти.
• Примитивные (простые) типы данных.
• Операция присваивания.
• Арифметические операции.
• Литералы и константы.
• Преобразования простых типов.
• Форматированный вывод данных.
Практика:
• Операции с числами и форматированный вывод.

Модуль 3. Операторы (statement) ветвления
• Написание выражений (expression).
• Операции сравнения.
• Логические операции.
• Команды ветвления (if, switch).
• Операция условие ( ? : ).
• Выражение switch.
Практика:
• Ввод данных с клавиатуры и нахождение максимума.
• Создание простейшего калькулятора.

Модуль 4. Операторы (statement) циклов
• Битовые операции.
• Приоритеты операций в Java.
• Оператор while.
• Оператор for и for для структур данных.
• Управление порядком выполнения команд в циклах (break, continue и метки).
Практика:
• Проверка состояния битов целого числа.
• Печать таблицы ASCII.

Модуль 5. Создание и вызов методов
• Определение функции и метода.
• Best Practice при написании методов.
• Синтаксис определения и вызова методов.
• Аргументы, параметры и механизм передачи аргументов при вызове методов в Java.
• Возврат результата из метода.
• Перегрузка методов.
• Методы с переменным числом аргументов.
Практика:
• Вычисление факториала разными способами. Рекурсия.
• Проверка года на високосность. Перегрузка метода.

Модуль 6. Обработка исключений в Java
• Определение понятия исключение (exception).
• Концепция исключений в Java.
• Проверяемые и непроверяемые исключения.
• Синтаксис оператора try/catch. Различные варианты написания catch.
• Освобождение ресурсов в Java. Оператор try/finally.
Практика:
• Вычисление факториала с проверкой на переполнение.

Модуль 7. Использование массивов
• Понятие массива в Java.
• Создание и инициализация одномерных массивов.
• Доступ к элементам массива.
• Многомерные массивы.
• Реализация поиска и сортировки в одномерных массивах. Класс Arrays.
Практика:
• Написать конвертор дня года в месяц и число.

Модуль 8. Работа со строками в Java
• Особенности реализации строк в Java (класс String).
• Основные методы класса String.
• Динамические строки (класс StringBuilder).
• Определение термина Regex (регулярные выражения).
• Основы синтаксиса и написания регулярных выражения.
Практика:
• Конвертор целых чисел в двоичное представление.
• Работа с командной строкой в Java приложении.

Модуль 9. Работа с файловой системой в Java
• Создание объекта для работы с файлами на диске. Класс nio.Paths.
• Операции с ресурсами (файлами/каталогами) на диске. Класс nio.Files.
Практика:
• Чтение и запись текстовых данных на диске.
• Понятие кодирования тестовых данных.

Модуль 10. Пользовательские типы данных
• Проектирование своего типа данных (класса):
• выбираем имя для нашего класса;
• какие данные он будет содержать;
• методы для обработки этих данных.
• Создание и работа с объектами.
Практика:
• Разработка класса для точки в плоскости.
• Создать массив точек и выполнить сортировку этого массива.

Модуль 11. Структуры данных (коллекции)
• Основные виды коллекций.
• Операции с коллекциями и их эффективность.
Практика:
• Проектирование структуры данных – связанный список.
• Реализация связанного списка на Java.

Часть 2. Программирование на Java. Уровень 2. Объектно - ориентированное программирование
Модуль 1. Разработка классов на Java
• ООП как парадигма программирования.
• Принципы объектно-ориентированного программирования.
• Объявление класса.
• Члены класса и создание объектов.
• Конструкторы и блоки кода.
• Class object vs Instance.
• Модификаторы доступа.
• Модификаторы final и static.
Практика:
• Разбор параметров командной строки.

Модуль 2. Организация классов
• Пакеты и их применение.
• Использование директив import и import static.
• Переменная среды CLASSPATH.
• Причины появления и основы модульной организации в Java.
Практика:
• Создание и подключение библиотек.

Модуль 3. Наследование и полиморфизм
• Наследование как механизм повторного использования кода.
• Конструктор при наследовании.
• Преобразование типов и операция instanceof.
• Виртуальные методы и позднее связывание.
• Абстрактные классы и методы.
Практика:
• Разбор параметров командной строки. Часть 2. Наследование.
• Создание и выброс пользовательских исключений.

Модуль 4. Интерфейсы и аннотации
• Концепция интерфейсов.
• Объявление интерфейса.
• Реализация интерфейса.
• Статические методы, методы по умолчанию в интерфейсах и приватные методы.
• Аннотации и их использование.
• Создание пользовательских аннотаций.
Практика:
• Сортировка массива объектов.

Модуль 5. Пакет java.lang
• Класс Object и его методы.
• Метаданные и рефлексия в Java.
• Классы System и Math.
• Классы обёрток и работа с ними.
Практика:
• Переопределение в пользовательском классе методов, унаследованных от Object.

Модуль 6. Потоки данных в Java
• Обзор классов потоков.
• Работа с байтовыми потоками.
• Оператор try для освобождения ресурсов.
• Работа с потоками символов.
• Использование класса java.io.File.
• Сжатие файлов.
• Сериализация объектов в Java.
Практика:
• Сохранение данных объекта в различных форматах.

Модуль 7. Пакет java.util
• Форматирование данных.
• Работа с датой и временем.
• Класс Locale и глобализация кода.
• Локализация и класс ResourceBundle.
• Генерация псевдослучайных чисел.
Практика:
• Локализация текстовой надписи, выводимой на экран.

Модуль 8. Структуры данных в Java
• Иерархия классов коллекций.
• Концепция параметризованных типов данных.
• Работа с параметризованными методами и интерфейсами.
• Обзор возможностей списков, множеств и словарей в Java.
• Сортировка коллекций.
Практика:
• Написание параметризованного метода.
• Частотный анализ слов в текстовом документе.

Модуль 9. Вложенные классы в Java
• Внутренние классы.
• Вложенные классы.
• Анонимные классы.
• Перечисления в Java.
• Класс Record.
Практика:
• Получение содержимого каталога на диске. Создание фильтров.

Модуль 10. Лямбда-выражения
• Синтаксис лямбда-выражений.
• Ссылки на методы.
• Функциональные интерфейсы.
• Новые возможности в Java – Pattern Matching for switch.

Модуль 11. Паттерны проектирования
• Обзор паттернов.
• Паттерн одиночка.
• Паттерн композиция.
• Паттерн наблюдатель.
Практика:
• Реализация паттерна наблюдатель.
• Мониторинг изменений в файловой системе.

Часть 3. Программирование на Java. Уровень 3. Разработка клиент - серверных приложений
Модуль 1. Многопоточное программирование
• Плюсы и минусы многопоточных приложений
• Средства Java для управления многопоточностью
• Класс Thread и интерфейс Runnable
• Создание потоков
• Мониторы и синхронизация потоков
• Современные средства по управлению потоками (Executors, Fork/Join Framework)
• Новые потоки, безопасные коллекции и классы (ThreadLocalRandom, AtomicInteger и др.)
• Модель памяти Java
• Многопоточный сервер
• Лабораторная работа. Создание и синхронизация потоков

Модуль 2. Использование JDBC API в приложениях Java
• Java и взаимодействие с СУБД
• JDBC, использование SQL в Java-приложениях для доступа к реляционным БД
• JDBC-драйвера, их виды
• Основные объекты JDBC
• Транзакции JDBC
• Лабораторная работа. Создание приложения Java/JDBC для работы с изображениями

Модуль 3. Stream API
• Основные положения о потоках данных – Stream API.
• Потоковые интерфейсы BaseStream и Stream.
• Получение потока данных и использование методов интерфейса Stream.
• Операции сведения и отображения.
• Интерфейс Collector и накопление данных потока.
• Параллельные потоки данных.

Модуль 4. Введение в систему модулей
• Проблемы JDK 8 и необходимость модуляризации JDK.
• Цели создания и преимущества использования системы модулей в Java.
• Объявление модулей и их дескрипторы. Структура исходных файлов модулей. Упаковка модулей.
• Создание модульных приложений и их взаимодействие.

Модуль 5. Разработка современного пользовательского интерфейса на JavaFX
• История GUI
• Обзор возможностей JavaFX
• Основные объекты в архитектуре JavaFX
• Интеграция JavaFX и Swing
• Создание простого приложения JavaFX и JavaFX FXML
• Коллекции JavaFX
• Лабораторная работа. Разработка формы поиска файлов с использованием FXML разметки.
• Работа с элементами управления и событиями в JavaFX
• Контейнеры JavaFX и использование CSS
• Создание диаграмм и графиков
• Визуальные эффекты и анимация в JavaFX
• Использование свойств и привязки данных в JavaFX
• Реализация многопоточности в JavaFX
• Лабораторная работа. Создание современного пользовательского интерфейса с JavaFX

Модуль 6. Основы создания web-приложений на Java
• Архитектура распределенных приложений.
• Структура web-приложения.
• Сервлет – Java код в стороне сервера.
• Основные классы и интерфейсы Servlet API.
• Основы технологии JSP.
• Лабораторная работа. Создание простейших приложений с использованием Servlet API и JSP.
• Введение в Java Server Faces.
• Структура JSF приложения.
• Компоненты ввода-вывода в JSF.
• Обработка событий на сервере в JSF.
• Лабораторная работа. Создание приложения с использованием JSF.

Часть 4. Программирование на Java. Уровень 4. Разработка серверного ПО на Jakarta Enterprise Edition
Модуль 1. Обзор платформы Enterprise Edition. Типы корпоративных приложений
• Обзор и возможности платформы Enterprise Edition. Сравнение Java SE и EE платформ.
• Введение в основные технологии платформы EE: Servlet API/JSP, EJB, JMS, JPA, JAX-WS, JAX-RS.
• Обзор JavaEE-серверов приложений. Выбор сервера приложений для разработки и развертывания приложений.
• N-уровневая архитектура.
• Структура enterprise-приложения.
• Использование среды разработки для создания приложения и развертывания на сервере приложений.
• Возможности по конфигурированию сервера приложений.
• Создание Web-приложений. Работа с Web-компонентами различных типов. Обработка HTTP запросов, перенаправление запросов, формирование ответов от сервера, работа с сессией. Создание и применение фильтров (Servlet Filter).
• Работа с ресурсами различных типов, конфигурирование ресурсов на сервере приложений. Использование аннотаций для внедрения ресурсов.
• Лабораторная работа: Установка/конфигурирование сервера приложений и среды разработки. Создание веб-приложения и развертывание приложения на сервере. Использование ресурсов в веб-приложении.

Модуль 2. Технология Enterprise JavaBeans (EJB). Создание Web-приложений с использованием EJB-компонентов.
• Обзор технологии EJB.
• Типы EJB-компонентов. Использование различных типов EJB-компонент в enterprise-приложениях.
• Компоненты типа Session. Виды Session компонент: Stateless, Singleton, Stateful. Выбор вида Session-компонента в enterprise-приложении.
• Использование аннотаций для создания компонент типа Session. Методы компонента. Использование бизнес-интерфейсов: локальный, удаленный, представление без интерфейса.
• Жизненный цикл Session-компонент различных видов. Методы обратного вызова.
• Доступ к EJB компонентам: внедрение зависимостей через аннотации, использование JNDI lookup.
• Использование ресурсов в EJB-компонентах.
• Взаимодействие Web-компонент и EJB-компонент.
• Лабораторная работа: Создания web-приложения c использованием EJB-компонент и взаимодействием с БД.

Модуль 3. Технология JMS и Message-Driven Bean компоненты
• Архитектура JMS. Типы и структура JMS сообщений.
• API JMS для отправки/получения сообщений: использование queue и topic.
• Создание и работа с JMS-ресурсами на сервере приложений.
• Использование Message-Driven Bean (MDB) компонентов для обработки сообщений.
• Лабораторная работа: Реализация клиента для отправки сообщений, использование MDB-компонентов для обработки сообщений.

Модуль 4. Технология JPA (Java Persistence API). Управление транзакциями. JTA API для поддержки транзакций
• Основные понятия Java Persistence API.
• API JPA: Entity, EntityManager - интерфейс основных операций. Использование EntityManager для выполнения операций с Entity-объектом. Жизненный цикл Entity объекта.
• Использование JPQL (Java Persistence query language)
• Управление транзакциями. Понятие транзакции. Java Transaction API (JTA API) для поддержки транзакций.
• Использование CMT и BMT в EJB-компонентах. Локальные и глобальные транзакции. Использование java.sql.DataSource и java.sql.XADataSource при работе с транзакциями.
• Лабораторная работа: Создание приложения с использованием транзаций и EJB-компонент.

Модуль 5. Использование многопоточности в корпоративных приложениях. Асинхронные вызовы методов EJB-компонент
• Использование EE Concurrency API для выполнения асинхронных задач и получения результатов задач. Основные интерфейсы API и варианты использования.
• Использование асинхронных методов EJB-компонентов для выполнения задач в отдельном потоке. Аннотации для методов и классов компонент.
• Использование службы таймеров (EJB Timer Service) для выполнения задач по расписанию.
• Лабораторная работа: Создание приложения для реализации периодической задачи с использованием Concurrency API и EJB-компонентов.

Модуль 6. Создание SOAP и REST веб-служб (JAX-WS,JAX-RS API)
• SOAP веб-сервисы. Основные понятия SOAP и структура SOAP-сообщения.
• Использование JAX-WS API для создания SOAP веб-сервисов. Создание клиента для взаимодействия с SOAP веб-сервисом.
• Создание SOAP веб-сервиса на основе EJB-компонента.
• REST веб-сервисы. Основы REST-архитектуры программного обеспечения для распределенных систем.
• Использование JAX-RS API для создания REST веб-сервисов. Создание клиента для взаимодействия с REST веб-сервисом.
• Подходы к тестированию веб-сервисов - использование различных инструментов для проверки работы сервиса.
• Лабораторная работа: Создание клиента и веб-сервиса. Создание веб-сервиса на основе EJB-компонента.

Модуль 7. API для работы c документами в формате JSON (JSON Processing, JSON Binding API)
• JSON формат. Основные API для работы с JSON-документами в enterprise-приложении.
• JSON Binding API.
• JSON Processing API. Использование Streaming API для разбора JSON-документов.
• Лабораторная работа: Создание интеграционного приложения для обработки документа в формате JSON c последующим сохранением данных.

Модуль 8. Безопасность корпоративных приложений
• Основные понятия. Безопасность web-приложений. Аутентификация и авторизация в enterprise-приложениях. Использование конфигурации для настройки безопасности приложений.
• Использование EE Security API. Разграничение прав доступа в enterprise-приложении.

Часть 5. DEV1. Разработка серверной части приложений PostgreSQL 17/16. Базовый курс
Модуль 1. Введение. Базовый инструментарий
• Установка и управление, psql

Модуль 2. Архитектура
• Общее устройство PostgreSQL
• Изоляция и многоверсионность
• Буферный кэш и журнал

Модуль 3. Организация данных
• Логическая структура
• Физическая структура

Модуль 4. Приложение «Книжный магазин»
• Схема данных приложения

Модуль 5. SQL
• Функции
• Процедуры
• Составные типы

Модуль 6. PL/pgSQL
• Обзор и конструкции языка
• Выполнение запросов
• Курсоры
• Динамические команды
• Массивы
• Обработка ошибок
• Триггеры
• Отладка

Модуль 7. Разграничение доступа
• Обзор разграничения доступа

Модуль 8. Резервное копирование
• Логическое резервирование

Часть 6. PostgreSQL для разработчика. Авторский практикум
Модуль 1. Часть 1
• Подключение к СУБД из прикладной программы.
• Основные виды клиентских библиотек.
• Понятие об объектно-реляционном соответствии (ORM).
• Модули расширения, входящие в комплект поставки.

Модуль 2. Часть 2
• Важнейшие сторонние модули расширения: PostGIS, внешние обертки данных.
• Работа с иерархическими структурами. Рекурсивные with-запросы.
• Практикум.

Модуль 3. Часть 3
• Наследование и партиционирование таблиц.
• Применение оконных функций.
• Создание функций на процедурных языках (С, Python).
• Создание пользовательских типов данных.

Окончательная цена указывается в договоре на обучение. Записаться на курс

Характеристики курса

  • Начало: Ведется набор
  • Вендор: PostgreSQL
  • Код курса: PSGJV
  • Город: Пермь, Москва,
  • Направление: Курсы для IT-специалистов
  • Академических часов: 216
  • Количество мест: 8
  • Очно: 399900 ₽
  • Дистанционно: 399900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

8 800 (600)-66-16

Владелец сайта:
АНО ДПО «Учебный центр «ШИФТ»
ИНН 5904355180
ОГРН 1175958039586
Юридический адрес: 614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32.
E-mail: info@eshift.ru