Руководство по стилю кодирования для приложений node.js?
Есть ли (или несколько) руководство по стилю кодировки для node.js? Если нет, то какие возникающие стили используются в проектах с открытым исходным кодом node?
Я ищу руководство (или несколько руководств) в соответствии с PEP 8, каноническое руководство по стилю кодирования для Python. Я видел различные руководства JavaScript, которые не стоит связывать здесь (в основном старые и ориентированные на клиентский JavaScript). Я нашел один интересный node.js руководство по стилю.
Руководство по стилю кодирования или соглашения о кодировании должно включать (но не ограничиваться):
- Схема кода: отступы (2 пробела, 4 пробела, вкладки,...), символы новой строки, разрывы строк и т.д.
- Пробелы, например, "function (arg)" vs. "function (arg)"
- Точка с запятой или точка с запятой, объявление var,...
- Именование, например, do_this() vs. doThis(), var_name vs varName,...
- node.js и JavaScript-идиомы, например, == vs. ===, callback first arg - объект ошибки,...
- Комментарии и документация
- Сопутствующие инструменты, такие как lint checker, unit test framework,...
Эта тема, очевидно, очень субъективна, но я считаю важным шагом сообщества установить общий и общепринятый стиль кодирования в процессе получения зрелости. Кроме того, это не все о вкусе. В частности, такие правила, как "использование === вместо ==", оказывают прямое влияние на качество кода.
Ответы
Ответ 1
Я бы пересмотрел стандарты кодирования, проверенные JSLint, или посмотрел на стандарты кодирования NPM (Isaac Shlueter).
Вы также можете посмотреть на стиль, используемый замечательными кодами Node.JS:
Я постараюсь забросить там хорошую меру;)
Изменение: Предложения от @alienhard
ИМО там несколько золотых правил, которым вы должны следовать:
- Никогда не используйте
with
или eval
- Использовать
===
over ==
- Всегда объявляйте переменные с
var
в соответствующей области - не отступайте в глобальную область - Оберните приложение в закрытие
(function(){})()
если вы планируете выпускать код, который работает как на стороне сервера, так и в браузере - Обратные вызовы должны принимать
err
как первый аргумент и если они сами принимают обратный вызов в качестве аргумента, он должен быть последним, например callback(err, param1, param2, callback)
Отступы, расстояние между фигурными скобками и ключевыми словами и размещение точки с запятой - все это зависит от предпочтений.
Ответ 2
В городе есть новый стандарт.
Используйте Стандартный стиль.
![js-standard-style]()
Ответ 3
Вы можете узнать много хороших методов стиля кодирования из ориентированных на клиента ориентированных на JavaScript руководств (большинство из них применимо также к node.js вообще, поскольку разница между клиентской и серверной частью в основном в библиотеках, а не в самом языке). Например, JavaScript Patterns книга посвящает этой теме некоторые части Глава 2. Также Douglas Crockford сайт, книга и видео - это обязательные материалы, чтобы использовать специфичные для JavaScript стили кодирования и лучшие практики, которые я бы сказал.
Ответ 4
При использовании node от терминала полезно, чтобы ваш исходный код использовал пробелы для отступов. В противном случае каретка "error here" не будет выстраиваться в линию.
С вкладками:
var preps = files.map(function(f) {
^
TypeError: Cannot call method 'map' of null
С пробелами:
var preps = files.map(function(f) {
^
TypeError: Cannot call method 'map' of null
Это может быть проблема только с Mac, но я бы не подозревал.
Ответ 5
Прошло некоторое время с тех пор, как я задал этот вопрос... и тем временем я нашел этот отличный справочник по JavaScript:
Принципы написания согласованного, идиоматического JavaScript
https://github.com/rwldrn/idiomatic.js/
Ответ 6
Airbnb имеет неплохой Javascript стиль руководства
https://github.com/airbnb/javascript
Ответ 7
Для Coffee- Script, где плохие отступы означают ошибки компиляции
использование
:set tabstop=2
:set shiftwidth=2
:set expandtab
популярные проекты кофе, zombie
, brunch
использует эту настройку для отступов.
Edit:
Собственно, просто используйте это! https://github.com/paulmillr/code-style-guides (один из основных участников brunch
)