-
缩进 ,2 个 space,tab要转换成2 space. (入乡随俗,这是Node 源码及module 采用的标准)
Eclipse设置
-
永远用 var 声明变量,不加 var 时,会污染顶层上下文
-
操作符与操作算子之间要有空格
Right:
var string = 'Foo' + bar;
Wrong:
var string = 'Foo'+bar;
-
使用string 时,用单引号替代双引号(写JSON 时除外)
Right:
var foo = 'bar';
var http = require('http');
Wrong:
var foo = "bar";
var http = require("http");
-
大括号位置
Right:
if (true) {
console.log('winning');
}
Wrong:
if (true)
{
console.log('losing');
}
-
Camel 命名法
采用以下规则:
- 函数和变量:functionNamesLikeThis, variableNamesLikeThis,
- 类名和枚举类型:ClassNamesLikeThis, EnumNamesLikeThis,
- 类方法:methodNamesLikeThis
- 常量:SYMBOLIC_CONSTANTS_LIKE_THIS
Right :
// var definition
var adminUser = db.query('SELECT * FROM users ...');
// function definition
function run(){
}
// Class definition
function BankAccount() {
}
Wrong:
var admin_user = db.query('SELECT * FROM users ...");
function bankAccount() {
}
-
文件命名
单词之间使用 ‘_’ underscore 来 分割,如果你不想暴露某个文件给用户 ,
你也可以用‘_’ 来开头
Right :
child_process.js
string_decoder.js
_linklist.js
-
不使用 const
关键字
虽然V8 和 Mozilla 都支持它,但它不是ECMA 标准,我们用以下方式定义常量:
Right:
var SECOND = 1 * 1000;
function File() {
}
File.FULL_PERMISSIONS = 0777;
-
比较操作 有的场景下应该用 "===" 替代 "=="
当你遇到这些符号比较时 :0 undefined null false true
你应该小心谨慎
比如 ' \t\r\n' == 0
比较结果是true
Right:
var a = 0;
if (a === '') {
console.log('winning');
}
Wrong:
var a = 0;
if (a == '') {
console.log('losing');
}
-
使用字面表达式,用 '{}' ,'[]' 代替 new Array
,new Object
不要使用 string
,bool
,number
的对象类型,即不要调用 new String
,new Boolean
,new Number
-
Object ,Array 创建,当有多个元素时,注意分行排列时逗号的位置
Right:
var a = ['hello', 'world'];
var b = {
good: 'code',
'is generally': 'pretty',
};
Wrong:
var a = [
'hello', 'world'
];
var b = {"good": 'code'
, is generally: 'pretty'
};
-
避免使用 “with” 与 “eval”
-
for-in 循环,仅在 object/hash/map 时使用,绝不要对Array 使用
-
不要把Array 当做关联数组或Object 使用,即你不应该用非数字作为Array 的索引
(Phper 尤其注意这点)
Wrong :
var a = []; // use '{}' instead
a['hello'] = 'shit';
a['foo'] = 'bar';
-
Node 的异步回调函数的第一个参数应该是错误指示
function cb(err, data , ...) {...}
-
类继承写法,尽管有各种方式来实现继承,但最为推荐的是Node 的标准写法
function Socket(options) {
...
stream.Stream.call(this);
...
}
util.inherits(Socket, stream.Stream);
-
如果你在模块中 exports 一个类,对于此类的私有成员变量,建议加上 "_" 前缀以示区分
-
变量声明时,应该每行声明一个,不应该都写在一行(尽管这被JSLint 所推荐)。
Right:
var assert = require('assert');
var fork = require('child_process').fork;
var net = require('net');
var EventEmitter = require('events').EventEmitter;
Wrong:( Node 源代码已经将此方式全部修正)
var assert = require('assert')
, fork = require('child_process').fork
, net = require('net')
, EventEmitter = require('events').EventEmitter;
-
注释规范,采用 Google 的js 规范
Right :
/**
* Queries a Baz for items.
* @param {number} groupNum Subgroup id to query.
* @param {string|number|null} term An itemName,
* or itemId, or null to search everything.
*/
goog.Baz.prototype.query = function(groupNum, term) {
// ...
};
更多案例请参看以上链接
-
多参考、模仿 Node 源码的编程风格 ^_^
相关推荐
### Android客户端编码规范详解 #### 一、引言 在软件开发过程中,编码规范的制定对于提高代码质量、增强团队协作效率以及维护项目的可持续性至关重要。Android客户端编码规范旨在为开发者提供一套统一的标准,...
### Java编码规范详解 #### 一、为什么要制定编码规范? 代码规范对于软件开发的重要性不容忽视。良好的代码风格不仅能提升代码的可读性,还能增强代码的健壮性,并减少因修改代码而引入错误的可能性。特别是在...
Node.js编码规范是提高代码可读性、可维护性和团队协作效率的重要工具。遵循一套统一的编码规范,可以使代码看起来整洁、一致,减少因个人习惯差异导致的误解和冲突。以下是一些重要的Node.js编码规范要点: 1. ...
在Node.js开发中,以下是一些关键的编码规范和最佳实践: 1. **代码格式化**:使用ESLint这样的静态代码检查工具,结合Prettier进行自动格式化,保持代码整洁。例如,设置合适的缩进(通常为2个空格)、换行符(LF...
《深入浅出Node.js》从不同的视角介绍了Node内在的特点和结构。由首章Node介绍为索引,涉及Node的各个...最后的附录介绍了Node的安装、调试、编码规范和NPM仓库等事宜。该文档已转换成便于移动设备浏览的模式,方便阅读
这意味着开发者可以直接在Node.js项目中使用`.mjs`扩展名的文件,享受原生的模块导入支持,从而更好地遵循现代JavaScript的编码规范。 3. **HTTP/3支持**:Node.js v16.1.0开始支持HTTP/3,这是一种基于QUIC协议的...
对于JavaScript,常见的编码规范有Airbnb风格指南、Google JavaScript风格指南等。遵循编码规范可以提高团队合作效率,减少理解他人代码的困难。规范通常涵盖命名约定、注释、缩进、空格、换行等方面。 源代码是...
### Drupal编码规范详解 #### 一、概述 Drupal是一款非常流行的开源内容管理系统(CMS),它以其高度灵活性和扩展性著称。为了确保Drupal代码的质量、可读性和一致性,Drupal社区制定了一套详细的编码规范标准。...
Node.js 最佳实践指南,旨在帮助开发者编写更加健壮、安全和易于维护的 Node.js 应用程序。它提供了一系列的最佳实践、原则和代码示例,...编码规范实践 测试和总体质量实践 进入生产实践 安全实践 性能实践 Docker实践
3. **ESLint**: 是一个静态代码分析工具,用于检测JavaScript代码中的潜在错误和不符合编码规范的地方,以提高代码质量和一致性。它可以集成到开发工作流中,帮助开发者遵循最佳实践。 4. **ES6**: 即ECMAScript ...
10. **代码结构与可维护性**:良好的代码组织和模块化设计可以提高代码的可读性和可维护性,遵循一定的编码规范和设计模式。 通过这个项目,开发者不仅可以学习到Node.js的实战技能,还能深入理解命令行工具的开发...
Node.js支持多种编码方式,包括但不限于: - `utf8`:Unicode Transformation Format 8-bit - `ascii`:American Standard Code for Information Interchange - `base64`:Base64 encoding - `hex`:Hexadecimal ...
这可能包括框架的选择、测试策略、编码规范以及自动化部署和监控机制。 2. **框架选择**:根据项目需求选择合适的框架,如Express(最流行的Web框架)、Connect(更轻量级的选项)或Koa(支持ES6语法的新框架)。 3....
你需要根据WAV的规范构造头部信息,然后将解码后的PCM数据写入文件。 - 使用`fopen`、`fwrite`等文件操作函数来创建和写入WAV文件。 4. **在JavaScript中调用**: - 在JavaScript中,你可以创建一个对象实例,...
Android项目编码规范是确保代码质量、可读性和团队协作的重要指导原则。以下是一些关键的命名规范和代码组织规则: 1. **命名规范**: - **包名**:包名应以全小写字母的ASCII字母开始,通常以公司或组织的域名...
最后,书中还涵盖了Node.js的安装、调试技巧、编码规范和NPM(Node Package Manager)的使用。NPM是Node.js的包管理工具,通过NPM可以方便地管理和分享模块,加速开发流程。 综上所述,《深入浅出Node.js》是一本全...
`Prettier`允许自定义配置,以适应团队的编码规范。可以通过创建`.prettierrc`或`.prettierrc.json`文件来设置规则。以下是一个简单的配置示例: ```json { "tabWidth": 2, "semi": true, "singleQuote": true, ...
3. **编码与测试**:遵循编码规范完成基于Delphi的编码任务,并参与结合测试、系统测试和系统交付工作。 4. **系统升级与维护**:负责系统的升级和维护工作。 #### 任职要求 1. **学历背景**:统招本科及以上学历,...