node.js应用程序的编码样式指南?

时间:2011-03-31 06:21:43

标签: javascript coding-style node.js

node.js有(或几个)编码样式指南吗?如果没有,顶级开源节点项目使用的新兴样式是什么?

我正在寻找与PEP 8一致的指南(或几个指南),这是Python的规范编码风格指南。我已经看到了各种不值得链接的JavaScript指南(主要是旧版和针对客户端JavaScript)。我发现了一个有趣的node.js style guide

编码风格指南或编码惯例应包括(但不限于):

  • 代码布局:缩进(2个空格,4个空格,制表符......),换行符,换行符等。
  • 空格,例如“function(arg)”与“function(arg)”
  • 分号或没有分号,var声明,......
  • 命名,例如,do_this()与doThis(),var_name与varName,...
  • node.js和JavaScript惯用法,例如== vs. ===,callback的第一个arg是一个错误对象,...
  • 评论和文档
  • 随附工具,如lint checker,单元测试框架,......

这个话题显然是非常主观的,但我认为这是社区在成熟过程中建立一个共同且广泛接受的编码风格的重要一步。而且,这不仅仅是味道。特别是,“使用===而不是==”这样的规则会对代码质量产生直接影响。

7 个答案:

答案 0 :(得分:116)

我会审核JSLint检查的编码标准,或查看NPM(Isaac Shlueter)coding standards的作者。

您还可以查看着名的Node.JS编码器使用的样式:

我会throw mine在那里做好准备;)

修改:来自@alienhard

的建议

IMO你应该遵循一些黄金法则:

  • 切勿使用witheval
  • 使用===而不是==
  • 始终在适当的范围内使用var声明变量 - 不要回退到全局范围
  • 如果您计划发布运行服务器端和浏览器的代码,请将您的应用程序包装在(function(){})()关闭中
  • 回调应该以{{1​​}}作为第一个参数,如果它们自己将回调作为参数,它应该是最后一个,例如err

缩进,大括号和关键字之间的间距以及分号位置都是首选。

答案 1 :(得分:13)

镇上有一个新标准。

使用Standard Style

js-standard-style

答案 2 :(得分:10)

您可以从面向客户端的JavaScript指南中学习很多优秀的编码风格实践(大多数也适用于node.js,因为客户端和服务器端之间的区别主要在于库而不是语言本身)。例如,JavaScript Patterns本书专门针对此主题Chapter 2的某些部分。道格拉斯·克罗克福德的websitebookvideos也是必看材料,以便采用我想说的JavaScript特定编码风格和最佳实践。

答案 3 :(得分: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唯一的问题,但我怀疑不会。

答案 4 :(得分:6)

自从我提出这个问题以来已经有一段时间......与此同时我发现了这个优秀的JavaScript指南:

编写一致,惯用JavaScript的原则

https://github.com/rwldrn/idiomatic.js/

答案 5 :(得分:5)

Airbnb有一个非常好的Javascript风格指南 https://github.com/airbnb/javascript

答案 6 :(得分:2)

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

使用

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

热门咖啡项目,zombiebrunch使用此设置进行缩进。

编辑:

实际上,只需使用它! https://github.com/paulmillr/code-style-guidesbrunch

的主要贡献者之一