Python для гиков: Создавайте эффективные приложения, используя лучшие практики программирования

Python для гиков: Создавайте эффективные приложения, используя лучшие практики программирования

Python для гиков: Создавайте эффективные приложения, используя лучшие практики программирования
Автор: Азиф Мухаммад
Переводчик: Попович Марина
Дата выхода: 2024
Издательство: БХВ-Петербург
Количество страниц: 434
Размер файла: 21,2 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Об авторе....15

О рецензентах....16

Предисловие....17

Для кого предназначена эта книга....17

О чем эта книга....18

Как получить максимальную отдачу от книги....19

Загрузка файлов с примерами кода....19

Условные обозначения....20

Раздел 1. Python помимо основ....22

Глава 1. Оптимальный жизненный цикл разработки на Python....24

Культура и сообщество Python....24

Этапы проекта Python....27

Стратегия процесса разработки....28

Итерация по этапам....29

Стремление к MVP в первую очередь....29

Стратегия разработки для специализированных предметных областей....30

Эффективное документирование кода Python....33

Комментарии Python....33

Docstring....33

Документация на уровне функций или классов....35

Разработка эффективной схемы именования....36

Методы....37

Переменные....37

Константы....38

Классы....38

Пакеты....39

Модули....39

Соглашения об импорте....39

Аргументы....39

Полезные инструменты....39

Системы контроля версий....40

Что не стоит хранить в репозитории системы контроля версий....40

Понимание стратегий развертывания кода....41

Пакетная разработка....41

Среды разработки Python....43

IDLE....43

Sublime Text....43

Atom....43

PyCharm....43

Visual Studio Code....44

PyDev....44

Spyder....44

Заключение....44

Вопросы....45

Дополнительные ресурсы....45

Ответы....45

Глава 2. Использование модулей для сложных проектов....46

Технические требования....47

Знакомство с модулями и пакетами....47

Импорт модулей....47

Оператор import....49

Оператор __import....53

Инструмент importlib.importmodule....53

Абсолютный и относительный импорт....54

Загрузка и инициализация модуля....56

Загрузка модуля....56

Установка параметров для специальных переменных....56

Выполнение кода....57

Стандартные модули....58

Написание многоразовых модулей....59

Независимая функциональность....59

Генерализация функционала....60

Традиционный стиль программирования....61

Четко определенная документация....62

Сборка пакетов....63

Именование....64

Файл инициализации пакета....64

Сборка пакета....64

Доступ к пакетам из любого расположения....67

Общий доступ к пакету....71

Создание пакета в соответствии с рекомендациями РуРА....71

Установка из локального исходного кода с помощью pip....74

Публикация пакета в Test PyPI....76

Установка пакета из PyPI....77

Заключение....78

Вопросы....78

Дополнительные ресурсы....78

Ответы....79

Глава 3. Расширенное объектно-ориентированное программирование на Python....80

Технические требования....81

Знакомство с классами и объектами....81

Различия между атрибутами класса и атрибутами экземпляра....81

Конструкторы и деструкторы классов....84

Различия между методами класса и методами экземпляра....85

Специальные методы....86

Принципы ООП....87

Инкапсуляция данных....88

Объединение данных и действий....88

Сокрытие информации....90

Защита данных....92

Традиционный подход к использованию геттеров и сеттеров....92

Использование декоратора property....93

Расширение классов с помощью наследования....95

Простое наследование....95

Множественное наследование....97

Полиморфизм....98

Перегрузка метода....98

Переопределение метода....99

Абстракция....101

Композиция как альтернативный подход к проектированию....103

Утиная типизация в Python....105

Когда не стоит использовать ООП в Python....106

Заключение....107

Вопросы....107

Дополнительные ресурсы....108

Ответы....108

Раздел 2. Расширенные концепции программирования....110

Глава 4. Библиотеки Python для продвинутого программирования....112

Технические требования....112

Введение в контейнеры данных Python....113

Строки....113

Списки....114

Кортежи....115

Словари....115

Множества....116

Итераторы и генераторы для обработки данных....117

Итераторы....117

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

Обработка файлов в Python....123

Операции с файлами....124

Обработка ошибок и исключений....127

Работа с исключениями в Python....128

Вызов исключений....130

Определение пользовательских исключений....131

Модуль logging в Python....132

