• 【项目】 代码走查内容总结


    BOSS代码走查内容表


    命名正确
    包命名正确:
    Package 的名字应该都是由小写单词组成。例如:package com.neu.util

    类命名正确
    Class 名称使用帕斯卡命名法命名:名称由具有含义的单词组成,并代表了其意义,且单词首字母大写例如:public class ThisAClassName{ //CODE}
    抽象类以Abstract开头例如:AbstractThisAClassName

    变量、方法、方法参数命名正确
    使用骆驼命名法命名,即名称由有具体含义的单词组成,并代表了其作用,第一个单词之外,其他单词首字母大写
    例如:public void setProductName(String productName){
        this.productName=productName;
    }
    接口命名正确
    接口以大写I开头例如:IThisAInterface

    静态常量命名正确
    Static Final 变量的命名 static Final 变量的名字应该都大写,并且指出完整含义。
    例如private static final String ISO8610_DATE_PATTERN==”yyyy-MM-dd”

    数组命名正确
    数组的命名 数组应该总是用下面的方式来命名:
    例如:byte[] buffer; 而不是: byte buffer[]

    类信息正确
    类代码是否超过500行,或在发生变化时会变得狠大
        除界面外,类大小不应超过500行

    类所属工程及相关工程以来是否正确
    类是否放到相应的工程下且包路径正确
    新建类引入的工程以来是否正确。例如:主营用不应该依赖客户化

    类所需要的第三方包是否上传到指定服务器
    避免构建时因包引用不正确造成构建时间

    类中是否存在重复代码,需要提取成公共方法
    重复代码应该提取为公共方法,或供其它地方使用的工具类

    当某个功能变化时,是否需要修改多个类

    子类只使用了“父类”的某些属性或者行为
    检测改继承是否使用正确,是否应修改为组合的关系

    方法处理正确
    方法是否超过30行
    方法超过30行一般为业务主线与实现细节未分开,需要将相同逻辑或者实现细节提取到为新的方法,并使用有含义的方法名

    方法参数是否存在异常但未做处理
    例如:参数不能为空,需要使用Assert.判断处理

    方法中的变量或者常量是否使用正确
    例如:默认不变子字符串或数值应提取为常量,变量的作用域是否正确等

    方法中循环边界是否正确,不应出现死循环

    方法中循环中不应多次调用数据库
    例如:    while (null != seg) {
                    double min = seg.getBeginSegment() * calcMonthlyFee(dto);
    //这里不正正确calcMonthlyFee 多次调用了数据库,应考虑循环外处理
                    //CODE...
                }
              private double calcMonthlyFee(PromotionExcuteDTO dto) {
                //调用数据库
          }

    方法中全局变量使用是否正确
    检测全局变量是否必要
    检测全局变量是否因负值导致问题

    方法中参数是否不必要,或者参数是否过多

    方法中逻辑是否可以调用工具类实现

    方法中Switch语句是否可以使用类来代替

    方法中是否存在过多的IF判断或者循环


    异常处理是否正确
    异常是否未被捕获
    检测是否某些应该捕获的异常类型没有使用Catch捕获

    捕获到的异常是否未处理
    检测异常捕获后是否有相应的处理
    检测特殊情况下如果需要吃掉相关的异常,是否打印了相关提示日志
    例如:     try{
                            // BUSINESS CODE
                            // ...
                          }catch (Exception e) {//若不需要中断处理需要打印日志
                           log.error("STARIBOSS.internal.error!Case:", e);
                     }


    Catch异常是否遵循从小到大的原则
    例如:存在”nullPointException异常” 、”Exception异常” 同时存在时,需要先捕获“null PointException异常”进行处理,然后再捕获”Exception异常”处理。

    LOG日志处理是否正确
    日志等级是否使用正确
    log.info();//一般信息
    log.debug();//调试信息
    log.error();//错误信息,一般未知的异常Exception异常使用
    log.warn();//警告信息
    log.fatal();//致命错误信息

    日志输出内容是否正确
    检测输出内容是否可以帮助排查相关问题

    日志输出格式是否正确
    如果需要输出堆栈信息log.error("error message", e)
    如果只需要输出错误信息 log.error("error message"+e)


  • 相关阅读:
    Vue学习-Day1
    Shell脚本学习
    Linux基础
    C# int.Parse()、int.TryParse()与Convert.ToInt32()的区别
    windows下跑python flask,环境配置
    linq性能剖析
    servicestack操作redis
    程序员福利各大平台免费接口非常适用
    ASP.NET下跨应用共享Session和使用Redis进行Session托管简介
    Web Farm和Web Garden的区别
  • 原文地址:https://www.cnblogs.com/liuyongcn/p/3567824.html
Copyright © 2020-2023  润新知