Thinking in Python: безкоштовна книжка Брюса Екеля про типи й дизайн
Брюс Екель опублікував Thinking in Python — безкоштовну книжку для середнього та високого рівня з п'яти частин і 47 розділів, орієнтовану на Python 3.15, з PDF та EPUB на GitHub.
Брюс Екель, автор попередніх книжок серії «Thinking in», зокрема Thinking in Java, опублікував «Thinking in Python: Fluency, Types, and Design». Повний текст вільно читається на thinkinginpython.com, де, за словами сайту, завжди лежить поточна версія; збірки PDF та EPUB доступні з релізу на GitHub, а приклади й розв'язки вправ живуть у тому самому репозиторії.
Що охоплює книжка
Книжка складається з п'яти частин і 47 пронумерованих розділів, а також додатків про відстеження ефектів і про перевіряч ефектів. Частина I, «Основи», — швидкий тур мовою: контейнери, потік керування, функції, модулі й пакети, класи, статичні типи, атрибути класів і звільнення ресурсів. Частина II, «Техніки», охоплює тестування, датакласи як типи, зіставлення зі зразком, декоратори, контекстні менеджери, генераторні вирази й метапрограмування, і завершується продуктивністю та конкурентністю. Частина III, «Патерни», проходить класичні патерни проєктування і переосмислює кожен для Python. Частина IV, «Функційне програмування», розповідає про чисті функції, інструменти functools та itertools, помилки як значення замість винятків і спектр гарантій аж до машинно перевіреного доведення. Частина V, «Ефекти», оглядає мови, які відстежують ефекти в типі функції, розвиває протокол генераторів і застосовує ідею на практиці з бібліотекою stateless.
Для кого це
Екель пише для програмістів, які вже вміють програмувати — іншою мовою або Python — і адресує книжку середньому та високому рівню: вона не вводить поняття строго по черзі й обирає теми не за тим, де вони стоять на шляху початківця, а за тим, чи цікаві вони. Передбачається впевнене володіння функціями, класами, об'єктами, успадкуванням і звичними контейнерами. Більшість розділів самодостатні, тож книжку можна читати підряд або відкривати будь-де. Частину I можна переглянути чи пропустити, якщо Python ви вже знаєте, з одним винятком — розділ про статичні типи, адже всі наступні розділи анотують свої приклади. Текст орієнтований на Python 3.15, а вступ зауважує, що багато розділів почалися як презентації, здебільшого на PyCon.
Суперечка про патерни
Книжка — не менше аргумент, ніж довідник. Її заявлена мета — уміння обирати найменше з того, що працює, вибудуване з інсайтів, ідіом і патернів. Вона також ставить під сумнів самі патерни проєктування: більшість із них, стверджує автор, виникли, щоб обійти межі статичних мов із важким успадкуванням, а в Python багато з них слабшає або зникає — синглтон це модуль, відвідувач це функція, що диспетчеризує за типом. Перш ніж застосувати ідіому чи патерн, книжка питає, чи мова вже розв'язує проблему, і додає складність лише тоді, коли відповідь — ні.
Ліцензія та підтримка
Текст поширюється за ліцензією CC BY-NC-ND 4.0 і доступний для читання безкоштовно. Екель просить читачів, яким книжка допомогла, підтримати роботу через GitHub Sponsors або Ko-fi, додаючи, що жодних зобов'язань немає і на отримуваний матеріал це не впливає. На обкладинці — пітон, згорнутий у знак нескінченності.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.