Основные компоненты системы легирования....133

Работа с модулем logging....135

Что стоит и не стоит записывать в журнал....141

Заключение....142

Вопросы....142

Дополнительные ресурсы....142

Ответы....142

Глава 5. Тестирование и автоматизация с помощью Python....144

Технические требования....145

Понимание различных уровней тестирования....145

Модульное тестирование....146

Интеграционное тестирование....146

Системное тестирование....146

Приемочное тестирование....147

Работа с тестовыми фреймворками Python....147

Работа с фреймворком unittest....149

Фреймворк тестирования pytest....158

Разработка через тестирование....166

Красный....166

Зеленый....167

Рефакторинг....167

Автоматизированная непрерывная интеграция....168

Заключение....169

Вопросы....169

Дополнительные ресурсы....169

Ответы....170

Глава 6. Дополнительные советы и приемы Python....171

Технические требования....171

Расширенные приемы использования функций в Python....172

Функции counter, itertools и zip для итерационных задач....172

Использование методов filter, map и reduce для преобразования данных....176

Создание лямбда-функций....179

Внедрение одной функции в другую....180

Изменение поведения функции с помощью декораторов....182

Расширенные концепции структур данных....188

Внедрение словаря в словарь....188

Использование включений....191

Введение в Pandas DataFrame....193

Операции с объектом DataFrame....194

Сложные случаи использования DataFrame....199

Заключение....204

Вопросы....205

Дополнительные ресурсы....205

Ответы....205

Раздел 3. Масштабирование за пределы одного потока....206

Глава 7. Многопроцессорная обработка, многопоточность и асинхронное программирование....208

Технические требования....209

Многопоточность в Python и ее ограничения....209

Слепое пятно Python....210

Ключевые компоненты многопоточного программирования на Python....211

Практический пример: многопоточное приложение для загрузки файлов с Google Диска....219

Многопроцессорная обработка....222

Создание нескольких процессов....222

Обмен данными между процессами....225

Обмен объектами между процессами....229

Синхронизация процессов....231

Практический пример: многопроцессорное приложение для загрузки файлов с Google Диска....232

Асинхронное программирование для адаптивных систем....234

Модуль asyncio....235

Распределение задач с помощью очередей....237

Практический пример: асинхронное приложение для загрузки файлов с Google Диска....239

Заключение....241

Вопросы....241

Дополнительные ресурсы....242

Ответы....242

Глава 8. Масштабирование Python с помощью кластеров....243

Технические требования....244

Возможности кластеров для параллельной обработки....244

Hadoop MapReduce....245

Apache Spark....247

Устойчивые распределенные наборы данных (RDD)....250

Операции с RDD....250

Создание RDD....251

PySpark для параллельной обработки данных....252

Создание программ SparkSession и SparkContext....254

PySpark для операций с RDD....255

PySpark DataFrames....258

PySpark SQL....262

Практические примеры использования Apache Spark и PySpark....263

Пример 1: калькулятор числа п в Apache Spark....263

Заключение....269

Вопросы....270

Дополнительные ресурсы....270

Ответы....271

Глава 9. Программирование на Python для облака....272

Технические требования....272

Знакомство с облачными возможностями для приложений Python....273

Среды разработки Python для облака....273

Облачные среды выполнения для Python....275

Создание веб-сервисов Python для облачного развертывания....277

Использование Google Cloud SDK....278

Использование веб-консоли GCP....285

Использование Google Cloud Platform для обработки данных....288

Введение в основы Apache Beam....288

Конвейеры Apache Beam....290

Создание конвейеров для Cloud Dataflow....295

Заключение....299

Вопросы....300

Дополнительные ресурсы....300

Ответы....301

Раздел 4. Python для веб-разработки, облака и сети....302

Глава 10. Использование Python для разработки веб-приложений и REST API....304

Технические требования....305

Требования к веб-разработке....305

Веб-фреймворки....305

Пользовательский интерфейс....306

Веб-серверсервер приложений....307

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

Безопасность....308

API....308

Документация....308

Знакомство с фреймворком Flask....309

Создание базового веб-приложения с маршрутизацией....309

Обработка запросов с разными типами НТТР-методов....311

Отображение статического и динамического контента....313

Извлечение параметров из НТТР-запроса....314

