Статьи

Почему я использую руководство по стилю JavaScript и почему вы тоже должны

Эта статья была рецензирована Тимом Севериеном . Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше!

Давайте посмотрим на стандартный стиль JavaScript @feross , руководство по стилю JavaScript, которое набирает популярность. Это может помочь вам уменьшить трения в командах и увеличить счастье программиста.

Это набор правил, которые делают код JavaScript более согласованным и могут предотвратить скучное обсуждение достоинств вкладок над пробелами. Это один из многих стилей, которые вы можете использовать, и он относится к той же категории, что и другие линтеры JavaScript, такие как JSLint , JSHint и ESLint .

Если вы не уверены, что такое линтеры или зачем они вам нужны, посмотрите наше сравнение инструментов JavaScript для линтинга.

Важность стиля

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

Каждый язык программирования имеет доминирующий стиль, иногда, как в случае с Python, официальное руководство по стилю представляется как правильный путь для написания программ. Подожди, ты сказал 4 пробела для отступа?

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

У JavaScript нет официального руководства по стилю, возможно, де-факто стандарт вышел из «Хороших частей» Дугласа Крокфорда. Его книга представила способ написания надежных программ на JavaScript, и он выделил функции, которых мы должны активно избегать. Он выпустил JSLint, чтобы поддержать эти мнения, и другие линтеры последовали его примеру. Большинство линтеров легко настраиваются и позволяют вам выбрать стиль, который подходит вам лучше и лучше, навязывайте его другим! Стандартный стиль JavaScript отличается. Стиль, который вам нравится больше всего, не имеет значения , важно то, что выбрано что-то, все, что каждый может понять и работать с ним.

Руководство по стилю JavaScript


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

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

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

Стандартный стиль JavaScript

  • 2 пробела — для отступа
  • Одинарные кавычки для строк — кроме того, чтобы избежать экранирования
  • Нет неиспользованных переменных — эта ловит тонны ошибок!
  • Нет точек с запятой
  • Никогда не начинайте строку с ( , [ , или `
  • Пробел после ключевых слов if (condition) { ... }
  • Пробел после имени функции имя function name (arg) { ... }
  • Всегда используйте === вместо == — но obj == null разрешено проверять null || undefined null || undefined
  • Всегда обрабатывайте параметр функции Node.js err
  • Всегда добавляйте глобальные префиксы браузера к window — за исключением document и navigator
    • Предотвращает случайное использование глобальных имен браузеров со слабым именем, таких как open , length ,
      event и name .

Смотрите полный список правил

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

Стандартный стиль JavaScript изменил мое мнение об этом, JavaScript без точек с запятой хорош.

Автоматическая вставка точек с запятой — это функция JavaScript, которая может уменьшить шум и упростить программы. Я никогда не сталкивался с ошибкой, вызванной отсутствием точек с запятой, и я не верю, что вы тоже это сделаете. См. Необходимы ли точки с запятой в JavaScript? подробнее об этом.

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

Я не согласен с правилом X, вы можете изменить его?

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

Лично я полюбил кодирование без точек с запятой, возможно, из-за времени, потраченного на написание Ruby, Python и CoffeeScript, которые требуют меньше синтаксиса. Безотносительно причины я нахожу программы более ясными, когда есть меньше, чтобы смотреть на.

Иерархия хороших программ Марка

Программисты должны ценить:

  1. правильность
  2. читабельность
  3. Счастье
  4. КПД

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

правильность

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

читабельность

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

Четкий предсказуемый стиль делает код более легким для чтения и понимания.

Счастье программиста

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

Вы хотите наслаждаться жизнью, не так ли? Если вы выполняете свою работу быстро, а ваша работа — весело, это хорошо, не так ли? Это цель жизни, отчасти. Ваша жизнь лучше.

— Юкихиро Мацумото

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

КПД

Последний в списке, но не в последнюю очередь.

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

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

Люди медленные. Делать вещи более эффективными для нас гораздо ценнее. Ясность, которую вы получаете от принятия стандартного стиля, делает ваш код быстрее для понимания и внесения вклада. Гораздо меньше времени тратится на разногласия, что приветствуется.

Реализация стандартного стиля JavaScript

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

Также есть пакет npm для написания кода JavaScript.

 npm install standard --global 

Запуск standard запускает все файлы JavaScript в каталоге через линтер.

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

 apm install linter apm install linter-js-standard 

Снимок экрана с плагином, подсвечивающим ошибки в Atom

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

 standard --fix 

Принятие стандартного стиля JavaScript

Должны ли вы принять стандартный стиль? Ну, это зависит только от вас.

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

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

Если вы не хотите тратить время на скучные мелочи синтаксиса, тогда возьмите стандартную версию JavaScript и дайте нам знать, что вы думаете в комментариях ниже.