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。将该值保留为“尚未设置任何内容”。

布尔对象是禁止的。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了