Twisted из первых рук : событийное и асинхронное программирование на Python
Здесь можно купить книгу "Twisted из первых рук : событийное и асинхронное программирование на Python" в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Автор: Моше Задка, Марк Уильямс, Кори Бенфилд, Брайан Уорнер, Дастин Митчелл
Форматы: PDF
Издательство: ДМК Пресс
Год: 2020
Место издания: Москва
ISBN: 978-5-97060-795-4
Страниц: 338
Артикул: 95162
Возрастная маркировка: 16+
Краткая аннотация книги "Twisted из первых рук"
Эта книга посвящена Twisted – событийно-ориентированному сетевому фреймворку на Python, в котором можно создавать уникальные проекты. В первой части рассматриваются особенности Twisted; на практических примерах показано, как его архитектура способствует тестированию, решает общие проблемы надежности, отладки и упрощает выявление причинно-следственных связей, присущих событийно-ориентированному программированию. Детально описываются приемы асинхронного программирования, подчеркивается важность отложенного вызова функций и сопрограмм. На примере использования двух популярных приложений, treq и klein, демонстрируются сложности, возникающие при реализации веб-API с Twisted, и способы их преодоления. Вторая часть книги посвящена конкретным проектам, использующим Twisted. В число примеров входят использование Twisted с Docker, применение Twisted в роли контейнера WSGI, организация обмена файлами и многое другое. Читатель должен иметь некоторый опыт работы с Python и понимать основы контейнеров и протоколов. Знакомство с Twisted и с проектами, описанными в книге, не требуется.
Содержание книги "Twisted из первых рук : событийное и асинхронное программирование на Python"
Об авторах
Благодарности
Введение
От издательства
Часть I. ОСНОВЫ
Глава 1. Введение в событийно-ориентированное программирование с помощью Twisted
Примечание о версиях Python
Событийно-ориентированное программирование – что это?
Многократные события
Мультиплексирование и демультиплексирование
Мультиплексор select
История, аналоги и назначение
Сокеты и select
События сокета – как, что и почему
Обработка событий
Цикл обработки событий с select
Управляемые событиями клиенты и серверы
Неблокирующий ввод/вывод
Знаем, когда нужно остановиться
Отслеживание состояния
Наличие информации о состоянии усложняет программы
Управление сложностью с помощью транспортов и протоколов
Реакторы: работа с транспортом
Транспорты: работа с протоколами
Игра в пинг-понг с протоколами и транспортами
Клиенты и серверы со своими реализациями протоколов и транспортов.....42
Реакторы Twisted и протоколы с транспортами
Преимущества событийно-ориентированного программирования
Twisted и реальный мир
События и время
Повторение событий с LoopingCall
Интерфейсы событий в zope.interface
Управление потоком в событийно-ориентированных программах
Управление потоком в Twisted с помощью производителей и потребителей
Активные производители
Потребители
Пассивные производители
Итоги
Глава 2. Введение в асинхронное программирование с Twisted
Обработчики событий и их композиция
Что такое асинхронное программирование?
Заполнители для будущих значений
Асинхронная обработка исключений
Введение в Twisted Deferred
Обычные обработчики
Ошибки и их обработчики
Композиция экземпляров Deferred
Генераторы и inlineCallbacks
yield
send
throw
Асинхронное программирование с inlineCallbacks
Сопрограммы в Python
Сопрограммы с выражением yield from
Сопрограммы async и await
Ожидание завершения экземпляров Deferred
Преобразование сопрограмм в Deferred с помощью ensureDeferred
Мультиплексирование объектов Deferred
Тестирование объектов Deferred
Итоги
Глава 3. Создание приложений с библиотеками treq и Klein
Насколько важную роль играют эти библиотеки?
Агрегирование каналов
Введение в treq
Введение в Klein
Klein и Deferred
Механизм шаблонов Plating в Klein
Первая версия агрегатора каналов
Разработка через тестирование с использованием Klein и treq
Выполнение тестов на устанавливаемом проекте
Тестирование Klein с помощью StubTreq
Тестирование treq с помощью Klein
Журналирование с использованием twisted.logger
Запуск приложений Twisted с помощью twist
Итоги
Часть II. ПРОЕКТЫ
Глава 4. Twisted в Docker
Введение в Docker
Контейнеры
Образы контейнеров
runc и containerd
Клиент
Реестр
Сборка
Многоступенчатая сборка
Python в Docker
Варианты развертывания
В виртуальном окружении
В формате Pex
Варианты сборки
Один большой образ
Копирование пакетов wheel между этапами
Копирование окружения между этапами
Копирование файлов Pex между этапами
Автоматизация с использованием Dockerpy
Twisted в Docker
ENTRYPOINT и PID 1
Пользовательские плагины
NColony
Итоги
Глава 5. Использование Twisted в роли сервера WSGI
Введение в WSGI
PEP
Простой пример
Базовая реализация
Пример WebOb
Пример Pyramid
Начало
Сервер WSGI
Поиск кода
Путь по умолчанию
PYTHONPATH
setup.py
Почему Twisted?
Промышленная эксплуатация и разработка
TLS
Индикация имени сервера
Статические файлы
Модель ресурсов
Чисто статические ресурсы
Комбинирование статических файлов с WSGI
Встроенное планирование задач
Каналы управления
Стратегии параллельного выполнения
Балансировка нагрузки
Открытие сокета в режиме совместного использования
Другие варианты
Динамическая конфигурация
Приложение Pyramid с поддержкой A/B-тестирования
Плагин для поддержки AMP
Управляющая программа
Итоги
Глава 6. Tahoe-LAFS: децентрализованная файловая система
Как работает Tahoe-LAFS
Архитектура системы
Как система Tahoe-LAFS использует Twisted
Часто встречающиеся проблемы
Инструменты поддержки выполнения в режиме демона
Внутренние интерфейсы FileNode
Интеграция интерфейсных протоколов
Веб-интерфейс
Типы файлов, Content-Type, /named/
Сохранение на диск
Заголовки Range
Преобразование ошибок на возвращающей стороне
Отображение элементов пользовательского интерфейса: шаблоны Nevow
Интерфейс FTP
Интерфейс SFTP
Обратная несовместимость Twisted API
Итоги
Ссылки
Глава 7. Magic Wormhole
Как это выглядит
Как это работает
Сетевые протоколы, задержки передачи, совместимость клиентов
Сетевые протоколы и совместимость клиентов
Архитектура сервера
База данных
Транзитный клиент: отменяемые отложенные операции
Сервер транзитной ретрансляции
Архитектура клиента
Отложенные вычисления и конечные автоматы, одноразовый наблюдатель
Одноразовые наблюдатели
Promise/Future и Deferred
Отсроченные вызовы, синхронное тестирование
Асинхронное тестирование с объектами Deferred
Синхронное тестирование с объектами Deferred
Синхронное тестирование и отсроченный вызов
Итоги
Ссылки
Глава 8. Передача данных в браузерах и микросервисах с использованием WebSocket
Нужен ли протокол WebSocket?
WebSocket и Twisted
WebSocket, из Python в Python
WebSocket, из Python в JavaScript
Более мощная поддержка WebSocket в WAMP
Итоги
Глава 9. Создание приложений с asyncio и Twisted
Основные понятия
Механизм обещаний
Циклы событий
Рекомендации
Пример: прокси с aiohttp и treq
Итоги
Глава 10. Buildbot и Twisted
История появления Buildbot
Эволюция асинхронного выполнения кода на Python в Buildbot
Миграция синхронных API
Этапы асинхронной сборки
Код Buildbot
Асинхронные утилиты
«Дребезг»
Асинхронные службы
Кеш LRU
Отложенный вызов функций
Взаимодействие с синхронным кодом
SQLAlchemy
requests
Docker
Конкурентный доступ к общим ресурсам
yield как барьер конкуренции
Функции из пула потоков не должны изменять общее состояние
Блокировки Deferred
Тестирование
Имитации
Итоги
Глава 11. Twisted и HTTP/2
Введение
Цели и задачи
Бесшовная интеграция
Оптимизация поведения по умолчанию
Разделение задач и повторное использование кода
Проблемы реализации
Что такое соединение? Ценность стандартных интерфейсов
Мультиплексирование и приоритеты
Противодавление
Противодавление в Twisted
Противодавление в HTTP/2
Текущее положение дел и возможность расширения в будущем
Итоги
Глава 12. Twisted и Django Channels
Введение
Основные компоненты Channels
Брокеры сообщений и очереди
Распределенные многоуровневые системы в Twisted
Текущее положение дел и возможность расширения в будущем
Итоги
Предметный указатель
Все отзывы о книге Twisted из первых рук : событийное и асинхронное программирование на Python
С книгой "Twisted из первых рук" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Twisted из первых рук : событийное и асинхронное программирование на Python (автор Моше Задка, Марк Уильямс, Кори Бенфилд, Брайан Уорнер, Дастин Митчелл)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку