node.js 开发规范

一个良好的开发习惯,可以减少很多错误

命名规范

查看js 命名规范.md

限制

  1. 尽量不要使用 eval(),冗余产生入侵
  2. 缩进 在同一系统中应采用同一种缩进标准,本文提倡缩进大小为4个空格。
  3. 花括号{}
  4. 空格 任何“;”后空一格、for循环中初始化“,”后空一格、数组中","后空一格、对象中“:”后空一格、如:
for (var i = 0, j = 1; i < 10; i += 1){
  var some = [1, 2, 3];
  var obj = {aa: 1, bb: 2}
}
  1. 函数参数里“,”后空一格、函数声明中花括号前空一格、函数表达式中括号前后各空一格,如:
func(a, b, c){};
function func() {};
var func = function () {};
  1. 所有的操作符前后都跟一个空格,如:
var d = 0,
    a = b + 1;
if (a && b && c) {
    d = a % c;
    a += d;
}
  1. 换行
    在以下位置必须换行:
  • 每个独立语句结束后;
  • if、else、catch、finally、while等关键字前;
  • 运算符处换行时,运算符必须在新行的行首。
  • 对于因为单行长度超过限制时产生的换行,参考行长度中的策略进行分隔。
  1. 三元运算符过长
//无需换行
var result = content?result1:result2;
//换行
var data = _.isEmpty(content)
  ? _.isEmpty(content2)
    ?content3:content2
  :content;

Interface 接口返回参数规范

  1. 接口名称:大驼峰吗?
  2. 返回参数,小驼峰
{status:200,data:{name:'admin',list:[]},info:''}
{status:0,data:'查询失败',info:''}
{status:5005,data:'服务器繁忙',info:''}

Proxy 代理层

  1. 注释:标记入参,出参
  2. 将接口参数返回为标准模式参数
  3. 在备注中添加,功能简介
/**
 * 录入赠送记录
 * 1. 通过。。。。 
 * @param params
 * {"openid":"微信唯一标识","from_deviceno":"发起人设备号 必传","to_deviceno":"接受人设备号 必传","gifts":"礼物 [50M、100G] 必传","type":"类型 [1]流量 必传","remark":"备注 一个有规则的json串"}
 * @param callback
 *  {"data":"赠送记录唯一标识","status":200,"info":0}
 * @constructor
 */
GiveFlowProxy.GfCreateGivingGiftsRecord = function (params, callback) {
    var url = urlKit.GfCreateGivingGiftsRecord;
    httpUtil.post(url, params, function (error, response, content) {
        callback(error, content);
    });
};

写注释

  1. 注释规范
  2. 包含那些信息

实例

/**
 * 方法名
 1. 简要写一下功能操作
 * @param  {[type]}   param    [description]
 * @param  {Function} callback [description]
 * @return {[type]}            [description]
 */
BillAndPayProxy.getWXPayData = function (param, callback) {
    httpUtil.post(apis.wxDiscPayUrl, param, function (error, response, content) {
        logger.info("获取微信支付数据返回结果:" + JSON.stringify(param) + JSON.stringify(content));
        callback(error, content);
    });
};
  1. 注释


    node.js 开发规范_第1张图片
    注释

参考

http://www.jb51.net/article/87142.htm
http://www.jb51.net/article/22229.htm

你可能感兴趣的:(node.js 开发规范)