Курс: Язык Python в технологиях клиент - сервер и распределенных вычислениях.

(6 дней, 48 академических часов)


Курс предназначен :

Для слушателей, владеющих знаниями SQL, принципами и механизмами работы такими базами данных, как Oracle и PostgreSQL. Язык OOP - не помешает. Обработка данных предприятия с помощью языка Python - основная цель и задача курса.

Основные вопросы : OOP в Python, Работа с механизмами обмена информацией - XML, JSON, SOAP, REST, клиентские приложения -PyQt

Вопросы курса :

  1. Почему Python, история развития языка. Как Java «перепрыгнула» Python. Python - интерпретатор и скорость выполнения приложения - низкая - так ведь это совсем не так! Где используется Python. Python и Java - конкуренты и сотрудники...В течении 10 минут...

  2. Исталяция интерпретатора Python в Windows и нормальной операционной системе Linux. Обновление установки Механизм PIP - и создание песочницы для выполнения кода приложения, конфигурация. Добавление в песочницу дополнительных пакетов и модулей Python - а зачем все это нужно. Активация и Деактивация песочницы.

  3. Как выполняется приложение на языке Python, распределение областей памяти. Где Объекты и где Классы. Типы данных языка и переменные - все есть объект.

  4. «Привет Мир» - Первое приложение, созданное и запущенное в песочнице интерпретатора.Что распределилось на стеке и что в куче интерпретатора.

  5. Типы данных языка, встроенные типы данных, как обнаружить , сколько места «скушает» 1 (единичка). Основные встроенные типы данных языка Python и ПРАВИЛА PEP8 - которые не соблюдают, но соблюдать нужно.

  6. А в какой среде разработки писать приложение. Вариантов много - но родные Idea и Eclipse (по наследству из Java). Исталяция и конфигурация среды PyCharm - Idea. Создание песочницы в среде. PIP - утилита и конфигурация песочницы, настройка песочницы под конкретное окружение операционной системы, где будет выполняться код Python. Ввод новых переменных в окружение песочницы, механизмы добавления новых пакетов, модулей в песочницу. Глобальный и пакеты взятые с сайтов интернета, в песочнице.

  7. Ну вот и началось программирование, Объектная опция в Python - Инкапсуляция - Полиморфизм - Наследование - Абстракция, об этом можно говорить очень много, но программист это должен понимать как - Отче Наш. - Легкое введение в ООП и абстракции Python

  8. Создание собственных классов, область видимости , атрибуты и методы классов, конструкторы и деструкторы. Понятие @dataclass и механизмы заключения контрактов между классами пользователя и интерпретатором Python. Перегрузка методов, множественное наследование, статические методы, инкапсуляция локальных переменных класса - классика и особенности языка Python. Определение свойств классов (@property).

  9. Функциональный подход в языке Python, функции модуля, область видимости - паеременые глобальные и локальные. Замыкания в языке Python, Передача параметров в функции и методы классов. Именованные и позиционные параметры , когда использовать * (звездочку), а кода использовать ** (две звездочки) . Лямбда выражения, функции в качестве параметров функций .

  10. Типы данных - контейнеры. Три вида контейнеров - списки , словари и кортеджи. Функциональность контейнера - изменяемость и постоянство. Ключевые методы классов, определяющие размещение объектов в контейнерах, сортировки объектов в контейнере. Строка - это так же контейнер, но с добавленным функционалом, функциональные строки, строки байт. Почему кодировка UTF-8

  11. Работа с основными модулями интерпретатора Python. Модуль работы с операционной системой. Доступ и навигация по каталогам операционной системы. Управление файлами ОС. Определение Процесса OC. Доступ к трем стандартным потокам операционной системы. Вызов процесса OC и получение из него результата и процесса выполнения, в виде потока.

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

  13. Дополнительные модули расширения языка Python. Взаимодействие с базой данных Oracle и Postgresql. Подключение модулей к песочнице Python.

  14. Соединение с базой данных из Python. Строка соединения, конфигурация сессии серверного процесса базы данных. Основные классы взаимодействия с базой данных - Connection и Cursor. Транзакционные механизмы взаимодействия с базой данных - особенности выполнения операций DDL, DCL, DML, SELECT и блоков кода в базе данных. Получение информации из курсоров в базе данных о выполнении операций SQL (число обработанных строк). Выполнение хранимых процедур в базе данных, передача параметров и возврат значений из хранимых процедур, особенности получения результатов ссылочных курсоров, описание полей возвращаемое курсоров, связь метаданных курсора и собственно данных. Разработка конкретного примера использования распределенных транзакций в базе данных.

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

  16. 15 Работа из Python с хранимыми процедурами и пакетными процедурами базы данных. Передача параметров и возврат значений в виде ссылочных курсоров. Доступ к потоку Oreacle dbms_pipe из Python приложения. Работа с большими (BLOB, LOB, XMLTYPE) типами данных. Организация потоков обмена байтовыми данными.

  17. XML документ в Python. Загрузка и выгрузка XML в,из базы данных, парсирование XML документов, SAX и DOM механизмы в модулях Python (xml, lxml), форматирование XML, XPATH запросы в Python.

  18. Многопоточное программирование, создание потока 2- мя способами, синхронизация потоков, проблемы обмена переменными между потоками - класс Queue, управление потоками через класс Event

  19. Пакет PyQt5 для разработки пользовательского интерфейса. Главный поток приложения, использование утилиты disigner для создания прототипа окна пользовательского интерфейса, преобразование прототипа в файл Python. Использование сигналов и слотов для создания событийного управления в приложении, что такое Сигнал и Слот.

  20. Инсталяция рабочего модуля PyQt5, клиентское и место разработчика. Утилита designer. Классическое создание пользовательского приложения с использованием утилиты и механизмов множественного наследования, реализация конкретного приложения с многооконным интерфейсом, диалоговыми окнами и т.п.

  21. 20 Доступ к серверу приложений по HTTP протоколу. Пример на основе сервера Wildfly (бывшее JBoss). Очень краткое введение в технологию распределенных вычислений, понятие Сервер приложений, многопоточность, сервис имен, пул соединений, безопасность, механизмы объектно-реляционного мапинга (русский - отдыхает), сервис обработки асинхронных сообщений, сервис заданий и другие полезные механизмы сервера приложений . (20 минут, см мои курсы по Java технологиям) .

  22. Организация доступа из Python к сервисам REST сервера приложений. POST, GET, DELETE и прочие запросы. Особенности выполнения транзакционных запросов через REST сервисы. Модуль requests. Выполнение транзакций через REST сервисы. Извлечение данных, и их публикация в отчетах, с использованием REST технологий. Простой микросервис на Python с доступомв базу данных и отправкой сообщений клиенту