RUSSIAN

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

Book information

Publisher
ДМК
Year
2021
ISBN
9785970609309, 9781484257920
Language
russian
Format
PDF
Filesize
6 MB (6237009 bytes)
Pages
\503
Time added
2021-07-12 17:50:49

Description

В этой книге объясняются языковые средства Python, которые обычно не рассматриваются в пособиях: от повторно используемых консольных скриптов, которые одновременно играют роль микросервисов благодаря точкам входа, до эффективного использования модуля asyncio для объединения данных из раз- личных источников. Попутно рассматривается проверка соблюдения стандартов кодирования с по мощью аннотаций типов, тестирование с низкими накладными расходами и другие автоматизированные проверки качества кода, применяемые на практике для организации процесса разработки надежного ПО. Некоторые мощные возможности Python зачастую иллюстрируются на ис- кусственных примерах, когда то или иное средство описывается в изоляции от всего остального. Здесь же на примере проектирования и создания реального приложения от прототипа до готового продукта читатель видит не только, как работают различные части программы, но и как они интегрируются в процессе разработки более крупной системы. Кроме того, в книге присутствуют интересные отступления и рекомендации по использованию библиотек, взятые из сессий во- просов и ответов на конференциях по Python, а также обсуждение современных передовых практик и методов, позволяющих создавать ясный и удобный для сопровождения код. Эта книга ориентирована на разработчиков, которые уже умеют писать прос­ тые программы на Python и хотят разобраться в том, когда уместно использовать новые прогрессивные средства языка. Профессиональная разработка на Python_переплет Профессиональная разработка на Python.pdf От издательства Об авторе О технических рецензентах Благодарности Введение Глава 1. Прототипирование и среды разработки Прототипирование в Python Прототипирование с по­мощью REPL Прототипирование с по­мощью Python-скрипта Прототипирование с по­мощью скриптов и pdb Посмертная отладка Прототипирование с по­мощью Jupyter Блокноты Прототипирование в этой главе Подготовка окружения Подготовка нового проекта Прототипирование скриптов Установка зависимостей Экспорт в py-файл Построение интерфейса командной строки Модуль sys и переменная argv argparse click Расширение границ возможного Удаленные ядра Разработка кода, который невозможно выполнить локально Окончательный скрипт Резюме Дополнительные ресурсы Глава 2. Тестирование, проверка типов, стандарты кодирования Тестирование Когда писать тесты Создание функций форматирования для повышения тестопригодности pytest Автономное, интеграционное и функциональное тестирование Фикстуры Pytest Покрытие Проверка типов Установка mypy Добавление аннотаций типов Подклассы и наследование Обобщенные типы Отладка и чрезмерное увлечение типизацией Когда прибегать к типизации, а когда избегать ее Хранение аннотаций типов отдельно от кода Стандарты кодирования Установка flake8 и black Исправление существующего кода Автоматический прогон Применение к запросам на включение изменений Резюме Дополнительные ресурсы Глава 3. Скрипты для создания пакетов Терминология Структура каталога Скрипты настройки и метаданные Зависимости Декларативные конфигурации Чего избегать в файле setup.py Условные зависимости Файл Readme в метаданных Номера версий Использование файла setup.cfg Специальные серверы каталогов Настройка pypiserver Устойчивость к сбоям Конфиденциальность Целостность Формат wheel и выполнение кода при установке Создание wheel-файлов по существующим дистрибутивам Установка консольного скрипта с помощью точек входа Файлы README, DEVELOP и CHANGES Формат Markdown Формат reStructured Файл README Файл CHANGES.md и номера версий Семантическое версионирование Календарное версионирование Закрепление версий зависимостей Слабое закрепление Строгое закрепление Какую схему закрепления использовать Загрузка версии на сервер Конфигурирование twine Резюме Дополнительные ресурсы Глава 4. От скрипта к каркасу Написание плагина датчика Разработка плагина Добавление нового параметра командной строки Подкоманды Опции командной строки Обработка ошибок Делегирование разбора аргументов Click Поддержка Click пользовательских типов аргументов Встроенные параметры Разрешение сторонних плагинов датчиков Обнаружение плагинов по фиксированным именам Обнаружение плагинов с по­мощью точек входа Конфигурационные файлы Переменные окружения Сравнение apd.sensors с похожими программами Резюме Дополнительные ресурсы Глава 5. Альтернативные интерфейсы Веб-микросервисы WSGI Проектирование API Аутентификация Flask Декораторы в Python Замыкания Модификация переменных в родительских областях видимости Простые декораторы Декораторы с аргументами Безопасность на основе декораторов Тестирование функции представления Развертывание Расширение программного обеспечения третьей стороной Согласование ситуативной сигнатуры с равноправными пользователями Абстрактные базовые классы Запасные стратегии Паттерн Адаптер Динамическое генерирование класса Другие форматы сериализации Собираем все вместе Исправление ошибки сериализации в нашем коде Наведение порядка Версионирование API Тестопригодность Резюме Дополнительные ресурсы Глава 6. Процесс агрегирования Cookiecutter Создание нового шаблона Создание пакета агрегирования Типы баз данных Наш пример Объектно-реляционные отображения Версионирование базы данных Другие полезные команды alembic Загрузка данных Новые технологии Базы данных Поведение пользовательских атрибутов Генераторы Резюме Дополнительные ресурсы Глава 7. Распараллеливание и асинхронное программирование Неблокирующий ввод-вывод Делаем код неблокирующим Многопоточная и многопроцессная обработка Низкоуровневые потоки Байт-код GIL Блокировки и взаимоблокировки Взаимоблокировки Избегайте глобального состояния Объединение данных Передача данных Другие примитивы синхронизации Реентерабельные блокировки Условия Барьеры Событие Семафор Объекты ProcessPoolExecutor Делаем нашу программу многопоточной Асинхронный ввод-вывод async def await async for async with Асинхронные примитивы блокировки Работа совместно с синхронными библиотеками Делаем программу асинхронной Сравнение Как сделать выбор Резюме Дополнительные ресурсы Глава 8. Дополнительные вопросы асинхронного ввода-вывода Тестирование асинхронного кода Тестирование нашей программы Тестовые серверы и фикстуры pytest с очисткой Область видимости фикстур Использование подставных объектов для упрощения автономного тестирования Подставные объекты с ветвящейся логикой Классы данных Тестовые методы Асинхронная работа с базами данных Классический стиль SQLAlchemy Неоткомпилированная mssql mysql Postgresql sqlite Использование метода run_in_executor Запрос данных Избегайте сложных запросов Запросы к представлениям Альтернативы Глобальные переменные в асинхронном коде Резюме Дополнительные ресурсы Глава 9. Просмотр данных Функции запроса Фильтрация данных Многоуровневые итераторы Дополнительные фильтры Тестирование функций запроса Параметрические тесты Отображение нескольких датчиков Обработка данных Интерактивная работа с виджетами Jupyter Глубоко вложенный синхронный и асинхронный код Наведем порядок Сохранение оконечных точек Нанесение географических данных на карты Новые типы графиков Поддержка карт в пакете apd.aggregation Обратная совместимость в классах данных Построение карты с применением новых конфигурационных объектов Резюме Дополнительные ресурсы Глава 10. Повышение быстродействия Оптимизация функции Профилирование и потоки Интерпретация отчета профилировщика Другие профилировщики timeit line_profiler yappi Tracemalloc New Relic Оптимизация потока управления Сложность Визуализация данных профилирования Кеширование Кешированные свойства Резюме Дополнительные ресурсы Глава 11. Отказоустойчивость Обработка ошибок Получение элементов из контейнера Абстрактные базовые классы Типы исключений Пользовательские исключения Создание новых типов исключений Дополнительные метаданные Трасса вызовов при наличии нескольких исключений Исключение в блоке except или finally raise from Тестирование обработки исключений Новые поведения Еще о подставных объектах и unittest.Mock Предупреждения Фильтры предупреждений Протоколирование Вложенные регистраторы Пользовательские действия Дополнительные метаданные Конфигурация протоколирования Другие обработчики Контрольные журналы Избегание проблем на этапе проектирования Опрос датчиков по расписанию API и фильтрация Резюме Дополнительные ресурсы Глава 12. Обратные вызовы и анализ данных Поток данных генератора Генераторы, потребляющие свой собственный выход Улучшенные генераторы Использование классов Использование улучшенного генератора для обертывания итерируемого объекта Рефакторинг функций, возвращающих излишние значения Очереди Выбор потока управления Конструкция для наших действий Сопрограммы для анализа Подача данных Выполнение процесса анализа Состояния процесса Обратные вызовы Расширение состава имеющихся действий Резюме Дополнительные ресурсы Эпилог Предметный указатель

Similar books

Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique

Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique

2025 · PDF

Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная

Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная

2022 · PDF

Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание

Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание

2021 · PDF

Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)

Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)

2022 · PDF

Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)

Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)

2023 · PDF

Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"

Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"

2022 · PDF