nodejs编程规范

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 = '<a href="http://cnodejs.org">CNode</a>';

在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高级编程

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


web开发之业余架构师
java,nodejs,python脚本,go语言开发,web开发,编程学习,随笔感想。

爱编程,爱折腾,成为真正的极客,真正的coder!

317 声望
13 粉丝
0 条评论
推荐阅读
java程序员最好的debug教学
如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,然后按Ctrl+s保存断点,该断点会被激活并且如果布尔条...

maochunguang2阅读 4.2k

正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.5k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 7k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7.1k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.5k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木35阅读 6.7k评论 10

爱编程,爱折腾,成为真正的极客,真正的coder!

317 声望
13 粉丝
宣传栏