阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      npm团队的 傻叉代码风格 解读

      功能

      npm 推荐的编码风格

      注意:这涉及 npm 的代码,而不是您可以从 npm 注册表中下载的特定软件包。

      如果你没有打算给 npm 项目方提交代码,不用看的(不是 npm 发包)

      除了基本的通用规则外,npm 团队自己的这个代码风格,真的不友好;

      说明

      npm 的编码风格有点非常规。

      出于差异的考虑,它并没有什么不同,而是精心设计的样式,旨在减少视觉混乱并使错误更明显。

      如果您想为 npm 做出贡献(这是非常受鼓励的),则应使您的代码符合 npm 的样式。

      每行的宽度

      保持少于 80 个字符的行。

      太长不利于阅读;

      缩进

      双空格。选项卡更好,但是在 Web 浏览器(和 GitHub)上它们看起来像地狱,节点使用 2 个空格,仅此而已。

      适当配置您的编辑器。

      花括号

      大括号与需要大括号的东西在同一行。

      坏:

      function ()
      {
      

      好:

      function () {
      

      如果一个块需要换行到下一行,请使用花括号。如果没有,请不要使用它。

      坏:

      if (foo) { bar() }
      while (foo)
        bar()
      

      好:

      if (fo`o) bar()
      while (foo) {
        bar()
      }
      

      分号

      除以下四种情况外,请勿使用它们:

      • for (;;)循环。实际上是必需的。
      • 空循环,例如:(while (something) ;但是您最好有充分的理由这样做。)
      • case ‘foo’: doSomething(); break
      • 在领先的前(或[在该行的开始。这样可以防止将表达式分别解释为函数调用或属性访问。

      良好使用分号的一些示例:

      ;(x || y).doSomething()
      ;[a, b, c].forEach(doSomething)
      for (var i = 0; i < 10; i ++) {
        switch (state) {
          case 'begin': start(); continue
          case 'end': finish(); break
          default: throw new Error('unknown state')
        }
        end()
      }
      

      请注意,以-和开头的行+也应以分号作为前缀,但这很少见。

      逗号开头

      如果存在一个用逗号分隔的事物列表,并且它包含多行,请将逗号放在下一行的开始处,直接在启动该列表的标记的下面。将最终令牌本身放在列表中。例如:

      var magicWords = [ 'abracadabra'
                       , 'gesundheit'
                       , 'ventrilo'
                       ]
        , spells = { 'fireball' : function () { setOnFire() }
                   , 'water' : function () { putOut() }
                   }
        , a = 1
        , b = 'abc'
        , etc
        , somethingElse
      

      行情

      除避免转义外,对字符串使用单引号。

      坏:

      var notOk = "Just double quotes"
      

      好:

      var ok = 'String contains "double" quotes'
      var alsoOk = "String contains 'single' quotes or apostrophe"
      

      空格

      (除函数调用外,在命令符前面放置一个空格。也请在使内容更易读的地方使用单个空格。

      行尾不要留尾随空格。不要缩进空行。不要使用过多的空格。

      功能

      使用命名函数。它们使堆栈跟踪更易于阅读。

      回调,同步/异步样式

      尽可能使用异步/非阻塞版本的事物。对于 npm 来说,使用同步 fs API 可能更有意义,但是通过这种方式,fs 和 http 和子进程都使用相同的回调传递方法。

      回调应始终是列表中的最后一个参数。它的第一个参数是 Error 或 null。

      要非常小心,永远不要扔东西。比没用还糟。只需将错误消息作为第一个参数发送回回调即可。

      错误

      始终用您的消息创建一个新的 Error 对象。不要只将字符串消息返回到回调。堆栈跟踪很方便。

      记录

      记录是使用 npmlog 实用程序完成的。

      当它们不再有用时,请清理它们。特别是,一遍又一遍地记录同一对象没有帮助。日志应报告正在发生的事情,以便更轻松地查找故障发生的位置。

      使用适当的日志级别。查看 npm config 并搜索“日志级别”。

      大小写,命名等。

      lowerCamelCase 当多字标识符引用对象,函数,方法,属性或本节未指定的任何内容时,请使用它们。

      使用 UpperCamelCase 的类名(的东西,你会传递到“新”)。

      使用 all-lower-hyphen-css-case 对多字的文件名和配置键。

      使用命名函数。它们使堆栈跟踪更容易理解。

      使用 CAPS_SNAKE_CASE 常量,事情应该不会改变,并且很少使用。

      对于函数名称,请使用单个大写字母,其中该函数通常是匿名的,但需要以递归方式对其进行调用。很明显,它是一个“一次性”功能。

      null, undefined, false, 0

      布尔变量和函数应始终为 true 或 false。除非将其设置为数字,否则请勿将其设置为 0。

      如果有意丢失或删除某些东西,请将其设置为 null。

      不要将事情设置为 undefined。将该值保留为“尚未设置任何内容”。

      布尔对象是禁止的。

      目录
      目录