Приветствуем, коллеги. На связи Олег Сивченко @OlegSivchenko.

Уместен и закономерен ваш интерес, как мы обзаводимся правами на перевод зарубежных книг и где берём новинки. Такой вопрос задал нам читатель @PopovGP. Действительно, книгоиздательская отрасль не один год приспосабливалась к современным реалиям, но один интересный новый тренд действительно стоит раскрыть подробнее: мы стали активнее искать и рассматривать небольшие издательства, настроенные на сотрудничество. Так, уважаемый коллега @Holmogorov завершил длительный поиск базовой книги по Jetpack Compose, найдя в небольшом американском издательстве «Payload Publishing» отличный труд Нила Смита «Основы JetPack Compose: Разработка приложений для Android с помощью Jetpack Compose, Android Studio и Kotlin». Эта книга вышла в августе.

О другой очень похожей находке я хочу рассказать вам сегодня. Это совсем свежая новинка «Программирование бэкенда на Python. Практическое руководство» под авторством Тима Питерса. Обнаружили мы её в каталоге маленького индийского издательства «GitForGits».

Не секрет, что своей нынешней популярности язык Python добился благодаря огромной экосистеме библиотек и тому, насколько он упростил работу в столь разных сферах как машинное обучение и информационная безопасность. Этот успех стал возможен во многом благодаря возросшей вычислительной мощности компьютеров и либерализации требований к работе с памятью. Тем не менее, базовая экологическая ниша Python, в которой он съел PHP и не даёт как следует закрепиться Golang – это автоматизация рутинных задач, скрипты и в целом чёрная работа на бэкенде.

Мы осторожно подходим к выбору книг по Python, в особенности, переводных — слишком насыщен ими рынок, причём, попадается откровенный скам «научись программировать за 4 часа». Однако книга Тима Питерса «Python Backend Programming» стала для нас рискованной, но привлекательной ставкой. Это был наш первый заход в тему FastAPI и уже не первый – во Flask.

Под спойлером — скриншоты оглавления.

Оглавление книги

Книга будет для вас, прежде всего, ознакомительной, но некоторые её хайлайты отмечу отдельно. Python развивается, и теперь используется даже для решения таких задач enterprise-уровня, к которым лет 10 назад можно было подступиться только на Java. Я взялся исследовать эту книгу, прежде всего, потому, что нашёл в ней разбор Docker и даже Kubernetes. Не секрет, что контейнеризация в Docker сейчас пользуется растущей популярностью, проникая в те сферы, где ранее доминировала JVM, а де-факто стандартным инструментом оркестрации контейнеров является Kubernetes. Об этих инструментах — одна из самых продвинутых частей книги, главы 8-9. Недавно в моём редакционном блоге с техническими переводами я разместил публикацию о том, как в наши дни собрать собственный ЦОД в центре города.  Это чудо инженерии настолько походит на ошибку выжившего и просит ярлык «не пытайтесь повторить!», что, думаю, развеивает любые сомнения — в реалистичных условиях без облачного хостинга и контейнеров Docker не обойтись. Но автоматизировать эти задачи вам придётся именно на Python, и без элементарных примеров, изложенных в книге Питерса,  по-хорошему не обойтись. Другой важнейшей темой, рассмотренной в книге, является настройка и эксплуатация сервера Nginx, чья доля на рынке говорит сама за себя.

Особого упоминания заслуживает глава о 6 «Асинхронное программирование в Python». Она готовит вас к более сложным темам, например, к работе с брокерами сообщений Kafka и RabbitMQ, которые рассмотрены в главе 10. Но уже в главе 6 автор знакомит вас с устройством веб-сервера, очередями сообщений, корутинами, механизмом asyncio и даже предлагает работающий пример в коде, который, впрочем, не превосходит по сложности «Hello world!».

С точки зрения нашего литературного редактора книга Питерса ценна своим минимальным, но очень доходчивым введением в работу с базами данных. В качестве примеров автор рассматривает традиционные MySQL и Postgresql, но уделяет внимание и нереляционной базе данных MongoDB. Эти темы рассмотрены на примере реализации базовых запросов CRUD, а также привязаны к старой доброй библиотеке SQLAlchemy, которая в Python является общим знаменателем для работы с разными базами данных. Кажется, что SQLAlchemy – конёк автора, либо он просто по умолчанию не представляет, как подружить Python с базами данных без её помощи.  Эти темы рассмотрены в главе 5, но SQLAlchemy также подробно затрагивается в главе 4, где даётся базовая информация о фреймворке FastAPI, а также в главах 2 и 3, посвящённых фреймворку Flask. Может сложиться впечатление, что Питерс вообще задумывал отдельную книгу о Flask, но то ли увлёкся вписыванием его в широкий контекст, то ли (и мы с ним согласны) решил, что аудитория Flask как такового не слишком велика. Тем не менее, Flask уделено 63 страницы, на которых уместилась решительно вся необходимая информация о нём, которую едва ли стоило разбавлять стереотипным кодом для создания «полноценной 200-страничной книжки».

Информация о Тиме Питерсе легко находится в Интернете (признаться, сложный человек, был забанен в Python-сообществе на три месяца), но я бы заострил ваше внимание на действительно важной вещи: этот человек является одним из разработчиков CPython — эталонной реализации языка, которая включает как интерпретатор, так и компилятор. Таким образом, автор на редкость хорошо разбирается именно в низкоуровневых аспектах Python, повышении производительности скриптов и в сочетаемости элементов языка, а не рекомендует просто прикрутить очередную библиотеку и посмотреть, что получится. Притом, что книга оставляет впечатление некоторой блоговости и фрагментарности, а также потребует от вас серьёзно заняться самообразованием после изучения каждой главы, на данный момент она определённо является одним из самых профессиональных курсов молодого бойца, не девальвирующих Python до программирования игр или машинального копирования длинных сниппетов кода. Книга вызвала огромный интерес торговых сетей «Буквоед» и «Читай-город», но мы будем признательны, если вы станете приобретать её у нас на сайте.

Приятного чтения!