前言
Code Review主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能)
提示:以下是本篇文章正文内容,下面案例可供参考
一、起名:
命名是要展现意图 名字不能过于长 并且语义清晰
不能取只有自己才能明白的
开关: xxxxxvisible
对函数的操作: handlexxxxxx
得到: getxxxxxxxx
1、起的名字是有意义的,可以表达一个概念
2、要考虑名字的长度,名称中只有必要的信息
3、符合“编码规范”,帮助理解
4、一个概念不要多种名字混用
5、使用在背景领域和上下文中都有意义的名字
二、注释
1.方法注释:
代码如下(示例):
/**
* 合并Grid的行
* @param grid {Ext.Grid.Panel} 需要合并的Grid
* @param cols {Array} 需要合并列的Index(序号)数组;从0开始计数,序号也包含。
* @param isAllSome {Boolean} :是否2个tr的cols必须完成一样才能进行合并。true:完成一样;false(默认):不完全一样
* @return void
* @author polk6 2015/07/21
* @example
* _________________ _________________
* | 年龄 | 姓名 | | 年龄 | 姓名 |
* ----------------- mergeCells(grid,[0]) -----------------
* | 18 | 张三 | => | | 张三 |
* ----------------- - 18 ---------
* | 18 | 王五 | | | 王五 |
* ----------------- -----------------
*/
function mergeCells(grid: Ext.Grid.Panel, cols: Number[], isAllSome: boolean = false) {
// Do Something
}
2.精简代码
善于运用ES6中解构 const { a } = this.state
代码擅于拆分 重复的写成一个公共方法便于使用
修改前
if (expressName != '' && expressName != 'all' && minWeight == '' && maxWeight == '') { // 只有快递公司
if (rowsStr.tidArr && rowsStr.trade.orders.order[0].logistics_company != expressName) {
rowsStr.errors.push({ msg: `结算${expressName},打印${rowsStr.trade.orders.order[0].logistics_company}` });
}
if (parseFloat(rowsStr.tradeWeight) != rowsStr.weight && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
} else if ((expressName == '' || expressName == 'all') && minWeight != '' && maxWeight == '') { // 只有最小重量
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(minWeight) > rowsStr.weight || rowsStr.weight > parseFloat(rowsStr.tradeWeight)) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
} else if ((expressName == '' || expressName == 'all') && minWeight == '' && maxWeight != '') { // 最有最大重量
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(maxWeight) < rowsStr.weight || rowsStr.weight < parseFloat(rowsStr.tradeWeight)) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
} else if (expressName != '' && expressName != 'all' && minWeight != '' && maxWeight == '') { // 只有快递公司和最小重量
if (rowsStr.tidArr && rowsStr.trade.orders.order[0].logistics_company != expressName) {
rowsStr.errors.push({ msg: `结算${expressName},打印${rowsStr.trade.orders.order[0].logistics_company}` });
}
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(minWeight) > rowsStr.weight || rowsStr.weight > parseFloat(rowsStr.tradeWeight)) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
} else if (expressName != '' && expressName != 'all' && minWeight == '' && maxWeight != '') { // 只有快递公司和最大重量
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(maxWeight) < rowsStr.weight || rowsStr.weight < parseFloat(rowsStr.tradeWeight)) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
if (rowsStr.tidArr && rowsStr.trade.orders.order[0].logistics_company != expressName) {
rowsStr.errors.push({ msg: `结算${expressName},打印${rowsStr.trade.orders.order[0].logistics_company}` });
}
} else if ((expressName == '' || expressName == 'all') && minWeight != '' && maxWeight != '') { // 只有重量范围
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(maxWeight) < rowsStr.weight || parseFloat(rowsStr.tradeWeight) + parseFloat(minWeight) > rowsStr.weight) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
} else if (expressName != '' && expressName != 'all' && minWeight != '' && maxWeight != '') { // 三个都有
if ((parseFloat(rowsStr.tradeWeight) + parseFloat(maxWeight) < rowsStr.weight || parseFloat(rowsStr.tradeWeight) + parseFloat(minWeight) > rowsStr.weight) && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
if (rowsStr.tidArr && rowsStr.trade.orders.order[0].logistics_company != expressName) {
rowsStr.errors.push({ msg: `结算${expressName},打印${rowsStr.trade.orders.order[0].logistics_company}` });
}
} else { // 商家未填写内容
if (parseFloat(rowsStr.tradeWeight) != rowsStr.weight && rowsStr.tradeWeight && rowsStr.weight) {
rowsStr.errors.push({ msg: `重量:结算${rowsStr.weight},打印${rowsStr.tradeWeight}` });
}
}
修改后
版权声明:本文为weixin_44362151原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。