Секреты Python: 59 рекомендаций по написанию эффективного кода
Book information
Description
пер. с англ. и ред. А. Г. Гузикевича Язык Python завоевал популярность благодаря тому, что позволяет новичкам почти сразу же браться за написание кода. Однако достигнуть цельного понимания уникальных возможностей Python чрезвычайно трудно, особенно если учесть, что на этом пути вас подстерегает множество скрытых ловушек.Книга приобщит вас к стилю программирования, выдержанному в истинном "духе Python", и поможет научиться писать исключительно надежный и высокопроизводительный код. Используя сжатый стиль изложения, пионером которого был Скотт Мейерс, автор приводит 59 описаний лучших методик программирования, дает советы и показывает кратчайшие пути решения различных задач программирования на Python, дополняя их реалистичными примерами кода. Опираясь на свой многолетний опыт создания инфраструктурных проектов для компании Google, автор раскрывает секреты малоизвестных аспектов и идиом Python, радикально влияющих на поведение и производительность кода. Вы ознакомитесь с наилучшими способами решения ключевых задач, что облегчит понимание, сопровождение и усовершенствование вашего кода. Основные темы книги: • Действенные рекомендации по основным аспектам разработки ПО с использованием версий Python 3.x и 2.x, дополненные подробными описаниями и примерами. • Лучшие методики написания функций, снижающие вероятность появления ошибок в коде. • Точное описание вариантов поведения с помощью классов и объектов. • Рекомендации относительно того, как избежать скрытых ошибок с помощью метаклассов и динамических атрибутов. • Эффективные подходы к решению проблем, связанных с одновременным и параллельным выполнением множества операций. • Усовершенствованные приемы работы со встроенными модулями Python. • Инструментальные средства и лучшие методики коллективной разработки. • Решения по отладке, тестированию и оптимизации кода. Бретт Слаткин - ведущий инженер-разработчик компании Google и соучредитель компании Google Consumer Surveys. До этого разрабатывал инфраструктуру Python для Google App Engine, адаптировал Python для управления огромным серверным парком Google и использовал Python в качестве инструмента реализации системы Google для протокола PubSubHubbub. Получил степень бакалавра в области компьютерной инженерии в Колумбийском университете в Нью-Йорке. Введение Глава 1. Мыслим категориями языка Python Рекомендация 1. Следите за тем, какую версию Python вы используете Рекомендация 2. Руководствуйтесь правилами стилевого оформления программ, изложенными в документе PEP 8 Рекомендация 3. Знайте о различиях между типами строк bytes, str и unicode Рекомендация 4. Заменяйте сложные выражения вспомогательными функциями Рекомендация 5. Умейте работать со срезами последовательностей Рекомендация 6. Избегайте совместного использования индексов начала, конца и шага в одном срезе Рекомендация 7. Используйте генераторы списков вместо функций map() и filter() Рекомендация 8. Избегайте использования более двух выражений в генераторах списков Рекомендация 9. По возможности используйте выражения-генераторы вместо генераторов длинных списков Рекомендация 10. По возможности используйте функцию enumerate() вместо функции range() Рекомендация 11. Используйте функцию zip() для параллельной обработки итераторов Рекомендация 12. Избегайте использования блоков else после циклов for и while Рекомендация 13. Старайтесь использовать возможности каждого из блоков конструкции try/except/else/finally Глава 2. Функции Рекомендация 14. Использование исключений предпочтительнее возврата значения None Рекомендация 15. Знайте, как замыкания взаимодействуют с областью видимости переменных Рекомендация 16. Не упускайте возможность использовать генераторы вместо возврата списков Рекомендация 17. Не забывайте о мерах предосторожности при итерировании аргументов Рекомендация 18. Снижайте визуальный шум с помощью переменного количества позиционных аргументов Рекомендация 19. Обеспечивайте опциональное поведение с помощью именованных аргументов Рекомендация 20. Используйте значение None и средство Docstrings при задании динамических значений по умолчанию для аргументов Рекомендация 21. Повышайте ясность кода, используя именованные аргументы Глава 3. Классы и наследование Рекомендация 22. Отдавайте предпочтение структуризации данных с помощью классов, а не словарей или кортежей Рекомендация 23. Принимайте функции вместо классов в случае простых интерфейсов Рекомендация 24. Используйте полиморфизм @classmethod для конструирования объектов обобщенным способом Рекомендация 25. Инициализация родительских классов с помощью встроенной функции super() Рекомендация 26. Используйте множественное наследование лишь для примесных вспомогательных классов Рекомендация 27. Предпочитайте общедоступные атрибуты закрытым Рекомендация 28. Используйте наследование от классов из модуля collections.abc для создания пользовательских контейнерных типов Глава 4. Метаклассы и атрибуты Рекомендация 29. Используйте простые атрибуты вместо методов get() и set() Рекомендация 30. Старайтесь использовать декораторы @property вместо рефакторинга атрибутов Рекомендация 31. Используйте дескрипторы для повторно используемых методов @property Рекомендация 32. Используйте методы __getattr__(), __getattribute__() и __setattr__() для отложенных атрибутов Рекомендация 33. Верификация подклассов с помощью метаклассов Рекомендация 34. Регистрируйте существование классов с помощью метаклассов Рекомендация 35. Аннотирование атрибутов классов с помощью метаклассов Глава 5. Одновременность и параллелизм Рекомендация 36. Использование модуля subprocess для управления дочерними процессами Рекомендация 37. Используйте потоки для блокирования операций ввода-вывода, но но для параллелизма Рекомендация 38. Используйте класс Lock для предотвращения гонки данных в потоках Рекомендация 39. Использование очередей для координации работы потоков Рекомендация 40. Используйте сопрограммы для одновременного выполнения нескольких функций Рекомендация 41. Старайтесь использовать модуль concurrent.futures для обеспечения истинного параллелизма Глава 6. Встроенные модули Рекомендация 42. Определяйте декораторы функций с помощью модуля functools.wraps Рекомендация 43. Обеспечивайте возможность повторного использования блоков try/finally с помощью инструкций contextlib и with Рекомендация 44. Повышайте надежность встроенного модуля pickle с помощью модуля copyreg Рекомендация 45. Используйте модуль datetime вместо модуля time для локальных часов Рекомендация 46. Используйте встроенные алгоритмы и структуры данных Рекомендация 47. Используйте класс Decimal, когда на первый план выходит точность Рекомендация 48. Знайте, где искать модули, разработанные сообществом Python Глава 7. Совместная работа Рекомендация 49. Снабжайте строками документирования каждую функцию, класс и модуль Рекомендация 50. Используйте пакеты для организации модулей и предоставления стабильных API Рекомендация 51. Изолируйте вызывающий код от API, определяя базовое исключение Exception Рекомендация 52. Знайте, как устранять циклические зависимости Рекомендация 53. Используйте виртуальные среды для изолированных и воспроизводимых зависимостей Глава 8. Производство Рекомендация 54. Используйте код с областью видимости модуля для конфигурирования сред развертывания Рекомендация 55. Используйте строки repr для вывода отладочной информации Рекомендация 56. Тестируйте любой код с помощью модуля unittest Рекомендация 57. Используйте интерактивную отладку с помощью пакета pdb Рекомендация 58. Сначала — профилирование, затем — оптимизация Рекомендация 59. Используйте модуль tracemalloc для контроля памяти и предотвращения ее утечки Предметный указатель
Similar books
ФОРТРАН (Программированное учебное пособие)
1976 · PDF
Adobe Photoshop CS6 для всех
2013 · PDF
Параллельное программирование многопоточных систем с разделяемой памятью
2014 · PDF
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF