Курс "Язык Python в технологиях клиент - сервер и распределенных вычислениях"Код: EDU-Python-31
Продолжительность - 5 дней Производится набор группы
Курс «Язык Python в технологиях клиент - сервер и распределенных вычислениях»
Аудитория: Для слушателей, владеющих знаниями SQL, принципами и механизмами работы такими базами данных, как Oracle и PostgreSQL. Язык OOP - не помешает. Обработка данных предприятия с помощью языка Python - основная цель и задача курса. Начальная подготовка: Знания SQL, Oracle и PostgreSQL Основные вопросы : OOP в Python, Работа с механизмами обмена информацией - XML, JSON, SOAP, REST, клиентские приложения -PyQt Используются базы данных Postgresql и ClickHouse Программа курса1. Как выполняется приложение на языке Python, распределение областей памяти. Где Объекты и где Классы. Типы данных языка и переменные - все есть объект. 2. Профилирование приложения, распределение памяти в куче, наблюдение и управление сборкой мусора, принудительное освобождение памяти, неизменяемые объекты и контейнеры. 3. Объектная опция в Python - Инкапсуляция - Полиморфизм - Наследование - Абстракция, пакет abc. Статические и динамические методы, анатомия множественного наследования, базовые классы и интроспекция. Утиная нотация. 4. Создание собственных классов, область видимости , атрибуты и методы классов, конструкторы и деструкторы. Понятие @dataclass и механизмы заключения контрактов между классами пользователя и интерпретатором Python. Перегрузка методов, множественное наследование, инкапсуляция локальных переменных класса - классика и особенности языка Python. Определение свойств классов (@property). 5. Функциональный подход в языке Python, функции модуля, область видимости - паеременые глобальные и локальные. Замыкания в языке Python, Лямбда выражения, функции в качестве параметров функций . Type функция и альтернативные механизмы описания объектов. 6. Типы данных - контейнеры. Три вида контейнеров - списки , словари и кортеджи. Функциональность контейнера - изменяемость и постоянство. Ключевые методы классов, определяющие размещение объектов в контейнерах, сортировки объектов в контейнере. Строка - это так же контейнер, но с добавленным функционалом, функциональные строки, строки байт. Почему кодировка UTF-8, регулярные выражения. Коллекции, модуль abc, словари по умолчанию, стеки и очереди 7. Работа с основными модулями интерпретатора Python. Модуль работы с операционной системой. Доступ и навигация по каталогам операционной системы. Управление файлами ОС. Определение Процесса OC. Доступ к трем стандартным потокам операционной системы. Вызов процесса OC и получение из него результата и процесса выполнения, в виде потока. 8. Ожидание завершения внешнего процесса и получение результата. Процедура открытия файла в различных режимах. Усечение файла, добавление данных в файл и множество других операций. 9. Дополнительные модули расширения языка Python. Взаимодействие с базой данных ClickHouse и Postgresql. Подключение модулей к песочнице Python. 10. Соединение с базой данных из Python. Строка соединения, конфигурация сессии серверного процесса базы данных. Основные классы взаимодействия с базой данных - Connection и Cursor. Особенности работы с колоночной базой данных ClickHouse. Транзакционные механизмы взаимодействия с базой данных - особенности выполнения операций DDL, DCL, DML, SELECT и блоков кода в базе данных. Получение информации из курсоров в базе данных о выполнении операций SQL (число обработанных строк). Выполнение хранимых процедур в базе данных, передача параметров и возврат значений из хранимых процедур, особенности получения результатов ссылочных курсоров, описание полей возвращаемое курсоров, связь метаданных курсора и собственно данных. Разработка конкретного примера использования распределенных транзакций в базе данных. 11. Управление блокировками записей в базе данных, взаимные блокировки и как их не допустить в приложении Python. Управление исключительными ситуациями, которые были возбуждены базой данных. 12. Многопоточное и многопроцессорное программирование , Lock и Rlock, опасность взаимных блокировок, аналог Java — CountDownLatch, пул потоков, обмен информации между потоками. Пакет multiprocessing, логирование процессов, Fork-Join , различные способы запуска процессов в пуле, обмен информацией между процессами — Queue, Pipe 13. XML документ в Python. Загрузка и выгрузка XML в,из базы данных, парсирование XML документов, SAX и DOM механизмы в модулях Python (xml, lxml), форматирование XML, XPATH запросы в Python. 14. Доступ к серверу приложений по HTTP протоколу. Пример на основе сервера Wildfly (бывшее JBoss). Очень краткое введение в технологию распределенных вычислений, понятие Сервер приложений, многопоточность, сервис имен, пул соединений, безопасность, механизмы объектно-реляционного мапинга (русский - отдыхает), сервис обработки асинхронных сообщений, сервис заданий и другие полезные механизмы сервера приложений . (20 минут, см мои курсы по Java технологиям) . 15. Организация доступа из Python к сервисам REST сервера приложений. POST, GET, DELETE и прочие запросы. Особенности выполнения транзакционных запросов через REST сервисы. Модуль requests. Выполнение транзакций через REST сервисы. Извлечение данных, и их публикация в отчетах, с использованием REST технологий. Простой микросервис на Python с доступомв базу данных и отправкой сообщений клиенту В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.
Свободно распространяемое программное обеспечение популярно как среди частных лиц, так и среди организаций. Действительно, СПО позволяет серьезно экономить на приобретении лицензий для компаний, которые многократно тиражируют программное решение. Также благодаря тому, что СПО можно квалифицированно дорабатывать собственными силами под конкретные нужды организации, оно приобретает еще и дополнительную гибкость и удобство в использовании. Открытое программное обеспечение — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы. В конце обучения на курсах проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненные в процессе обучения. Учебный центр "Интерфейс" оказывает консалтинговые услуги по построению моделей бизнес-процессов, проектированию информационных систем, разработке структуры баз данных и т.д.
|