博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs编程规范
阅读量:5838 次
发布时间:2019-06-18

本文共 1588 字,大约阅读时间需要 5 分钟。

node开发需要编程规范吗?

  1. js的灵活性非常大,如果开发人员每个人都按自己的习惯随意编写,js的代码会非常混乱不堪。js程序员需要更强的自律性和规范,才能写出易读性,易维护的代码。

  2. 随着前端mvc的崛起,前端的js代码会更加庞大难以管理,如果没有统一的规范,后期维护会比登天还难。

编码规范

  1. 缩进

    采用两个空格缩进,在编辑器中设置tab为两个空格

  2. 变量声明

  • 用var声明变量

    var assert = require('assert');

    var fork = require('child_process').fork;
    var net = require('net');

  • 错误实例:

    var assert = require('assert')

    , fork = require('child_process').fork
    , net = require('net');

  • 用字面量声明方式

    var num = 123;

    var aaa = {};
    var arr = [];
    var isAdmin = true;

  • 避免使用:

    var obj =new Object();

    var arr = new Array();
    var test =new String("");
    var size = new Number();

  • 不要在for循环等循环里声明var变量

    首先var是函数作用域,在循环声明以后只有等函数声明周期结束这些资源才会释放

  1. 空格

    在操作符前后需要加上空格,= 、% 、* 、- 、+ 前后都应该加一个空格

比如:var foo = 'bar' + baz;

错误实例:var foo='bar'+baz;

  1. 单双引号的使用

    在node中尽量使用单引号,

var html = 'CNode';

在json中使用双引号

  1. 分号

    给表达式结尾加分号,尽管js会自动在行尾加上分号,但是会产生一些误解

命名规范

在编码中,命名是重头戏。好的命名可以使代码赏心悦目,具有良好的维护性。

  1. 变量命名

    变量名采用小驼峰命名,单词之间没有任何符号如:

var adminUser = {};var callNum = 2134323;
  1. 方法命名

    也是采用小驼峰命名,与变量不同的是采用动词或判断行词汇,如:

var getUser = function(){};var isAdmin = function(){};var findUser = function(){};
  1. 类命名

    类名采用大驼峰,所有单词首字母大写,如:

function User{}
  1. 常量命名

    作为常量,单词所有字母大写,用下划线分割,如:

var PINK_COLOR = "PINK";
  1. 文件命名

    命名文件时,尽量使用下划线分割单词,比如child_process.js和string_decode.js

  2. 包名

    在包名中尽量不要包含js和node的字样,应当适当短并且有意义

其它要点

  1. 作用域

    慎用with和eval(),容易引起作用域混乱

  2. 比较操作

    尽量使用===代替==,否则会遇到下面的情况,

'0'==0;//true; ''==0;//true; '0'===''//false;
  1. 严格模式

    在node后台中尽量全使用严格模式

'use strict';
  1. 对象和数组遍历

    数组遍历使用普通for循环,避免使用for in对数组遍历,对象的遍历使用for in

项目中实践

  1. sublime和webstorm都有JSLint,JSHint这样的代码质量工具,在配置文件中制定好模板规范即可

  2. 在版本控制工具中设置hook,在precommit的脚本中设置,如果代码不符合标准,就无法提交

参考文献

  1. 深入浅出nodejs

  2. js秘密花园

  3. js高级编程

如果文章对你有帮助,请去我的个人博客留个言吧!

转载地址:http://ykncx.baihongyu.com/

你可能感兴趣的文章
Git分支2
查看>>
一键安装Gitlab后的备份、迁移与恢复
查看>>
因为本人工作繁忙,精力有限,本博客停止更新。有兴趣的博友可以关注我在CSDN上的主博客...
查看>>
三元表达式,推导式,递归,匿名函数,内置函数
查看>>
SQL server查看触发器是否被禁用
查看>>
[C++基础]在构造函数内部调用构造函数
查看>>
跟随我在oracle学习php(8)
查看>>
Spring 3.1.0 Hibernate 3.0 Eclipse Spring WEB例子
查看>>
使用Unicode写文本文件:一个简单类的示例
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
求两个集合的交集,并集,差集
查看>>
[Laravel] Laravel的基本数据库操作部分
查看>>
Kotlin的语法糖(一)基础篇
查看>>
OkHttp源码分析
查看>>
让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待
查看>>
windows kernel exploitation基础教程
查看>>
NS_OPTIONS枚举的用法
查看>>
java9系列(九)Make G1 the Default Garbage Collector
查看>>
(NO.00003)iOS游戏简单的机器人投射游戏成形记(四)
查看>>
分析 "End" "Unload Me" "Exit Sub" 之间的区别与联系
查看>>