# Занятие 00: Разработка серверной части приложений / Расширенный курс

> Исходная страница в нативном Markdown: Разработка серверной части приложений / Расширенный курс

---

Индекс LLMS: [llms.txt](/ru/llms.txt)

---

<!-- Generated by scripts/generate_skeleton.py. -->

> [!NOTE]
> Эта страница извлечена из официального PDF в нативный Markdown. Текст слайдов, код и комментарии сохранены в порядке чтения; исходные PDF и HTML остаются эталоном макета.
> **HTML source:** [dev2_00_introduction.html](https://edu.postgrespro.ru/16/dev2-16/dev2_00_introduction.html)
> **Archive:** [DEV2-handouts-16.zip](https://edu.postgrespro.ru/16/DEV2-handouts-16.zip)
> **Страниц PDF:** 10

## Page 1: Разработка серверной части приложений / Расширенный курс {#source-page-001}

### Авторские права

© Postgres Professional, 2017–2024 Авторы: Егор Рогов, Павел Лузанов, Илья Баштанов, Игорь Гнатюк Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
### Использование материалов курса

Некоммерческое использование материалов курса (презентации, демонстрации) разрешается без ограничений. Коммерческое использование возможно только с письменного разрешения компании Postgres Professional. Запрещается внесение изменений в материалы курса.
### Обратная связь

Отзывы, замечания и предложения направляйте по адресу: edu@postgrespro.ru
### Отказ от ответственности

Компания Postgres Professional не несет никакой ответственности за любые повреждения и убытки, включая потерю дохода, нанесенные прямым или непрямым, специальным или случайным использованием материалов курса. Компания Postgres Professional не предоставляет каких-либо гарантий на материалы курса. Материалы курса предоставляются на основе принципа «как есть» и компания Postgres Professional не обязана предоставлять сопровождение, поддержку, обновления, расширения и изменения.

## Page 2: Разработчикам {#source-page-002}

![Source slide page 2: Разработчикам](images/page-002.png){#source-figure-002 caption="Source slide page 2: Разработчикам"}

### DEV2, 4 дня

### Комментарии преподавателя

Для разработчиков серверной части приложений мы предлагаем несколько курсов.

Для прохождения всех курсов необходимы предварительные знания основ языка SQL. Специального курса по языку SQL в нашей линейке курсов нет, но существует множество книг и других образовательных ресурсов, с помощью которых можно освоить SQL. Мы рекомендуем книгу Евгения Моргунова «PostgreSQL. Основы языка SQL»:

<https://postgrespro.ru/education/books/sqlprimer>

Базовым курсом для разработчиков является курс DEV1, в котором даются сведения об архитектуре PostgreSQL и использовании основных объектов базы данных; изучается программирование на стороне сервера на языках SQL и PL/pgSQL с использованием основных типов данных, а также рассматривается взаимодействие с клиентской частью.

Данный курс DEV2 продолжает изучение серверной разработки на более глубоком уровне.

Курс DBS рассказывает про настройку подключений клиентов к СУБД и про управление доступом внутри самой СУБД.

В курсе QPT детально разбираются механизмы планирования и выполнения запросов, рассматривается настройка параметров экземпляра, связанных с производительностью, и изучаются возможности для поиска проблемных запросов и их оптимизации.

В курсе PGPRO рассматриваются дополнительные возможности, которые предоставляет СУБД Postgres Pro Enterprise.

<https://postgrespro.ru/education/courses>

## Page 3: Администраторам {#source-page-003}

![Source slide page 3: Администраторам](images/page-003.png){#source-figure-003 caption="Source slide page 3: Администраторам"}

  - DBA2, 4 дня

### Комментарии преподавателя

Для администраторов мы предлагаем следующие курсы.

В базовом курсе DBA1 даются общие сведения об архитектуре PostgreSQL, процессе установки, базовой настройке и управлении сервером. Рассматриваются основные задачи администрирования, вопросы управления доступом. Приводится обзор резервного копирования и репликации.

В курсе DBA2 обсуждается настройка различных конфигурационных параметров исходя из понимания внутренней организации сервера; говорится о мониторинге сервера с использованием обратной связи для итеративной настройки параметров. Также рассматриваются настройки, связанные с локализацией, управление расширениями и знакомство с процедурой обновления сервера.

Курс DBA3 посвящен рассмотрению резервного копирования, а также настройкам физической и логической репликации и сценариям ее использования. Также дается общее представление о способах и сложностях построения высокодоступных, масштабируемых кластеров.

Курсы DBS, QPT и PGPRO являются общими для разработчиков и администраторов.

Курсы по администрированию могут быть интересны и разработчикам, желающим детальнее изучить внутреннее устройство PostgreSQL, а также в случае, когда на проекте нет выделенной роли администратора.

## Page 4: О курсе DEV2 {#source-page-004}

**Продолжительность: 4 дня**
- Предварительные знания
  - общие сведения об архитектуре PostgreSQL
  - уверенное владение SQL и PL/pgSQL
  - минимальные сведения о работе в Unix
- Какие навыки будут получены
  - понимание внутренней организации сервера
  - полное использование возможностей, предоставляемых PostgreSQL
  - для реализации логики приложения
  - расширение возможностей СУБД для решения специальных задач

### Комментарии преподавателя

Основная идея курса – показать не просто базовые функции PostgreSQL, но и его расширяемость: возможность дополнить серверные механизмы собственным кодом, что позволяет использовать PostgreSQL для решения самых разнообразных задач.

## Page 5: Используемые материалы {#source-page-005}

**Подготовленная виртуальная машина**
  - ОС Xubuntu 24.04
  - PostgreSQL 16 (два кластера)
  - набор расширений, в том числе сторонних
  - документация на русском языке
  - учебное веб-приложение «Книжный магазин 2.0»
  - DBeaver
- Учебные материалы
  - руководство слушателя
  - презентации, демонстрации, практические задания и их решение
  - (в форматах html и pdf)

### Комментарии преподавателя

В этом курсе мы показываем довольно много расширений (extensions), включая сторонние. Это позволяет глубже раскрыть и подчеркнуть идею курса о расширяемости PostgreSQL. Все расширения собраны и установлены в виртуальной машине курса.

Если вы проходите курс самостоятельно, обязательно начните со знакомства с Руководством слушателя. В числе прочего в нем написано, где скачать и как использовать виртуальную машину курса и прочие материалы. Все материалы курса доступны по адресу: <https://postgrespro.ru/education/courses/DEV2>

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

Учебные материалы (презентации, демонстрации, практические задания и их решения) доступны в двух форматах. Формат html удобен для онлайн-работы, он позволяет копировать фрагменты текста и кода. Формат pdf разбит на страницы и удобен для печати.

## Page 6: Организационные вопросы {#source-page-006}

**День: ~8 академических часов + обед (1час)**
- Каждая тема состоит из
  - презентации и демонстраций: ~30–60 мин
  - практических заданий: ~20–30 мин, включая перерыв

## Page 7: День 1 {#source-page-007}

**Архитектура**
  - 01. Изоляция
  - 02. Многоверсионность
  - 03. Очистка
  - 04. Журналирование
  - 05. Блокировки

### Комментарии преподавателя

Первый день занятий посвящен теоретической подготовке. Здесь рассматриваются темы, знакомые по курсу DEV1, но на более серьезном уровне. Полученные знания будут применяться на практике в последующих темах курса.

## Page 8: День 2 {#source-page-008}

![Source slide page 8: День 2](images/page-008.png){#source-figure-008 caption="Source slide page 8: День 2"}

**Учебное приложение**
  - 06. Книжный магазин 2.0
- Расширяемость
  - 07. Пул соединений
  - 08. Типы для больших значений
  - 09. Пользовательские типы данных
  - 10. Классы операторов

### Комментарии преподавателя

Начиная со второго дня занятий, каждая тема содержит два набора практических заданий: связанных с приложением «Книжный магазин 2.0» (они отмечены значком книги) и дополнительных. За время, которое отводится на задания (около 30 минут), выполнить всю практику невозможно. Используйте дополнительные задания для самостоятельной работы.

## Page 9: День 3 {#source-page-009}

**Расширяемость (продолжение)**
  - 11. Слабоструктурированные данные
  - 12. Фоновые процессы
  - 13. Асинхронная обработка
  - 14. Создание расширений
  - 15. Языки программирования

## Page 10: День 4 {#source-page-010}

**Расширяемость (продолжение)**
- 16. Агрегатные и оконные функции 17. Обзор полнотекстового поиска Репликация
- 18. Обзор физической репликации 19. Обзор логической репликации Внешние данные
  - 20. Обзор

### Комментарии преподавателя

В последних трех темах используется второй кластер PostgreSQL, установленный в виртуальной машине курса.
