# Курс лекций "Как стать разработчиком PostgreSQL"
-Данный курс предназначен для начинающих разработчиков, еще не погрузившихся в мир системного программирования в общем и не знакомых с внутреннем устройством PostgreSQL в частности.
-В рамках курса учащийся, двигаясь от простого к сложному, познакомится с кодом СУБД PostgreSQL, с основными структурами и абстракциями, используемыми в коде, а так же с приемами программирования, применяющимися при разработке ядра PostgreSQL.
+Данный курс предназначен для начинающих разработчиков, еще не погрузившихся в мир системного программирования в общем и не знакомых с внутренним устройством PostgreSQL в частности.
+В рамках курса учащийся, двигаясь от простого к сложному, познакомится с кодом СУБД PostgreSQL, с основными структурами и абстракциями, используемыми в коде, а также с приемами программирования, применяющимися при разработке ядра PostgreSQL.
Курс предполагает решение большого количества простых учебных задач, затрагивающих разные аспекты функционирования ядра PostgreSQL, с подробным изучением исходного кода ядра, реализующего изучаемую функциональность.
В идеале после завершения курса учащийся должен свободно ориентироваться в большей части кода ядра PostgreSQL или уметь самостоятельно разобраться с теми частями, которые затронуты не были.
-Данный курс не предполагает углубленного знакомства с техникой и алгоритмикой хранения поиска и обработки данных, но предполагает подробное знакомство с кодовой инфраструктурой, в рамках которой эти алгоритмы практически реализованы.
+Данный курс не предполагает углубленного знакомства с техникой и алгоритмикой хранения, поиска и обработки данных, но предполагает подробное знакомство с кодовой инфраструктурой, в рамках которой эти алгоритмы практически реализованы.
Курс находится на ранних этапах разработки.
На данный момент готовы лекции:
-- Создание первого расширения PostgreSQL
-- Базовые структуры PostgreSQL: Регистровые типы данных
+- создание первого расширения PostgreSQL;
+- базовые структуры PostgreSQL: регистровые типы данных.
В процессе создания находится лекция:
-- Базовые структуры PostgreSQL: Типы данных переменной длины
+- базовые структуры PostgreSQL: типы данных переменной длины.
#№ Подготовка к мастер-классу
Перед мастер-классом пользователю следует:
-1. Убедиться, что он имеет доступ к режиму администратора в системе (команда `sudo su` должна вызывать консоль в режиме адимнистратора с диезом (`#`) в приглашении).
+1. Убедиться, что он имеет доступ к режиму администратора в системе (команда `sudo su` должна вызывать консоль в режиме администратора с диезом (`#`) в приглашении).
-2. Убедиться, что в системе утстановлен PostgreSQL (команда `sudo -u postgres psql` должна вызывать командно-строчный интерфейс к PostgreSQL).
+2. Убедиться, что в системе установлен PostgreSQL (команда `sudo -u postgres psql` должна вызывать командно-строчный интерфейс к PostgreSQL).
-3. Убедиться, что в системе развернут только один кластер PostgreSQL (команда `sudo pg_lsclusters` должна выводить только одну зеленую строчку и ни одной красной). В случае, если кластеров оказалось более одного (а такое случается, если система пережила несколько мажорных обновлений), самостоятельно свести количество кластеров к одному. Будте бдительны, не потеряйте свои данные, они могут оказаться в одном из старых кластеров.
+3. Убедиться, что в системе развернут только один кластер PostgreSQL (команда `sudo pg_lsclusters` должна выводить только одну зеленую строчку и ни одной красной). В случае, если кластеров оказалось более одного (а такое случается, если система пережила несколько мажорных обновлений), самостоятельно свести количество кластеров к одному. Будьте бдительны, не потеряйте свои данные, они могут оказаться в одном из старых кластеров.
4. Убедиться, что в системе установлена только одна версия PostgreSQL (команда `apt list --installed "postgresql-*"` должна выдавать список только с одним числовым суффиксом, например, `-17` или "минус любое число", но какое-то одно). В случае, если версий постгреса оказалось более одной (а такое может случиться, если система пережила несколько обновлений), следует удалить более старые версии.
-5. Если были обнаружены и устранены проблемы из пп. 2 и 3, убедитесь, что постгрес все еще работает: перезагрузите систему и провторите п. 2.
+5. Если были обнаружены и устранены проблемы из пп. 2 и 3, убедитесь, что постгрес все еще работает: перезагрузите систему и повторите п. 2.
-6. Прописать в системе репозитории с исходными кодами пакетов.`/etc/apt/sources.list` или в `/etc/apt/sources.list.d` (зависит от версии) (все строки начинающиеся с `deb ` продублировать и заменить в дубликатах `deb` на `deb-src`), обновить список пакетов командой `sudo apt-get update`. Убедиться, что можно получить исходный код для пакета `postgresql`: `apt-get source postgresql`
+6. Прописать в системе репозитории с исходными кодами пакетов.`/etc/apt/sources.list` или в `/etc/apt/sources.list.d` (зависит от версии) (все строки, начинающиеся с `deb `, продублировать и заменить в дубликатах `deb` на `deb-src`), обновить список пакетов командой `sudo apt-get update`. Убедиться, что можно получить исходный код для пакета `postgresql`: `apt-get source postgresql`
-7. Убедиться, что он умеет редактировать текстовые файлы, используя один из консольных текстовых редакторов: `nano`, `mcedit`, `vim`, `emacs` или любой другой на ваше усмотрение.
+7. Убедиться, что он умеет редактировать текстовые файлы, используя один из консольных текстовых редакторов: `nano`, `mcedit`, `vim`, `emacs` или любой другой на свое усмотрение.