Написать пост

Обзор книги для мидлов «Python. К вершинам мастерства» Лучано Рамальо

Аватарка пользователя Елена Капаца

Рассказали о плюсах и минусах книги «Python. К вершинам мастерства» и разобрали, кому её стоит прочесть.

Обложка поста Обзор книги для мидлов «Python. К вершинам мастерства» Лучано Рамальо

Книга обязательна к прочтению Middle-разработчикам и выделяется своими чёткими, вдумчивыми объяснениями сложных концепций. Предполагается, что читатели имеют базовые познания в Python 3, потому автор не тратит время на вводную и сразу освещает тонкости.

Обзор книги для мидлов «Python. К вершинам мастерства» Лучано Рамальо 1
Лучано Рамальо (Luciano Ramalho) – технический директор компании ThoughtWorks, лектор и автор нескольких книг о программировании. Родился и проживает в Бразилии.

Структура книги

Обложка книги с подколом от издательства o’Reilly: на иллюстрации песчаная игуана Намакуа.

Издание разделено на несколько тем:

  • модель данных;
  • структуры данных;
  • функции как объекты;
  • объектно-ориентированные идиомы (устоявшиеся паттерны питонического ООП);
  • поток управления (порядок усвоения компилятором того или иного компонента программы);
  • метапрограммирование (способность программы использовать соседние скрипты).

Код книги доступен в официальном репозитории. Но без чтения понять контекст того или иного скрипта, как правило, затруднительно.

Преимущества

Fluent Python написан в разговорном стиле, он прост и приятен для чтения. Рамальо следит за тем, чтобы терминов в тексте было не слишком много. И нередко сопровождает сложные мысли вспомогательными диаграммами и хинтами с изображением лемура:

Обзор книги для мидлов «Python. К вершинам мастерства» Лучано Рамальо 2

Многие тезисы автор подкрепляет кодом. Посмотрите на простой пример — списковое включение (List Comprehension):

Обзор книги для мидлов «Python. К вершинам мастерства» Лучано Рамальо 3

Максимально полезной для меня стала глава №5 — о функциях. Помимо необходимого минимума по теме и десятка-другого must-have терминов, вроде функций высшего порядка и анонимных функций, автор рассказывает и об аннотации ф., интроспекции и прочем. 

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

В конце каждой главы — экспертное резюме, которое экономит время на создание кода в будущем. Именно к таким сводкам возвращаешься спустя месяцы по прочтении “.. К вершинам мастерства», поскольку они направляют внимание сразу к нужному сниппету в главе и в целом часто снимают вопросы сами.

Рамальо также прекрасно показывает протокольные свойства технологии. То есть обращает Python не в объектно-, а в протокольно-ориентированный язык (ПОП). Покажу на примере.

Разницу между ООП и ПОП можно вкратце описать так. Представьте, что вы создаёте игру, в которой есть транспортные средства. Есть классы «автомобиль», «мотоциклы», и их логично сделать подвидами базового класса «моторный транспорт». Всё выглядит замечательно, пока игра не переносится в XXII век, где есть летающие автомобили. Создавать ещё один базовый класс, в котором соединяются обе функциональности, не стоит. Здесь на помощь придёт протокол, он как раз позволит автомобилям летать во второй половине игры о будущем, но ездить в первой части про настоящее. 

Если в Swift, где ПОП был впервые представлен как концепция, протоколы – это основа основ, то в Python за идею «отыгрывают» методы. Подробнее об этом прекрасно рассказывает пользователь StackOverflow claudio в этом треде

Наконец, страсть Рамальо к Python проявляется в тексте. Это делает книгу не только образовательным ресурсом, но и источником удовольствия. 

Недостатки

Глубина и темп книги могут не подойти абсолютным новичкам, поскольку:

  • Сделано допущение о том, что 200–300 базовых терминов усвоены и не замедляют особо чтение.
  • Несмотря на хороший перевод издательства ДМК, английского в коде всё равно очень много, так что знание языка считаю необходимым.
  • Стоимость массивного издания на Ozon держится в районе 3,5 тысячи рублей, что автоматом наводит на мысль купить электронную версию. Пришлось останавливать себя, чтобы не спиратить.

Работа Рамальо рекомендуется тем, кто уже имеет базовое представление о Python и хочет глубже понять философию и принципы разработки. Новичкам же прекрасно подойдёт другой бестселлер – «Изучаем Python» Марка Лутца.

Заключение

«… К вершинам мастерства» – это исключительный ресурс для стремящегося углубить своё владение Python. Это издание полно идей, применимых к программированию в целом. С ним вы научитесь на примерах создавать идиоматичный код, то есть использовать его, как предполагали создатели, эффективнее в итоге. 

К книге естественно обращаться как к справочнику и по прочтении. Пускай вас не отпугивает её объём: это мастхэв для любого серьёзного питониста.

Python
Для продолжающих
5860