快捷搜索: 长连接 前端 源码 pan

代码研发规范

项目管理流程

代码规范

基本规范

    页面的增加、删除、修改功能:在处理完增删改逻辑后,需要添加系统日志,记录操作人、操作时间、操作类型(增、删、改),操作内容(删除XXX)以及其它的页面必填参数

class和interface规范

    操作某一个表的代码模块,其Moel、Service、ServiceImpl、Condition以及映射类的前缀需要与表名相关联。
针对t_uc_user表的操作对象:User.java为表的映射类;UserService和UserServiceImpl为操作该表的接口和实现类;UserCondition为查询条件封装类;UserModel为Web层和接口的交互类
    类中不推荐使用@Autowired注解,推荐使用@Resource注解
@AutoWired注解为spring提供,使用getType类型引入bean;@Resource注解由JEE提供,使用getType类型和getName名称引入Bean。使用后者有利于spring解耦
    类、方法、变量都应该有修饰词修饰。除了接口中的属性和方法

method规范

    格式:驼峰、首字母小写、以动词开头 命名示例:
以针对t_uc_user表操作接口UserService接口为例: 对于对象的保存:String save(User user) 对于对象的删除:int deleted(String userId) 根据主键获取对象:User get(String userId) 分页查询:Page<User> search(UserCondition condition,Page<User> page) 非分页查询:单个查询:User getUser(String userName);多个查询:List<User> listUser(String) 如果方法重载不满足查询需求时,可以在方法后面添加ByXXX查询。User getUserByEmail(String email)
    对于非对外提供的方法,使用private修饰 对于pubilc修饰的方法,需要对入参进行校验,比如Null校验。使程序有明确的处理方式 方法名应有自描述性,即可以通过方法名大概了解方法的功能 方法不应该返回null,如果需要,需要在注释中说明Null出现的场景 事务应该在方法上配置,而不是在类上。注意由动态代理导致事务失效的场景
Method A上配置事务,Method B未配置,且在A中调用B。此时,B中的sql不会因为异常而进行回滚,这是由于动态代理导致的。
    循环和if else的深度不应超过3层。if else必须使用{}封装执行体,即使只有一行代码,且在后面添加一行空行 方法中尽量批量执行sql,严重循环调用数据库查询,严禁循环调用远程方法

变量规范

    格式:驼峰、首字母小写、非动词开头 除了循环变量,禁止使用无意义的变量名,如 i、list等 避免String字符串变量的拼接,推荐使用StringBuilder

Exception和Log规范

    每个工程使用自定义包装的异常类 代码中异常应转化成自定义异常抛出,定义好code和message 严禁使用sout,使用log打印日志 每个异常都应被日志系统所记录 日志类使用org.apache.commons.logging.Log.java类,使用英文打印,避免后台查看乱码

应用规范

    调用提供client的应用,需要先配置client,避免应用堵塞 对于其他项目的依赖,禁止使用间接依赖的方式;避免svc端的循环依赖且底层应用的svc层禁止依赖上层应用 对于api、web工程包的名称,前缀为com.tbc.层级.appCode

svc规范

    禁止使用dao层;禁止使用jdbcTemplate;禁止3张表以上的join

其他

    代码提交时需要勾选 格式化代码 和 优化导入的包 选择,添加有意义的备注 表初始化脚本和表结构变更脚本需要在项目的Resouce下的db目录中备份

数据库规范

基本规范

    sql脚本统一使用utf-8格式编码 除了主键和uuid生成字符的字段,其他varchar类型的字段根据场景选择 10 20 50 100 200 400 800 1300 长度,更大的字符存放到hadoop数据库中,该字段只存放开头部分 sql脚本应提前一天以邮件形式发给指定人员

表规范

    表名格式:类型名_应用名_功能名_关联关系
类型名:表格:t;存储过程:p;视图:v 应用名:各个应用的枚举,例如uc、elm等 功能名:user:操作用户;product:操作商品 关联关系:当前表与其他表有关联关系可使用rel关联
    表名不超过5个单词,长度不超过30字符 表名不要以pg_、sql_、sl_开头,前两者使postgresql数据库的保留表前缀,后者是储存主从同步信息表前缀

列规范

    尽量使用常用的数据类型,由英文字母与下划线组成,避免数字和特殊字符,长度不超过30字符 id、name、type等名称需要加上表的后缀名,便于后续人员维护 避免字段存放无意义的数字 0 1 2等,类型状态等可使用英文单词的枚举,并在注释中说明每个单词的中文含义 可以根据业务需要,添加n个预留字段,varchar类型 为了后续的升级,只能新加字段,严禁删除或者修改表结构 字段如果允许null值,需要对null进行说明,并且在代码中对null进行处理。如果是非空字段,需要添加默认值

索引规范

    格式:i_应用名_功能名_列名 对于corp_code公司编码字段添加索引时,不需要添加列表 对于唯一性索引,不需要添加列表,且i改成t 使用复合索引时,where语句中需要包含复合索引的首位字段,否则复合索引不会生效 单字段索引不应超过3个,复合索引不应超过3个列 关联其它表主键的字段、where语句中经常出现的字段、具有高选择性和过滤性的字段,建议添加索引
经验分享 程序员 微信小程序 职场和发展