Целевая аудитория

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

Программа
  • Вопросы курса:

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

    • 2. Инсталляция интерпретатора Python в различных операционных системах. Механизм PIP - и создание песочницы для выполнения кода приложения, конфигурация.

    • 3. «Привет Мир» - Первое приложение, созданное и запущенное в песочнице. Анатомия приложения. Подключение и использование библиотек, использование модулей — простейших примерах.

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

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

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

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

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

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

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

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

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

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

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