Курс "Использование эффективных средств языка Python в реальных приложениях"

Код: EDU-Python-14
Специализация: Авторские курсы: Свободное ПО/Open Source

Продолжительность - 5 дней

Производится набор группы

Стоимость:  60 000 руб.  

На курсе "Использование эффективных средств языка Python в реальных приложениях" слушателя разберут языковые средства Python, возможно, по-другому взглянут на некоторые известные приемы: от консольных скриптов, которые одновременно играют роль микросервисов благодаря точкам входа, до эффективного использования модуля asyncio для объединения данных из различных источников. Рассмотрят проверку соблюдения стандартов кодирования с помощью аннотаций типов, тестирование с низкими накладными расходами и другие автоматизированные проверки качества кода, применяемые на практике для организации процесса разработки надежного ПО.

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

Прослушав данный курс, Вы узнаете:

  • Как построить интерфейс командной строки
  • Что такое аннотация типов
  • Стандарты кодирования
  • Что такое декларативные конфигурации и как их использовать
  • Специальные серверы каталогов
  • Веб-микросервисы
  • Как организовать асинхронную работу с базами данных
  • Отказоустойчивость программы и метод ее достижения

Научитесь:

  • Прототипировать в Python с помощью различных сред
  • Тестировать Python-код
  • Использовать скрипты для создания пакетов
  • Разрабатывать плагин датчика
  • Расширять программное обеспечения третьей стороной
  • Создавать пакеты агрегирования
  • Тестировать асинхронный код программы
  • Оптимизировать функции и потоки управления для повышения быстродействия
  • Обрабатывать вызовы и анализировать данные

Аудитория: Программисты и разработчики Python, которые хотят разобраться, когда уместно использовать новые прогрессивные средства языка

Предварительная подготовка: Уверенное знание основ языка Python.

Курсы, рекомендуемые для предварительного прохождения:

  • Программирование на Python, часть 2
  • Программирование на Python, часть 3. Numpy для Data Science
  • Программирование на Python, часть 4. Pandas для Data Science. Высокопроизводительная обработка и анализ данных в Pandas.
  • Разработка приложений PyQT 5
  • Многопоточность, мультипроцессинг, асинхронное программирование
  • Основы UNIX и Linux, использование Python в системном администрировании

Курсы, рекомендуемые для последующего прохождения:

  • Паттерны разработки на Python

Программа курса

1 Прототипирование и среды разработки

1.1. Прототипирование в Python

1.1.1. Прототипирование с помощью REPL

1.1.2. Прототипирование с помощью Python-скрипта

1.1.3. Прототипирование с помощью скриптов и pdb

1.1.4. Прототипирование с помощью Jupyter

1.2. Подготовка окружения

1.3. Подготовка нового проекта

1.4. Экспорт в py - файл

1.5. Построение интерфейса командной строки

1.5.1. Модуль sys и переменная argv

1.5.2. argparse

1.5.3. click

1.6. Расширение границ возможного

1.6.1. Удаленные ядра

1.6.2. Разработка кода, который невозможно выполнить локально

1.7. Окончательный скрипт

2 Тестирование, проверка типов, стандарты кодирования

2.1. Тестирование

2.1.1. Необходимость тестирования

2.1.2. Создание функций форматирования для повышения тестопригодности

2.1.3. pytest

2.1.4. Автономное, интеграционное и функциональное тестирование

2.1.5. Фикстуры Pytest

2.1.6. Покрытие

2.2. Проверка типов

2.2.1. mypy

2.2.2. Аннотация типов

2.2.3. Подклассы и наследование

2.2.4. Обобщенные типы

2.2.5. Типизация, отладка и необходимость

2.2.6. Нахождение аннотации типов отдельно от кода

2.3. Стандарты кодирования

2.3.1. flake8 и black

2.3.2. Исправление существующего кода

2.3.3. Автопрогон

2.3.4. Запросы на включение изменений

3 Скрипты для создания пакетов

3.1. Терминология

3.2. Структура каталога

3.3. Скрипты настройки и метаданные

3.4. Зависимости

3.5. Декларативные конфигурации

3.5.1. Файл setup.py

3.5.2. Условные зависимости

3.5.3. Файл Readme

3.5.4. Нумерация версий

3.5.5. Файл setup.cfg

3.6. Специальные серверы каталогов

3.6.1. pypiserver

3.6.2. Устойчивость к сбоям

3.6.3. Конфиденциальность

3.6.4. Целостность

3.6.5. Формат и создание wheel

3.7. Установка консольного скрипта с помощью точек входа

3.8. Файлы README, DEVELOP и CHANGES

3.8.1. Формат Markdown

3.8.2. Формат reStructured

3.8.3. Файл README

3.8.4. Файл CHANGES.md и номера версий

3.8.5. Семантическое версионирование

3.8.6. Календарное версионирование

3.9. Закрепление версий зависимостей

3.10. Загрузка версии на сервер, twine

4 От скрипта к каркасу

4.1. Разработка плагина датчика

4.2. Добавление нового параметра командной строки

4.2.1. Подкоманды

4.2.2. Опции командной строки

4.2.3. Обработка ошибок

4.2.4. Разбор аргументов Click

