java-开发规约

public class TenTen {
    /**
     * 代码中的命名不能用下划线或美元符号开始和结束:例如 _name name_  $name name$
     */

    /**
     * 类名必须使用UpperCamelCase风格(大驼峰),后面的例外:DO  BO DTO  VO AO  PO UID
     * (第一个词的首字母,以及后面每个词的首字母都大写)
     * 正确类名例子:ForceCode  UserDO  HtmlDTO  XmlService
     */

    /**
     * 方法名,参数名,成员变量名,局部变量名统一使用LowerCamelCase风格(小驼峰),
     * (第一个词的首字母小写,后面每个词的首字母大写)
     * 正确例子:localValue  getName
     */

    /**
     * 常量命名全部大写,且单词之间用下划线隔开,力求表达语义完整,不嫌名字长
     * 正确例子CITY_NAME
     */

    /**
     *抽象类名使用 Abstract 或者 Base 开头
     * 异常类名使用 Exception 结尾
     * 测试类名使用 以要测试的类的名称开始,并和 Test 结尾
     */

    /**
     * 类型与中括号紧挨相连--》表示数组;
     *      int[] arrayDemo
     */

    /**
     * 包名统一使用小写,包名统一使用单数形式,如果类名需要负数形式可以使用复数
     * com.quan.entity 类名:UserUtils
     */

    /**
     * 避免在子父类的成员变量之间或者不同代码块的局部变量之间采用完全形同的命名。
     */

    /**
     * 杜绝完全不规范的缩写,避免望文不知义的情况:
     * 错误例子  Condition 写成condi
     */

    /**
     * 常量和变量的命名,推荐将他们的类型放在尾部,提高辨识度
     * 例子:startTime  nameList  mysqlConnection
     */

    /**
     * 如果模块,接口,类,方法使用了设计模式,命名时需要体现出具体的模式
     * 例子:LoginProxy  BeanFactory
     */

    /**
     * 接口类中的方法和属性》不要加任何的修饰符号《保存整洁,不要在接口里面地定义变量
     */

    /**
     * 接口和实现类的规约:
     *  1-对于Service DAO 类,内部实现类用Impl的后缀与接口区别
     *      例子:EventServiceImpl 实现 EventService接口
     *  2-如果是形容能力的接口名称,去对应的形容其为接口名
     *      例子:AbstractTranslator 实现 Translatable接口
     */

    /**
     * 枚举类名带上Enum后缀,枚举成员名称需要全部大写,单词间用下划线隔开
     *  实际枚举就是特殊的常量类,他的构造函数被默认是强制私有的
     *  例子:StatusEnum 成员名称:SUCCESS  UNKNOW_ERROR
     */

    /**
     * 分层命名:
     *  1-Service/DAO层
     *      获取单个对象方法-用get前缀
     *      获取多个对象方法-用list前缀
     *      获取统计值-用count做前缀
     *      插入的方法-用save/insert做前缀
     *      删除的方法-用remove/delete做前缀
     *      修改的方法-用update做前缀
     *  2-领域模型:
     *      数据对象-xxxDO,xxx为数据表名
     *      数据传输对象-xxxDTO xxx为业务领域相关的名称
     *      展示对象-xxxVO xxx一般为网页名称
     *      POJO是DO/DTO/BO/VO的统称,禁止命名为xxxPOJO
     */
}

 

/**
 * 常量定义
 */
public class Constant {
/**
 * 不允许任何魔法值(未经定义的常量)-直接使用
 * 错误例子:String key = "quan" + userId
 */

/**
 * 使用long或者Long赋值的时候,数值需要使用大写L,不能写小写字符l,避免和1混淆
 * 例子:Long id = 2L
 */

/**
 * 禁止使用一个常量类维护所有常量,常量按功能归类,分开维护
 * CacheConsts  SystemConfigConsts
 */

/**
 * 如果变量值仅在一个固定范围内变化用Enuml类型来定义
 *  包括季节,星期等
 */
}

 

/**
 * 代码格式
 */
public class CodeFormat {
    /**
     * 如果大括号为空,可以写为{} 中间无需空格
     * 如果不为空:
     *  1-左大括号前不换行
     *  2-左大括号后换行
     *  3-右大括号前换行
     *  4-右大括号后还有其他代码则不换行,表示终止的右大括号后必须换行
     */

    /**
     *  左小括号和右边相邻字符之间不出现空格,右边小括号和左边相邻字符也不需要空格
     *  但是,左边大括号前需要空格
     */

    /**
     * if/for/while/switch/do等保留关键字与括号之间必须加一个空格
     */
    public static void main(String[] args) {
        // 缩进四个空格
        String name = "quan";
        // 运算符的左右必须有一个空格
        int flag = 0;
        // 关键词if和括号之间必须有空格,括号内的flag与左小括号,0和右小括号都不需要空格
        if (flag == 0) {
            System.out.println("done");
        }
        // 左大括号前加空格且不换行,左大括号后换行
        if (flag == 1) {
            System.out.println("");
            // 右大括号前换行,右大括号后有else不需要换行
        } else {

        }
    }
}

 

posted @ 2020-10-11 22:11  小丑quan  阅读(144)  评论(0)    收藏  举报