Node.js应用程序的编码样式指南?[关闭]


130

是否有一个(或多个)node.js编码样式指南?如果没有,那么顶级开源节点项目将使用哪些新兴样​​式

我正在按照PEP 8(Python的标准编码样式指南)的要求寻找指南(或数本指南)。我看过很多不值得在这里链接的JavaScript指南(大多是旧的,并且针对客户端JavaScript)。我找到了一个有趣的node.js 样式指南

编码样式指南或编码约定应包括(但不限于):

  • 代码布局:缩进(2个空格,4个空格,制表符等),换行符,换行符等。
  • 空格,例如“ function(arg)”与“ function(arg)”
  • 分号或无分号,var声明,...
  • 命名,例如do_this()与doThis(),var_name与varName,...
  • node.js和JavaScript惯用语,例如== vs. ===,回调的第一个arg是错误对象,...
  • 意见和文件
  • 附带的工具,例如棉绒检查器,单元测试框架,...

这个话题显然是高度主观的,但是我认为这是社区发展成熟过程中建立通用且被广泛接受的编码风格的重要一步。另外,它不仅仅与味道有关。特别是,诸如“使用===而非==“之类的规则对代码质量有直接影响。


我认为确实取决于您使用的“框架”(如果有),例如,您可以查看spludo.com/source/coding-standards,但是其他人可能会考虑略有不同的方法
Poelinca Dorin

4
“任何人都有一套好的样式指南”可能是主观的,也可能不是主观的,但是“新兴样式是什么”肯定是主观的。您已经找到了Felix的指南,我当然当然不同意(某些情况下)的方面,也同意其他方面。这就是问题所在。很快,它很快就变成了“不,看到的新兴风格使用标签!” “不,看到的样式使用四个空格!” “不,看到的样式使用两个空格!” 当然,当人们真正想说的是“我喜欢的风格”,而不是“我看到的风格”时。
TJ Crowder

2
@TJ Croweder 看到的新兴样​​式不使用空格!
雷诺斯2011年

+1很棒的问题。我希望这些链接早已存在。
布莱恩·唐宁

主观问题。
Niels Abildgaard,2015年

Answers:


120

我将回顾由JSLint检查的编码标准,或者看看NPM(Isaac Shlueter's 编码标准)的作者。

您还可以查看著名的Node.JS编码人员使用的样式:

我会把我在那儿;)

编辑:@alienhard的建议

IMO有一些黄金规则应遵循:

  • 请勿使用witheval
  • 使用===结束==
  • 始终var在适当的范围内声明变量-不要回退到全局范围
  • (function(){})()如果计划发布在服务器端和浏览器中运行的代码,则将应用程序封闭起来
  • 回调应以err第一个参数为参数,如果回调本身以回调为参数,则应以回调为最后参数,例如callback(err, param1, param2, callback)

缩进,大括号和关键字之间的间距以及分号的放置都属于首选项。


2
感谢你的回答。我想知道为什么你没有提到瑞恩;)。但是我从官方节点仓库wiki上发现,它们遵循Google的JavaScript样式指南。我以前不知道那个……
Alienhard


10

您可以从面向客户端的JavaScript指南中学习很多良好的编码风格实践(由于客户端和服务器端之间的差异主要是库而不是语言本身,因此大多数指南通常也适用于node.js)。例如,《JavaScript Patterns》一书专门针对该主题在第二章中进行了介绍。另外,Douglas Crockford的网站书籍视频都是必读材料,以便采用JavaScript特定的编码风格和最佳实践。


3
对Douglas Crockford的书“ JavaScript:The Good Parts” +1。简明扼要的小书里充斥着大量信息,虽然读起来很繁琐,但却是我读过的最好的书之一。
Alex KeySmith,2011年

7

从终端使用节点时,源代码使用空格进行缩进非常有用。否则,“这里的错误”插入符号将不会排队。

带标签:

        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的问题,但我怀疑不是。


OP要求提供样式指南。没有一些具体提示。
mayyiam '16

@mightyiam是的,但是缩进规则是几乎所有样式指南的一部分。也许我的观点可以帮助OP评估一些其他人将链接的样式指南,或者可以帮助他开发自己的样式指南。
丹尼尔·扬科斯基



2

对于Coffee-Script,缩进不好意味着编译错误

:set tabstop=2
:set shiftwidth=2
:set expandtab

受欢迎的咖啡项目zombiebrunch使用此设置的压痕。

编辑:

实际上,只需使用它!https://github.com/paulmillr/code-style-guides(的主要贡献者之一brunch

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.