4.2.5. Встроенные параметры

4.3. Разрешение сторонних плагинов датчиков

5 Альтернативные интерфейсы

5.1. Веб-микросервисы

5.1.1. WSGI

5.1.2. Проектирование API

5.1.3. Аутентификация

5.1.4. Flask

5.1.5. Декораторы в Python

5.1.6. Тестирование функции представления

5.1.7. Развертывание

5.2. Расширение программного обеспечения третьей стороной

5.2.1. Согласование ситуативной сигнатуры с равноправными пользователями

5.2.2. Абстрактные базовые классы

5.2.3. Запасные стратегии

5.2.4. Паттерн Адаптер

5.2.5. Динамическое генерирование класса

5.2.6. Форматы сериализации

5.3. Исправление ошибки сериализации в нашем коде

5.4. Версионирование API и тестопригодность

6 Процесс агрегирования

6.1. Cookiecutter

6.1.1. Создание нового шаблона

6.2. Создание пакета агрегирования

6.2.1. Типы баз данных

6.2.2. Объектно-реляционные отображения

6.2.3. Версионирование базы данных

6.2.4. Команды alembic

6.2.5. Загрузка данных

6.3. Новые технологии

6.3.1. Базы данных

6.3.2. Поведение пользовательских атрибутов

6.3.3. Генераторы

7 Асинхронный ввод-вывод

7.1. Тестирование асинхронного кода

7.1.1. Тестирование нашей программы

7.1.2. Тестовые серверы и фикстуры pytest с очисткой

7.1.3. Область видимости фикстур

7.1.4. Использование подставных объектов для упрощения автономного тестирования

7.1.5. Подставные объекты с ветвящейся логикой

7.1.6. Классы данных

7.1.7. Тестовые методы

7.2. Асинхронная работа с базами данных

7.2.1. Классический стиль SQLAlchemy

7.2.2. Примеры задания интерполируемых значений, в различных стандартах SQL

7.2.3. Использование метода run_in_executor

7.2.4. Запрос данных и сложные запросы

7.2.5. Альтернативы, асинхронные ORM

7.3. Глобальные переменные в асинхронном коде

8 Повышение быстродействия

8.1. Оптимизация функции

8.1.1. Профилирование и потоки

8.1.2. timeit

8.1.3. line_profler

8.1.4. yappi

8.1.5. Tracemalloc

8.1.6. New Relic

8.2. Оптимизация потока управления

8.2.1. Сложность

8.2.2. Визуализация данных профилирования

8.2.3. Кеширование

9 Отказоустойчивость

9.1. Обработка ошибок

9.1.1. Получение элементов из контейнера

9.1.2. Абстрактные базовые классы

9.1.3. Типы исключений

9.1.4. Пользовательские исключения

9.1.5. Создание новых типов исключений

9.1.6. Наличие нескольких исключений

9.1.7. Исключение в блоке except или fnally

9.1.8. raise from

9.1.9. Тестирование обработки исключений

9.2. Фильтры предупреждений

9.3. Протоколирование

9.3.1. Вложенные регистраторы

9.3.2. Пользовательские действия

9.3.3. Конфигурация протоколирования

9.3.4. Другие обработчики

9.4. Проблемы на этапе проектирования

9.4.1. Опрос датчиков по расписанию

9.4.2. API и фильтрация

10 Обратные вызовы и анализ данных

10.1. Поток данных генератора

10.1.1. Генераторы, потребляющие свой собственный выход

10.1.2. Улучшенные генераторы

10.1.3. Использование классов

10.1.4. Рефакторинг функций, возвращающих излишние значения

10.1.5. Очереди

10.1.6. Выбор потока управления

10.2. Метод передачи данных

10.2.1. Сопрограммы для анализа

10.2.2. Подача данных

10.2.3. Выполнение процесса анализа

10.3. Состояния процесса и обратные вызовы

10.4. Расширенный состав действий

В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.


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

Открытое программное обеспечение — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.

В конце обучения на курсах проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненные в процессе обучения.

Учебный центр "Интерфейс" оказывает консалтинговые услуги по построению моделей бизнес-процессов, проектированию информационных систем, разработке структуры баз данных и т.д.

  • Нужна помощь в поиске курса?
    Наша цель заключается в обеспечении подготовки специалистов, когда и где им это необходимо. Возможна корректировка программ курсов по желанию заказчиков! Мы расскажем Вам о том, что интересует именно Вас, а не только о том, что жестко зафиксировано в программе курса. Если вам нужен курс, который вы не видите на графике или у нас на сайте, или если Вы хотите пройти курс в другое время и в другом месте, пожалуйста, сообщите нам, по адресу mail@interface.ru или shopadmin@itshop.ru
  • Поговорите со своим личным тренинг-менеджером!
    Мы предоставляет Вам индивидуальное обслуживание. Если у вас есть потребность обсудить, все вопросы касательно обучения, свяжитесь, пожалуйста c нами по телефонам: +7 (495) 925-0049, + 7 (495) 229-0436. Или любым другим удобным для Вас средствами связи, которые Вы можете найти на сайтах www.interface.ru или www.itshop.ru

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/iservices/training.asp?iId=413422