Взаимодействие с системами управления базами данных....316

Обработка ошибок и исключений в веб-приложениях....319

Создание REST API....322

Использование Flask для REST API....323

Разработка REST API для доступа к базе данных....325

Пример: создание веб-приложения с помощью REST API....327

Заключение....332

Вопросы....333

Дополнительные ресурсы....333

Ответы....333

Глава 11. Разработка микросервисов на Python....335

Технические требования....335

Введение в микросервисы....336

Практические рекомендации по созданию микросервисов....338

Создание приложений на базе микросервисов....339

Варианты разработки микросервисов на Python....340

Варианты развертывания микросервисов....341

Разработка приложения на основе микросервисов....342

Заключение....353

Вопросы....353

Дополнительные ресурсы....353

Ответы....354

Глава 12. Создание бессерверных функций на Python....355

Технические требования....356

Знакомство с бессерверными функциями....356

Преимущества бессерверных функций....357

Варианты использования....357

Варианты развертывания бессерверных функций....358

Написание бессерверных функций....359

Создание облачной функции на основе HTTP с помощью консоли GCP....360

Практический пример: создание приложения для уведомлений о событиях в облачном хранилище....364

Заключение....368

Вопросы....368

Дополнительные ресурсы....368

Ответы....368

Глава 13. Python и машинное обучение....370

Технические требования....371

Введение в машинное обучение....371

Использование Python для машинного обучения....373

Библиотеки машинного обучения в Python....373

Рекомендации по обучающим данным....375

Создание и оценка модели машинного обучения....376

Процесс построения модели машинного обучения....376

Создание примера машинного обучения....377

Оценка модели с помощью кросс-валидации и тонкой настройки гиперпараметров....382

Сохранение ML-модели в файл....385

Развертывание и прогнозирование ML-модели в GCP Cloud....386

Заключение....389

Вопросы....389

Дополнительные ресурсы....389

Ответы....390

Глава 14. Python для автоматизации сети....391

Технические требования....392

Введение в автоматизацию сети....392

Плюсы и минусы автоматизации сети....393

Варианты использования....394

Взаимодействие с сетевыми устройствами....395

Протоколы для взаимодействия с сетевыми устройствами....395

Взаимодействие с сетевыми устройствами с помощью библиотек Python на основе SSH....398

Взаимодействие с сетевыми устройствами с помощью NETCONF....405

Интеграция с системами управления сетью....409

Использование конечных точек сервиса определения местоположения....410

Получение токена аутентификации....411

Получение сетевых устройств и инвентаризация интерфейсов....412

Обновление порта на сетевом устройстве....413

Интеграция с событийно-ориентированными системами....415

Создание подписок для Apache Kafka....417

Обработка событий от Apache Kafka....418

Продление и удаление подписки....419

Заключение....419

Вопросы....420

Дополнительные ресурсы....420

Ответы....421

Предметный указатель....422

Книга подробно рассказывает о разработке, развертывании и поддержке крупномасштабных проектов на Python. Представлены такие концепции, как итераторы, генераторы, обработка ошибок и исключений, обработка файлов и ведение журналов. Приведены способы автоматизации тестирования приложений и разработки через тестирование (TDD). Рассказано о написании приложений с использованием кластера Apache Spark для обработки больших данных, о разработке и развертывании бессерверных программ в облаке на примере Google Cloud Platform (GCP), о создании веб-приложений и REST API, использовании среды Flask. Показаны способы применения языка для создания, обучения и оценки моделей машинного обучения, а также их развертывания в облаке, описаны приемы использования Python для извлечения данных с сетевых устройств и систем управления сетью (NMS).

Для программистов

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

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

Вы изучите:

  • Принципы разработки и управления сложными проектами
  • Способы автоматизации тестирования приложений и разработки через тестирование (TDD)
  • Многопоточность и многопроцессорность в Python
  • Написание приложений с использованием кластера Apache Spark для обработки больших данных
  • Разработку и развертывание бессерверных программ в облаке на примере Google Cloud Platform (GCP)
  • Создание на Python веб-приложений и REST API, использование среды Flask
  • Использование Python для извлечения данных с сетевых устройств и систем управления сетью (NMS)
  • Применение Python для анализа данных и машинного обучения

Похожее:

Список отзывов:

Нет отзывов к книге.