项目开发过程中数据字典的规范

    必知不觉工作已经两年多了,技术路途中也是一直自己慢慢摸索,深夜学习突然对比公司项目数据字典这块颇有感而发。

    公司的项目从我接手完善已经一年多了,从刚开始的啥都不会到慢慢的啃代码,读懂代码到后来的重写代码,重新写逻辑关系,设计表,再加上客户催的紧,一直没对代码进行设计上的梳理,都是业务功能代码的梳理修改重用。

    我再这一年的开发中碰到过很多客户提出来的新需求,新建了很多表,有很多新的标识符用来判断程序的某些状态,慢慢的发现项目好像越做越累。有时候想起一个功能,感觉其中的状态千丝万缕,有种纯sevelet用针穿起来的项目的感觉(当然没有那么夸张)。今天决定梳理一下关于以后数据字典规范问题,刚好最近清闲了以后,把项目中的数据字典都重新整理一遍。

    在项目开发规范中一般数据字典都要有枚举类用来存储的。jdk1.6以上多了的枚举类本身就是用来干这个的。如下所示:

package com.mmall.common;

/**
 * Created by xinxuchu on 2018/10/10.
 */
public enum ResponseCode {



    SUCCESS(0,"SUCCESS"),
    ERROR(1,"ERROR"),
    NEED_LOGIN(10,"NEED_LOGIN"),
    ILLEGAL_ARGUMENT(2,"ILLEGAL_ARGUMENT");

    private final int code;
    private final String desc;

    ResponseCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode(){
        return code;
    }

    public String getDesc(){
        return desc;
    }
}

 上面的枚举类就定义了几个常用的返回数据字典。但实际开发中开发问题往往多而琐碎,一直新建对开发人员太过麻烦。

那么,有没有一种轻量级易操作,又能达到同样效果的方法呢?

内部接口类

package com.mmall.common;

import com.google.common.collect.Sets;

import java.util.Set;

/**
 * Created by xinxuchu on 2018/10/13.
 */
public class Const {

    public static final String CURRENT_USER = "currentUser";


    public static final String EMAIL = "email";
    public static final String USERNAME = "username";


    //这里原本打算使用枚举类的,但是显得过于繁重
    //这里采用内部接口类这个小技巧
    public interface Role{
        int ROLE_CUSTOMER = 0;//普通用户
        int ROLE_ADMIN = 1;//管理员
    }

    public  interface  Cart{
        int CHECKED = 1;
        int UN_CHECKED = 0;
    }


    public interface ProductListOrderBy{
        //set的contains的时间复杂o1,list的时间复杂度是on
        Set PRICE_ASC_DESC = Sets.newHashSet("price_asc","price_desc");
    }

    public enum productStatusEnum{
        ON_SALE(1,"在线");
        private String value;
        private  int code;
        productStatusEnum(int code,String value){
            this.code = code;
            this.value = value;
        }

        public String getValue() {
            return value;
        }

        public int getCode() {
            return code;
        }
    }
}

 通过内部接口类这样就完美解决了,类似数据字典一样的效果,数据清晰,一目了然。

  

你可能感兴趣的:(随笔)