Дзен питона на русском
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Питона», или «Дзен Пайтона»). Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию).
В целом она подходит к программированию на любом языке.
Текст философии
- Красивое лучше, чем уродливое.
- Явное лучше, чем неявное.
- Простое лучше, чем сложное.
- Сложное лучше, чем запутанное.
- Плоское лучше, чем вложенное.
- Разреженное лучше, чем плотное.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки никогда не должны замалчиваться.
- Если они не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один и, желательно, только один очевидный способ сделать это.
- Хотя он поначалу может быть и не очевиден, если вы не голландец [^1].
- Сейчас лучше, чем никогда.
- Хотя никогда зачастую лучше, чем прямо сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Если реализацию легко объяснить — идея, возможно, хороша.
- Пространства имён — отличная штука! Будем делать их больше!
Автор этой философии — Тим Петерс. Оригинал на английском:
>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
Отсылка к нидерландскому программисту, создавшему язык Python, Гвидо ван Россуму (нидерл. Guido van Rossum).
Язык программирования Python
Прежде чем анализировать облачную систему, реализованную с помощью Python, рассмотрим сам язык.
Python (Пайтон, отсылка к британской комик-группе Монти Пайтон), был разработан и создан голландским программистом Гвидо ван Россумом. В шутку называемый программистами на Python «великодушным пожизненным диктатором проекта». Это означает, что Гвидо наблюдает за всеми изменениями языка и выносит окончательное решение по поводу внедрения тех или иных функций, когда этого требует ситуация.
Ван Россум так же принимал участие в разработке обучающего языка программирования ABC, стал лауреатом престижной премии «Free software award» в 2001 году, работал в Google. Сейчас создатель Python трудится в Dropbox inc, а значит, напрямую связан с облачными сервисами.
Язык появился в 1991 году, заявив о себе как мультипарадигмальный (программы пишутся на одном языке, но в разных стилях). Объектно-ориентированный (работает с полями и методами). Кроссплатформенный (на Python можно с одинаковым набором возможностей программировать как на windows, так и MacOS, linux, *nix и других популярных операционных системах). Рефлективный (программа может анализировать свою структуру и изменять её по мере выполнения кода). Императивный (выполнение прямых инструкций, «приказов»). Функциональный (символьная обработка данных). Аспектно—ориентированный (программа разделяется на модули-аспекты).
То есть, имея минималистический синтаксис, не уступает, а иногда и превосходит в мощности более крупные программируемые среды. Этот минимализм позволяет повысить скорость написания программ, а так же чтения кода. При этом стандартная библиотека модулей включает себя постоянно увеличивающийся набор всевозможных функций, а недостающие пользователь может достаточно легко встроить сам.
Философия языка
Как и в других языках программирования, программы должны быть написаны с использованием особых правил — синтаксиса. Между тем, программисты на Python так же придерживаются почти догматического свода установок, так называемого Zen of Python (Дзен Пайтона):
· Красивое лучше, чем уродливо
· Сложное лучше запутанного
· Разреженное лучше плотного
· Читаемость имеет значение
· Особые случаи (исключения) не настолько особые, чтобы нарушать правила
· Практичность важнее безупречности
· Ошибки не должны замалчиваться
· Если явно не замалчиваются
· Встретив неопределённость, стоит отказаться от искушения угадать
· Должен быть один — и, желательно, только один — очевидный способ сделать это
· Хотя он может быть и не очевиден, если вы не голландец ()
· Хотя никогда зачастую лучше, чем прямо сейчас
· Если реализацию сложно объяснить — идея плоха
· Если легко — возможно, хороша
· Пространства имён — отличная штука! Сделаем их побольше!
Из этих полушутливых правил следует следующий вывод: программа на Пайтон прежде всего должна быть простой в реализации и легкой в построении, но если того требует ситуация, программист волен сам решать, как ему составлять код.
К своду правил так же можно отнести и так называемый PEP8. Это набор общих стилевых правил по написанию кода для Пайтон. PEP8 состоит из множества страниц с разобранными рекомендациями по оформлению кода, общих советов и часто задаваемых вопросов с примерами реализации. Хотя он может помочь в решении самых базовых проблем начинающего программиста, в большинстве случаев команды программистов сами дополняют свой PEP8, повышая производительность каждого участника ив сей команды в целом. Ниже рассмотрим некоторые из обязательных к рассмотрению правил:
· Использовать 4 пробела для отступа, не использовать табуляцию, не смешивать табы (клавиша Tab) и пробелы.
· Максимальная длина строки в 79 символов. Для разрыва используйте отступы и бэкслеш (клавиша ).
· Функции верхнего уровня и определения классов следует отделять двумя пустыми строками.
· Каждый импортируемый модуль с новой строки
· Избегайте лишних пробелов внутри скобок, перед запятыми, точкой с запятой и двоеточиями.
· Обновляйте комментарии вместе с кодом
· Избегать имён из одиночных букв I, O
· Давайте подробные имена переменным
· Не сравнивайте булевы переменные с True и False
Даже следуя самым основным правилам, программист на Пайтон создаёт код, который одинаково легко читается и анализируется. Подобный подход к написанию является одним из главных преимуществ Python среди всех языков программирования.
Дзен Python — философии программирования от Тима Петерса (PEP20)
Python является одним из самых простых и при этом мощных языков программирования. Он широко востребован сегодня, такие компании как IBM, Google, Facebook и многие другие создают свои продукты именно на Python. Также стоит отметить, что «Питон» — это язык программирования с большим потенциалом на будущее.
Для новичков этот язык очень прост в изучении, а для профессионалов он открывает большие возможности для реализации самых креативных идей, предоставляет широкий ряд инструментов для решения не только простых задач, но и сложных проектов. Все это возможно, благодаря открытости и постоянному обновлению языка.
Одним из важных вкладов в развитие Python стал свод правил Дзен Питон или как его еще называют PEP20 (python enhanced proposal — заявки на улучшение языка Питон) от Тима Петерсона.
История создания PEP20
В 1999 году Тим Петерс предложил свой свод правил по улучшению языка Питон. Дзен Python представлял собой 20 пунктов, последний из которых не был заполнен. Автор предложил написать последнее правило создателю «Питона» Гвидо Ван Россуму. Стоит отметить, что и по сей день последнее правило Дзен-философии от Тима Петерса пустое. Некоторые полагают, что таким образом автор пытался донести до нас, что правила правилами, но могут быть и исключительные ситуации, когда нужно писать код исходя из сложившихся условий, при этом игнорируя установленные нормы.
Сегодня этот свод правил такой же востребованный, как два десятка лет назад. Благодаря этому код, написанный с учетом PEP20, легко читаем для любого программиста. Это особенно актуально при реализации больших масштабных проектов, над созданием кода которых трудится целая группа программистов. Также читабельность кода важна при последующем сопровождении программного продукта – исправлении багов, выпуске обновлений.
Версии PEP
Кроме Тима Петерсона множество других заинтересованный в развитии Python людей подавали заявки на улучшение языка Питон. Каждое такое предложение получает свой номер. На сегодняшний день насчитывается порядка 8 000 таких заявок. Стоит понимать, что только часть из них были приняты. Остальные были либо оставлены на рассмотрение, либо вовсе отклонены.
Но те PEP, которые были приняты, в том числе и PEP под номером 20 от Тима Петерса, внесли свой вклад в развитие Питона.
PEP 20 в консоли
Найти Zen of Python можно на официальном сайте по языку программирования Python. Также ознакомиться с этой информацией можно в консольном приложении Python. Достаточно ввести всего одну команду import this и на экране высветиться свод из 19 правил на английском языке. Выглядит это следующим образом:
Zen of Python на русском языке
PEP20, а если быть точнее, то 19 правил по улучшению языка Питон от Тима Петерса, выглядят следующим образом на русском языке:
- Красивое лучше уродливого.
- Явное лучше неявного.
- Простое лучше сложного.
- Сложное лучше запутанного.
- Развернутое лучше вложенного.
- Разреженное лучше плотного.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки не должны замалчиваться.
- Если не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один — и, желательно, только один – очевидный способ сделать что-то.
- Хотя этот способ поначалу может быть и не очевиден, если вы не голландец.
- Сейчас лучше, чем никогда.
- Хотя никогда часто лучше, чем *прямо* сейчас.
- Если реализацию сложно объяснить – идея точно плоха.
- Если реализацию легко объяснить – возможно, идея хороша.
- Пространства имен – отличная штука! Будем использовать их чаще!
Советы по улучшению читабельности кода на Python
Благодаря философии Дзен на сегодняшний день код программ на Питоне один из самых читабельных и простых. Существует свод правил, придерживаясь которым, можно написать красивый код. Итак, нужно знать следующее:
- Наличие отступов в четыре символа делает код зрительно структурированным. Не стоит смешивать пробелы с табуляцией. При компиляции можно получить предупреждения от системы.
- Длина одной строки не должна превышать восьмидесяти символов, такой код не выглядит громоздким. Еще одно достоинство коротких строк – это возможность располагать на экране монитора сразу несколько окон с кодом.
- В код для разделения функций или каких-то больших логических блоков можно добавлять пустые строки.
- Наличие толковых комментариев облегчает последующее использование кода.
Еще больше полезных советов с примерами можно найти здесь . Следуя этим правилам можно получить хорошо читабельный код на Python. Но, чтобы облегчить задачу, можно воспользоваться какой-нибудь современной средой разработки. Так, например, выбрав PyCharm, при нажатии клавиши «Tab» автоматически проставляется нужные четыре пробела.
В заключении хочется отметить, что философия Zen of Python от Тима Петерса стала важной ступенью в развитии языка. Питон на сегодняшний день один из самых простых языков программирования для изучения, при этом он открывает широкие возможности для реализации крупных масштабных проектов.