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

На 100% правильный стиль программирования
На 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 доступен по ссылке.

Автор

MIIIG

Занимаюсь разработкой сайтов, знаю php, js, html, css, gulp, bash, увлекаюсь разработкой на микроконтроллерах(esp, arduino), перевожу статьи, также увлечен графическим дизайном, типографией, знаю также немного арабский, люблю минимализм, простоту и material design