04.04.2017 1255 1

На 100% правильный стиль программирования

Tab'ы или пробелы? Фигурная скобка на той же строке или на новой? Ширина в 80 символов или 120?

Многие любят спорить о таких вещах. Даже выпущен популярный эпизод в шоу Силиконовая Долина о споре по поводу tab'ов и пробелов.

Наконец, в этой статье я дам вам ответ на этот вопрос.

В своей карьере я часто встречался с такими войнами. Мне приходилось читать статьи о том, какие конвенции правильнее, в то время, как остальные считались неправильными. Приходилось вскакивать на своего верного коня и декларировать всем, что они не правы, а я прав.

ПЕДА́НТ

Мужской род

  1. Тот, кто излишне строг в выполнении мелочных, формальных требований (в науке, в жизни и т. п.), буквоед.

Прошли годы пока я искал правильный ответ и, наконец, я нашел его...

Это не имеет значения.

Последовательность имеет значение. Читабельность имеет значение. Споры о том, что лучше, а что нет, ничего не значат.

Последние 20 с лишним лет я следовал всем возможным трендам. Следовал различным конвенциям разных языков. Ничего из перечисленного не повлияло на улучшение моего кода.

Не поймите неправильно, хорошо отформатированный, чистый код проще поддерживать и изменять в будущем.

Нет ничего плохого в улучшении своего кода. Но очень часто, это становится причиной оправдания возникающей прокрастинации.

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

Намного легче спорить о незначительных вещах, в которых не всплывет наша некомпетенция.

Этот феномен стал настолько популярен, что о нем создали теории.

Самая известная из них – Закон тривиальности Паркинсона, который указывает, что многие уделяют слишком много внимания незначительным вопросам.

Для описания этого закона, Паркинсон предоставил пример о работниках, чьей задачей было утвердить планы постройки атомной электростанции. Но они затратили слишком много времени споря о том, какой материал использовать для крыши велопарковки. В то же время они не обращали внимание на дизайн самой постройки, хотя вопрос был намного важнее.

Разработчик из Дании Поул-Хеннинг Камп позже придумал термин "эффект велопарковки", описывающий это состояние.

Если вы разработчик и вам приходится сотрудничать с другими программистами, то возможно, вам приходилось сталкиваться с этим эффектом практически каждодневно.

Если вы часто находите себя погруженным в одном из таких споров со своими коллегами, вам стоит запомнить закон Сэйри:

В любом споре накал чувств обратно пропорционален важности рассматриваемого вопроса

Как консультант, я общался со многими клиентами и у каждого есть свои собственные правила. Я решил, что единственный способ преуспеть для меня – оставить все лишнее и заняться серьезными вопросами. Когда дело касается стандарта программирования я не заморачиваюсь.

Если вы в раздумьях о том, какой стиль выбрать, я рекомендую задать себе следующие вопросы:

  1. Есть ли какой-либо инструмент, который автоматически применит правила стиля к моему коду с малейшим моим участием?
  2. Применяются ли эти инструменты и стили известными организациями?

Если ответ на оба вопроса "да", то смело приступайте к делу.

Приведу список инструментов для следующих популярных языков:

DotNet Code Formatter

Java: Google-Java-Format

Javascript Standard Style (это не официальный стандарт JavaScript, а имя продукта)

PHP Coding Standards Fixer

Python: Google’s YAPF

Ruby: Rubocop

 

Статью перевел timurziev. Оригинал на Medium.freecodecamp.com доступен по ссылке.

Возможно, вам будет интересно также почитать: