【问题标题】:Coding Style Guide for node.js apps? [closed]node.js 应用程序的编码风格指南? [关闭]
【发布时间】:2011-03-31 06:21:42
【问题描述】:

是否有一个(或多个)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 习惯用法,例如 == 与 ===,回调的第一个 arg 是错误对象,...
  • 评论和文档
  • 附带的工具,例如 lint 检查器、单元测试框架……

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

【问题讨论】:

  • 我猜这真的取决于你使用的“框架”(如果有的话),例如你可以查看spludo.com/source/coding-standards 但是其他人可能会考虑稍微不同的方法
  • “有没有人有一套好的风格指南”可能是主观的,也可能不是主观的,但“什么是新兴的风格”肯定是。您已经找到了 Felix 的指南,当然我不同意(在某些情况下强烈)的某些方面并同意其他方面。这就是问题所在。很快它就变成了“不,我看到的样式emerge使用了标签!” “不,我在看到的样式emerge使用了四个空格!” “不,I'm 看到的样式出现使用 两个 空格!”当然,人们真正的意思是“我喜欢的风格”,而不是“我看到的风格”。
  • @T.J.克劳德 I'm 看到的风格没有使用空格!
  • +1 很棒的问题。我希望我很久以前就有这些链接。
  • 主观问题。

标签: javascript coding-style node.js


【解决方案1】:

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

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

我会 throw mine 在那里进行很好的衡量;)

编辑:来自@alienhard的建议

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

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

缩进、大括号和关键字之间的间距以及分号位置都是偏好问题。

【讨论】:

  • 感谢您的回答。我想知道你为什么不提到瑞恩;)。但我从官方节点 repo wiki 中发现,他们关注 Google’s JavaScript style guide。我以前不知道那个...
【解决方案2】:

镇上有一个新标准。

使用Standard Style

【讨论】:

  • 我不知道为什么这只有 3 票...
  • @Luc 可能是因为“无分号”规则。对于所谓的“标准”风格来说,这似乎是一个奇怪的选择。
  • 没有分号不是一个好主意。它会破坏一些缩小。
  • 这个standard 包不喜欢分号。如果你喜欢分号有semistandard
【解决方案3】:

您可以从面向客户端的 JavaScript 指南中学到很多良好的编码风格实践(其中大部分也适用于一般的 node.js,因为客户端和服务器端之间的区别主要在于库而不是语言本身)。例如,JavaScript Patterns 本书专门针对此主题,Chapter 2 的某些部分。此外,Douglas Crockford 的 websitebookvideos 是我想说的采用 JavaScript 特定编码风格和最佳实践的必看材料。

【讨论】:

  • +1 对 Douglas Crockford 的书“JavaScript:The Good Parts”。它在一本简明/小书中包含大量信息 - 阅读量很大,但这是我读过的最好的书之一。
【解决方案4】:

从终端使用节点时,您的源代码使用空格进行缩进很有用。否则,“此处的错误”插入符号不会对齐。

带标签:

        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 要求提供样式指南。不是一些具体的提示。
  • @mightyiam 没错,但缩进规则几乎是每个风格指南的一部分。也许我的观点可以帮助 OP 评估一些其他人会链接的样式指南,或者可以帮助他开发自己的样式指南。
【解决方案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
      

      流行的咖啡项目,zombiebrunch 使用此设置进行缩进。

      编辑:

      其实,就用这个吧! https://github.com/paulmillr/code-style-guidesbrunch的主要贡献者之一)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-19
        • 2018-01-09
        相关资源
        最近更新 更多