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

И в жизни разработчиков тоже наступает время, когда мы становимся уверенными в своих навыках программирования и начинаем искать возможности для улучшения в других местах. В старших классах мы могли бы потратиться на суперфлайт-куртку с воротником, чтобы он был выше, чем у графа Чокула. В мире ботаников мы можем смотреть на ЖК-экран до тех пор, пока наши глаза не пересекутся, и мы не скажем что-то вроде: «Хм ... в этой строке можно использовать пробелы».

Так начинается подростковый этап программирования, и вместо того, чтобы расчесывать волосы и проверять линию подбородка в зеркале, мы разбиваем лицо о пробел, указываем на наш Github и кричим: «МАМА! ПОСМОТРИ, КАК МОЙ КОД ДОЛЖЕН! »

Некоторые люди приобретают эту привычку после того, как напишут достаточно для циклов, чтобы написать функцию перестановки, пока едут на работу ногами и в десятый раз объясняют тете Бекки, что: «Нет, тетя Бекки, Чикаго - это не континент». Этот тип Pretty Coder сделан. Другие рождаются в Pretty Code, изучая его с самого начала. И для меня эти несчастные души соответствуют Малышам в тиарах мира программирования.

Но вне зависимости от того, родились ли вы в Pretty Code или выбрали набор текста при лунном свете как хобби, чтобы убить время после того, как приобрели потрясающие навыки работы с циклами, я здесь, чтобы объяснить, почему, объективно, Pretty Code - чушь собачья. А вот TL; DR:

  • Симпатичный код не очень красивый.
  • Pretty Code заставляет (octo) кошек плакать.
  • Pretty Code непрактичен.

Симпатичный код не очень красивый.

Давайте сначала выясним, что такое Pretty Code и почему он существует, потому что это все, что нужно, чтобы полностью разрушить его дело. Давайте сначала рассмотрим наименее непрактичный вариант использования Pretty Code, рассмотрев два одинаковых словаря:

// Ugly
var product_availability = {
   name: true,
   phone: true,
   address: true,
   n2n: false,
   something: true,
   x: false
};
// Pretty
var product_availability = {
   name:      true,
   phone:     true,
   address:   true,
   n2n:       false,
   something: true,
   x:         false
};

Как вы можете видеть выше, один из этих блоков помечен ugly, а другой pretty. Pretty Code, как показано выше, - это «искусство» выравнивания фрагментов кода с пробелами.

Мы можем сделать вывод, что Pretty Code не предназначен для ускорения кодирования, верно? Например, как вы можете добавить этот пробел быстрее, чем не добавить его? Вы не. Так писать код не быстрее.

Ваш блестящий новый i7 не смотрит на свои ногти и не говорит: «Знаешь, я собирался медленно запустить этот словарь, но потом я увидел, насколько он хорош, так что позвольте мне вернуться к работе и начать выполнять как Г." Правильно? Мы знаем, что пробелы не влияют на производительность.

Итак, единственная причина, по которой я могу видеть Pretty Code, - это то, что он «выглядит» лучше. Ключевое слово здесь - «выглядит».

«Почему меня волнует, как выглядит код», - могут сказать скептики Pretty Code. И защитник сказал бы: «Потому что вы читаете код больше, чем пишете его».

И сторонник Pretty Code совершенно прав. И тем самым полностью разрушает его дело. Мы читаем код больше, чем пишем его. Намного больше. Так что это должно быть читаемым. Кто сказал что-нибудь о «красивом»?

Вы когда-нибудь писали одну строчку кода:

var x = 1;

И решил: «Вы знаете, что этой строке нужно… пробел… много пробелов». и, помня об этом, изменил его так:

var x     =    1;

No.

Почему? Потому что эта строка менее читаема. Это не станет волшебным образом более читабельным, если строка ниже:

var x     =    1;
var pizza = 1001;

Да, Pretty Code выглядит лучше. Но смотреть на код не важно. Чтение есть.

Вы читаете код на уровне строки. Вы смотрите на это на многострочном уровне.

Pretty Code заставляет (octo) кошек плакать.

Хорошо, поэтому вам все равно, насколько читабелен ваш код. Тебе просто важно, чтобы ты мог сказать: «МАМА! ПОСМОТРИТЕ НА ВСЕ МОЙ БЕЛЫЙ ПРОСТРАНСТВО! » Отлично. Вы можете написать свой собственный код, как хотите.

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

Допустим, Продукт возвращается, и они говорят: «Черт возьми, Джимми, нам нужен новый ключ в этом словаре. Ключ - virtual_phone_bank, а значение - Sign up and start saving babies RIGHT NOW!. Отбивная котлета."

Итак, вы открываете ./src/config/locales/en.js и видите:

И ты останавливаешься на секунду, чтобы полюбоваться, насколько это красиво, а потом нажимаешь i и принимаешься за работу. Но быстро вы сбиты с толку:

"О нет!" вы думаете: "это так некрасиво!" и после того, как ваши глазные яблоки станут черными, а ваш нос кровоточит, и вы ударили себя лицом по клавише пробела в общей сложности 18 раз, вы можете вернуться к словам «Зеркало, Зеркало, на стене, у кого больше всего пробелов из них все?" И вы будете знать, что ответ - это вы, потому что теперь ваш код выглядит так:

И теперь, когда вы творили чудеса верстки, проблема не только в том, что к тому времени, когда мои глаза доходят до «Помогите президенту…», они так далеки от «дискотеки», что мне приходится оглядываться назад. помните, что я даже назначаю для чего ... но вы только что изменили эту строку кода, и когда Тедди из продукта выяснит, кого уволить за то, что он вставил в код шутку, вы собираетесь должен сказать: «Но я даже не писал эту строчку! Поклясться! Я просто сделал это красивым, вот и все! "

Да, современные инструменты позволяют легко увидеть всю историю изменений линии. Но да, история изменений все равно важна. Как код «выглядит» - нет. Очень важно, как это читается, а это плохо читается. Нет, он вообще хорошо читается.

Pretty Code непрактичен.

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

Если вы не из тех Pretty Coder, которые объединяют похожие функции, спасибо Страуструпу. Но давайте предположим, что это так, и предположим, что вас также не волнуют ограничения строки символов, и все, что вас волнует, - это то, как ваш код «выглядит».

В итоге вы получите:

Что: А) чтение, которое вызывает у меня желание плакать, и Б) письмо, от которого мне хочется ударить ребенка. Я имею в виду, что у меня буквально три черных глаза и два сломанных носа, а моя клавиша пробела даже не работает. Мне пришлось переназначить его на «CAPS LOCK», потому что я уже сломал все остальные красивые коды своим лицом.

В любом случае, вернемся к теме ... Представьте, что добавляете еще две ссылки на свойство links в третьем render:

Я не только не могу прочитать ни одной строчки этого кода, вы не только с удовольствием (уже дважды) нагадили на историю ревизий, но - еще - это выглядит абсурдно! И в этом вся суть Pretty Code - сделать код хорошо выглядящим.

Суть в том, что Pretty Code непрактичен. Вы можете добавить любые пробелы в свои словари. Но, пожалуйста, что бы вам ни говорил наборщик, в мире открытого кода нет ненужных пробелов.

Так что в следующий раз, когда вам станет скучно, вы достанете щетку для волос, поговорите с зеркалом, и вы собираетесь перейти к Pretty Code ... подумайте о нас, тех, кто читает ваш код . И подумайте о пробеле, бедный старый мистер Пробел.