Андрій Овчаров
Latest posts by Андрій Овчаров (see all)
- Як протистояти вербуванню до деструктивного культу (секти) -
- Про мовні права громадян: не просити, а вимагати -
- Розпізнати секту вчасно, щоб не стати сектантом -
- Носіння маски під час відвідування закладів харчування і перукарень: правові питання -
- Установка и настройка пользовательской сборки Systemback (GNU/Linux) -
Программирование как творческий процесс написания программ человеком для человека, на языке программирования Python (далее – Python), очень часто подвержен следованию определённым правилам поведения.
Существование таких правил обусловлено желанием создать единый порядок, некий общепринятый стандарт, который будет обязательным для каждого, кто пишет программный код.
Python, как большинство языков программирования, имеет свой общеобязательный стандарт. Он называется PEP 8 – Style Guide for Python Code. Аналогично правилам поведения, которые существуют в нашем обществе, закрепленные в законах и регулирующие наши с вами правоотношения, правила работы с Python также устанавливают свои предписания, нарушение которых может повлечь за собой наступление негативных последствий для работоспособности и поддержки программы.
Так уже сложилось, что подобного рода предписания являются обязательными для каждого пайтониста (программист на Python) в силу ряда причин:
- Во-первых, эти правила устанавливают единый порядок написания кода и распространяются на круг программистов, которые воздействуют с ним. Таким образом, создаются взаимоотношения между программистами, которые понимают код друг друга, а также придерживаются общего стиля программирования и это положительно влияет на развитие проекта в целом. Так, например, нас с детства воспитывали правильному наведению порядка в доме. Ведь мы понимаем, что расставленные правильно предметы намного быстрее потом находятся. Это не создает беспорядок в доме и к тому же, ими могут воспользоваться и другие члены нашей семьи. Вообще, очень хорошо, когда необходимые нам предметы находятся под рукой, на своих местах. Мне кажется, что в этом есть своя гармония или даже – некий философский смысл.
- Во-вторых, следованию правил, обязует и сам Python, как язык для будущего ремесла. Необходимо понимать, что игнорируя предписания автора языка, мы никогда не напишем программу на нём. Это очень похоже с игнорированием рекомендаций учителя на уроке английского языке. Ведь, если мы будем писать слова на доске так, как нам удобно и проще, то мы никогда не научимся писать слова правильно. А значит, мы не овладеем иностранным этим языком.
Таким образом, предписания правил обязывают программиста быть постоянно вовлеченным во взаимоотношения – как с коллегами, так и с языком как учением о том, как следует писать правильно на нём свои программы. Вы не поверите, но здесь есть своя связь, образующая следующую логическую цепочку:
Как видим из рисунка, изучение стандарта языка Python и следование его предписаниям приводит к правильному стилю программированию. Этот стиль программирования условно называется правильным, или его ещё можно назвать желанным. Он как бы является всеобщим благом в мире программирования. Это то, к чему стремится каждый уважающий себя программист. То, что так тяжело даётся поначалу, но именно это затем является основой ремесла. Это всеобщее благо можно представить как следование заложенным принципам и методике программирования, что положительно влияет на дальнейшее распространение Python по всему миру, а также улучшение качества кода, а значит – качества программ.
Придерживаясь желаемого стиля – стиля, который был заложен и так ждёт от нас Гвидо ван Россум (Guido van Rossum) как автор языка Python, является гарантией получения лучшей читабельности нашего кода.
Кода на Python. Ведь не секрет, что хороший код должен быть самодокументируемым, но именно это качество достигается только благодаря его улучшенной читабельности. А понимание того, как устроен код позволяет видеть его составляющие элементы и быстро находить ошибки.
Любую программу можно представить как кирпичный дом. Если для строительства дома применяются кирпичи, для их связки – раствор, а для крепкого соединения деревянных досок между собой – гвозди, то для создания программ используются свои отдельные строки кода и даже целые блоки с кодом, которые «склеиваются» между собой своими операторами и прочими элементами Python. Поэтому для лучшего понимания процесса программирования сам этот процесс можно представить как постройку дома, где программиста можно сравнить со строителем.
Так как залогом качественной постройки дома можно считать разумное сочетание и использование строительных материалов, то и в программировании – хорошая читабельность кода является хорошим залогом его качества.
В свою очередь, наличие хорошей читабельность кода обеспечивает простое и быстрое его понимание. Намного проще читать и понимать код, если он не будет переполнен всевозможными излишествами в виде бессмысленных комментариев или чересчур запутанными участками кода. Очень часто вследствие того, что код содержит глупые конструкции, нагромождение которых не делает его лучше, такой код называют «говнокодом», что отбивает напрочь желание его читать и искать в нём ошибки.
Код с хорошей читабельностью, в свою очередь, привлекает своей красотой. Он понятный в изложении. С ним приятно работать. В нём удобно искать ошибки. К тому же, в коде с лучшей читабельностью, как правило, очень мало критических ошибок, ведь они не допускаются в момент его написания. А также, такой код хочется использовать и в своих проектах. Хорошему изложению кода хочется учиться. Ведь такое изложение всегда будет модным, а его авторы – популярными и востребованными.
Путь написания понятного и хорошо читабельного кода каждый программист проходит через борьбу самим с собой. На одной чаше весов находится желание писать программы для себя, игнорируя мнение других программистов, а на другой – необходимость отказаться от своих привычек в угоду получения лучшего опыта, лучших знаний о программировании, возможности состояться классным профессионалом, а также стать более успешным. А так как программист живёт в обществе, то знания и практику он черпает от людей, которые ими обладают.
Выходит так, что каждый программист поначалу знакомства с Python обязательно должен пожертвовать своими привычками и предпочтениями писать не так, как следует, иначе его не примет сообщество его коллег, а это обязательно оставит негативный отпечаток на его дальнейшем развитии как специалиста и его карьере. Хотя большинство программистов не являются карьеристами, но мало кто захочет остаться изгоем, непонятым большинством.
Этот сложный путь поиска себя в Python совершает каждый программист. Путь, который очень часто усеян непонятными моментами, вопросами, на которые поначалу непросто найти ответы. Но по мере его прохождения начинается перерождение личности программиста – осознание языка, его силы и его возможностей. Что, в конце концов, положительно влияет на потенциал программиста, на его способности создавать более качественный продукт.
Очень часто осознание жизненного пути человеком приводит к появлению определённого философского учения, когда через форму познания себя в окружающем мире вырабатывается система знаний, в основе которых находятся фундаментальные принципы этого учения.
И как бы это ни звучало странным и было бы не совсем обычным, но в сообществе Python в своё время сформировалось своё философское учение. Наработанные со временем навыки программирования, в основе которых легли наблюдения за кодом, а также желание читать и писать код на Python намного понятнее и лучше, принесли в мир программирования философию «The Zen of Python» («Дзен Пайтона»).
Автором этой философии является американский программист Тим Петерс (Tim Peters). В своё время он внёс большой вклад в развитие языка Python и на ранних стадиях занимался его проектированием.
«Дзен Пайтона» был задуман как формулировка философии дизайна Python, которая была включена в официальную литературу по Python, а в интерпретаторе Python — как пасхальное яйцо. Если ввести в интерпретатор Python команду – import this, то в его окне отобразится текст этого философского учения, закреплённое в 19 пунктах.
Текст «Дзен Пайтона» на русском:
- Красивое лучше, чем уродливое.
- Явное лучше, чем неявное.
- Простое лучше, чем сложное.
- Сложное лучше, чем запутанное.
- Плоское лучше, чем вложенное.
- Разреженное лучше, чем плотное.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки никогда не должны замалчиваться.
- Если они не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один и, желательно, только один очевидный способ сделать это.
- Хотя он поначалу может быть и не очевиден, если вы не голландец.
- Сейчас лучше, чем никогда.
- Хотя никогда зачастую лучше, чем прямо сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Если реализацию легко объяснить — идея, возможно, хороша.
- Пространства имён — отличная штука! Будем делать их больше!
В основу учения были положены наблюдения многомиллионного сообщества Python. В нём заложена своего рода уникальная программистская мудрость. «Дзен Пайтона» стал своеобразной коллективной мудростью, которая даёт наставления программисту и определяет его путь в мире разработки на Python. Тим Петерс, как разработчик, который сделал существенный вклад в развитие Python, упорядочил её и закрепил в отдельном документе.
Факт появления и всеобщее признание этой философии накладывает на каждого пайтониста обязательства следовать ей – следовать этому пути. Это учение выступает своего рода нитью, связующей каждого, кто желает писать на Python. Ведь эта связь обеспечивает достижение взаимопонимание между программистами, а также положительно влияет на улучшение читабельности кода.
Следование всем вышеперечисленным догмам этой философии являются обязательным требованием к программистам. Непринятие или отрицание её фундаментальных догм может повлечь за собой негативные последствия, ведь в этом случае программист теряет взаимосвязь, выходит за рамки этого учения и выпадает из сообщества Python.
«Дзен Пайтона» как философское учение выступает своего рода фундаментом для стандарта PEP 8 Python. Это строение является очень гармоничным. Если стандарт объясняет, как это делать правильно на Python, то философия «Дзен Пайтона» показывает, к чему именно необходимо стремиться. Этот утвержденный сообществом план действий обязывает разработчика следовать ему постоянно и каждый раз при написании кода на Python.
Перечень фундаментальных догм «Дзена Пайтона», «рождённых» в результате договорённости, формируют тело общественного договора – важного общепринятого, обязательного коллективного соглашения в мире IT. Участником соглашения становится каждый желающий, добровольно. Это коллективное соглашение закрепляет путь, направленный на лучшее изучение, познание и правильное применение Python, что, в свою очередь положительно влияет как на простоту и качество написанного кода, так и на популярность Python во всём мире.
Читайте также:
Комментируем свой Python код правильно