`
wzy1986714
  • 浏览: 11587 次
  • 性别: Icon_minigender_1
  • 来自: 温州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Node 编码规范

阅读更多

Node 编码规范

  • 缩进 ,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 Arraynew Object

    不要使用 stringboolnumber 的对象类型,即不要调用 new Stringnew Booleannew 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客户端编码规范详解 #### 一、引言 在软件开发过程中,编码规范的制定对于提高代码质量、增强团队协作效率以及维护项目的可持续性至关重要。Android客户端编码规范旨在为开发者提供一套统一的标准,...

    Java编码规范.docJava编码规范.doc

    ### Java编码规范详解 #### 一、为什么要制定编码规范? 代码规范对于软件开发的重要性不容忽视。良好的代码风格不仅能提升代码的可读性,还能增强代码的健壮性,并减少因修改代码而引入错误的可能性。特别是在...

    Node.js编码规范

    Node.js编码规范是提高代码可读性、可维护性和团队协作效率的重要工具。遵循一套统一的编码规范,可以使代码看起来整洁、一致,减少因个人习惯差异导致的误解和冲突。以下是一些重要的Node.js编码规范要点: 1. ...

    Node.js-Node.js编码风格指南

    在Node.js开发中,以下是一些关键的编码规范和最佳实践: 1. **代码格式化**:使用ESLint这样的静态代码检查工具,结合Prettier进行自动格式化,保持代码整洁。例如,设置合适的缩进(通常为2个空格)、换行符(LF...

    Node.js.mobi

    《深入浅出Node.js》从不同的视角介绍了Node内在的特点和结构。由首章Node介绍为索引,涉及Node的各个...最后的附录介绍了Node的安装、调试、编码规范和NPM仓库等事宜。该文档已转换成便于移动设备浏览的模式,方便阅读

    node-v16.1.0-macos.zip

    这意味着开发者可以直接在Node.js项目中使用`.mjs`扩展名的文件,享受原生的模块导入支持,从而更好地遵循现代JavaScript的编码规范。 3. **HTTP/3支持**:Node.js v16.1.0开始支持HTTP/3,这是一种基于QUIC协议的...

    js javascript 资料 实用 教程 资料 编码规范 源代码

    对于JavaScript,常见的编码规范有Airbnb风格指南、Google JavaScript风格指南等。遵循编码规范可以提高团队合作效率,减少理解他人代码的困难。规范通常涵盖命名约定、注释、缩进、空格、换行等方面。 源代码是...

    drupal 编码规范

    ### Drupal编码规范详解 #### 一、概述 Drupal是一款非常流行的开源内容管理系统(CMS),它以其高度灵活性和扩展性著称。为了确保Drupal代码的质量、可读性和一致性,Drupal社区制定了一套详细的编码规范标准。...

    Node.js 最佳实践指南

    Node.js 最佳实践指南,旨在帮助开发者编写更加健壮、安全和易于维护的 Node.js 应用程序。它提供了一系列的最佳实践、原则和代码示例,...编码规范实践 测试和总体质量实践 进入生产实践 安全实践 性能实践 Docker实践

    node_modules

    3. **ESLint**: 是一个静态代码分析工具,用于检测JavaScript代码中的潜在错误和不符合编码规范的地方,以提高代码质量和一致性。它可以集成到开发工作流中,帮助开发者遵循最佳实践。 4. **ES6**: 即ECMAScript ...

    一个node实现队列执行的自定义处理项目发布部署命令式cli脚本工具

    10. **代码结构与可维护性**:良好的代码组织和模块化设计可以提高代码的可读性和可维护性,遵循一定的编码规范和设计模式。 通过这个项目,开发者不仅可以学习到Node.js的实战技能,还能深入理解命令行工具的开发...

    node js 中文文档.pdf 下载

    Node.js支持多种编码方式,包括但不限于: - `utf8`:Unicode Transformation Format 8-bit - `ascii`:American Standard Code for Information Interchange - `base64`:Base64 encoding - `hex`:Hexadecimal ...

    Node.js掠影

    这可能包括框架的选择、测试策略、编码规范以及自动化部署和监控机制。 2. **框架选择**:根据项目需求选择合适的框架,如Express(最流行的Web框架)、Connect(更轻量级的选项)或Koa(支持ES6语法的新框架)。 3....

    NAPI实现nodejs音频转换MP3到WAV,源码+编译好的.node直接用

    你需要根据WAV的规范构造头部信息,然后将解码后的PCM数据写入文件。 - 使用`fopen`、`fwrite`等文件操作函数来创建和写入WAV文件。 4. **在JavaScript中调用**: - 在JavaScript中,你可以创建一个对象实例,...

    Android项目编码规范[整理].pdf

    Android项目编码规范是确保代码质量、可读性和团队协作的重要指导原则。以下是一些关键的命名规范和代码组织规则: 1. **命名规范**: - **包名**:包名应以全小写字母的ASCII字母开始,通常以公司或组织的域名...

    深入浅出Node.js1

    最后,书中还涵盖了Node.js的安装、调试技巧、编码规范和NPM(Node Package Manager)的使用。NPM是Node.js的包管理工具,通过NPM可以方便地管理和分享模块,加速开发流程。 综上所述,《深入浅出Node.js》是一本全...

    Node.js-Prettifier只需一个命令就能够开始使用prettier

    `Prettier`允许自定义配置,以适应团队的编码规范。可以通过创建`.prettierrc`或`.prettierrc.json`文件来设置规则。以下是一个简单的配置示例: ```json { "tabWidth": 2, "semi": true, "singleQuote": true, ...

    Node.js开发岗位职责Node.js开发职责任职要求.docx

    3. **编码与测试**:遵循编码规范完成基于Delphi的编码任务,并参与结合测试、系统测试和系统交付工作。 4. **系统升级与维护**:负责系统的升级和维护工作。 #### 任职要求 1. **学历背景**:统招本科及以上学历,...

Global site tag (gtag.js) - Google Analytics