美文网首页
优雅代码(1)

优雅代码(1)

作者: 御风_2fd9 | 来源:发表于2018-10-17 21:37 被阅读23次

    异常

    自定义异常,设定状态码和相应的异常信息,在关键代码处打日志,并且抛出异常信息。
    什么是关键代码处,比如调用接口,调用数据库等。
    操作示例:
    if (updateResult == null) {
        log.error("【取消订单】更新失败, orderMaster={}", orderMaster);
        throw new SellException(ResultEnum.ORDER_UPDATE_FAIL);
    }
    注意,此处打日志,使用了占位符的方式,相较于字符串拼接,更加优雅。

    注释

    好的代码没有注释,但是目前还达不到那种境界,而且,大面积不注释影响他人阅读,随着时间推移,自己都可能忘记自己当初写该段代码的初衷。
    在代码关键点处注明代码用意,在接口方法处注明方法用途,入参,出参的含义。

    使用枚举对象

    将常量、状态码封装到枚举对象中,并设置常量值和常量含义两个对象属性。
    比如描述订单状态
    @Getter
    public enum OrderStatusEnum {
    NEW(0, "新订单"),
    FINISHED(1, "完结"),
    CANCEL(2, "已取消"),
    ;

    private Integer code;
    private String message;
    OrderStatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
    

    }

    工具类

    将功能性强或业务意义很弱的代码抽取成工具类,分离代码类的职责,让单个类不至于显得太臃肿,增强代码可读性。
    比如,生成订单唯一主键
    抽取成一个工具类
    public class KeyUtil {

    /**
     * 生成唯一的主键
     * 格式: 时间+6位随机数
     * 使用synchronized 保证线程安全
     * @return
     */
    public static synchronized String genUniqueKey() {
        Random random = new Random();
        Integer number = random.nextInt(900000) + 100000;
    
        return System.currentTimeMillis() + String.valueOf(number);
    }
    

    }

    单元测试

    对每层对象的每个方法进行单元测试,确保代码质量。

    相关文章

      网友评论

          本文标题:优雅代码(1)

          本文链接:https://www.haomeiwen.com/subject/jvcdzftx.html