美文网首页
Node.js 编程规范

Node.js 编程规范

作者: Yoopard丶Jun | 来源:发表于2017-11-29 23:13 被阅读0次

参考 node-style-guide
参考 style.md

2个空格的缩进

使用2个空格进行缩进,永远也不要使用混合的tab和空格作为缩进。

换行

使用Unix风格的换行,每行结尾以(\n)结束,永远不要使用Windows的换行符(\r\n)。

无拖尾空白

永远也不要在一行后面留空格,在提交之前,你要像每顿饭刷牙一样清理你的JS文件。否则,腐烂的气味会驱走贡献者或同事。

使用分号

根据科学研究,分号的使用是我们社会的核心价值。考虑一下反对派的观点 ,但是我们需要传统,不要滥用纠错机制(省略分号)。

注* 在JavaScript中前置逗号代码风格和省略分号一直存在争论。

每行最多80个字符

每行最多80个字符。是的,屏幕在最近几年越来越大,但是你的脑子没怎么变,你可以使用多余的空间用来分屏。

使用单引号

只有在JSON文件中才使用双引号

Right:

var foo = 'bar';

Wrong:

var foo = "bar";

注* 为什么? JavaScript中包含双引号的字符串几乎到处都是,这样你就不需要转义了。

在同一行写大括号

Right:

if (true) {
  console.log('winning');
}

Wrong:

if (true)
{
  console.log('losing');
}

同样,注意在条件前后都加个空格。

方法链(调用链)

如果你使用方法链,确保每行只调用一个方法。

同时你要合理使用缩进来表示他们的父对象是一致的。

Right:

User
  .findOne({ name: 'foo' })
  .populate('bar')
  .exec(function(err, user) {
    return true;
});

Wrong:

User
.findOne({ name: 'foo' })
.populate('bar')
.exec(function(err, user) {
  return true;
});

User.findOne({ name: 'foo' })
  .populate('bar')
  .exec(function(err, user) {
    return true;
});

User.findOne({ name: 'foo' }).populate('bar')
.exec(function(err, user) {
  return true;
});

User.findOne({ name: 'foo' }).populate('bar')
  .exec(function(err, user) {
    return true;
});

每行声明一个变量

每个var只声明一个变量,它可以更容易地重新排序。但是,并且变量应该在更有意义的地方声明。

Right:

var keys   = ['foo', 'bar'];
var values = [23, 42];
var object = {};

while (keys.length) {
  var key = keys.pop();
  object[key] = values.pop();
}

Wrong:

var keys = ['foo', 'bar'],
values = [23, 42],
object = {},
key;

while (keys.length) {
  key = keys.pop();
  object[key] = values.pop();
}

使用首字母小写给变量属性和函数命名

变量,属性和函数名应该使用lowerCamelCase(首字母小写)。他们也应该是描述性的。一般应避免单字符变量和不常见的缩写。

Right:

var adminUser = db.query('SELECT * FROM users ...');

Wrong:

var admin_user = db.query('SELECT * FROM users ...');

类名首字母大写

类名的首字母应该是大写的

Right:

function BankAccount() {
}

Wrong:

function bank_Account() {
}

常量大写

常量应该被声明为普通变量或静态类的属性,全部使用大写字母。

Node.js/V8实际上支持Mozilla的const的扩展,但遗憾的是不能用于类成员,也不是任何ECMA标准的一部分。

Right:

var SECOND = 1 * 1000;

function File() {
}

File.FULL_PERMISSIONS = 0777;

Wrong:

const SECOND = 1 * 1000;

function File() {
}

File.fullPermissions = 0777;

文件命名采用下划线命名法

Right:

child_process.js
string_decoder.js
_linklist.js

类名采用Camel命名法

毕竟它叫 JavaScript 而不是 java_script

Right:

var definitionvar adminUser = db.query('SELECT * FROM users ...');

//小驼峰
function run() {

}

//大驼峰
function BankAccount() {

}

对象、数组的创建

'{}' ,'[]' 代替 new Array,new Object

Right:

var a = ['hello', 'world'];
var b = {
  good: 'code',
  'is generally': 'pretty'
};

Wrong:

var a = [
    'hello', 'world'
];
var b = {"good": 'code'
, is generally: 'pretty'};

错误优先

Node 的异步回调函数的第一个参数应该是错误指示

Right:

function cb(err, data , ...) {...}

使用 === 比较符

Right:

var a = 0;
if (a === '') {
  console.log('winning');
}

使用有意义的判断条件

Right:

var isValidPassword = password.length >= 4 && /^(?=.*\d).{4,}$/.test(password);
if (isValidPassword) {
console.log('winning');
}

Wrong:

if (password.length >= 4 && /^(?=.*\d).{4,}$/.test(password)) {
  console.log('losing');
}

相关文章

  • node.js学习笔记(一)

    Node.js多端技术体系 JavaScript JS模块规范 npm 异步编程经验(Promise,genera...

  • Node.js 编程规范

    参考 node-style-guide参考 style.md 2个空格的缩进 使用2个空格进行缩进,永远也不要使用...

  • Node.js 设计模式笔记 —— Node.js 的设计哲学和

    一、Node.js 哲学 每种编程语言平台都有其特定的“哲学”,即一系列被社区普遍接受的指导原则和规范。这些规范对...

  • Node编码规范

    Node编码规范 标签(空格分隔): Node.js C.1根源 JavaScript作为一门编程语言,在语法上可...

  • 开题

    iOS编程规范 2016.11.25(1.0版本) 目录 iOS编程规范........................

  • CommonJS AMD CMD UMD

    CommonJS CommonJS是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,...

  • CommonJS和AMD

    CommonJS CommonJS是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,...

  • common、AMD、CMD区别

    CommonJS CommonJs 是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范...

  • 模块化规范

    服务器端规范 CommonJS Node.js CommonJS 定义JavaScript语言后端规范+ 后端语言...

  • Node.js 模块机制

    Node.js 模块机制 Node.js 模块机制采用了 Commonjs 规范,弥补了当前 JavaScript...

网友评论

      本文标题:Node.js 编程规范

      本文链接:https://www.haomeiwen.com/subject/egqmbxtx.html