# 开发规范 ## 代码文档规范 * 为保持代码与文档一致,所有代码的类,函数,属性都必需写入相应的注释。注释以javadoc规范为准。 * 代码文档将使用dokka工具自动化生成。 ![开发 dev](./img/dev_001.jpg) ## 实体类定义规范 * 代码文档注释。使用/** */加注释,不可以使用 //。类对象的注释必需添加作者。 * Swagger注解 * 类使用ApiModel注解,description为描述内容。 * 属性使用ApiModelProperty注解,value为描述内容。日期型默认的输出格式与我们要求的数据格式不同,通过加example指写其输出内容。 例如:@ApiModelProperty(value = "创建时间", example = "2019-03-01 10:10:10") ![开发 dev](./img/dev_003.jpg) ![开发 dev](./img/dev_002.jpg) * Json注解(FastJson) * 首字母大小不同,不需要加注解。数据字典定义的首字母大写,实体类属性名的首字母小写(按java命名规范),由应用程序统一控制输出的json属性首字母大写; * 属性名与Json输出名称不一致,要加注解@JSONField。如建筑名称 * 不希望生成到json的属性加serialize = false,@JSONField(name = "SpeedSensor",serialize = false ) * 所有属性默认为空。框架在更新时默认不更新为空的字段 * 在数据中心中默认所有实体类都有lastUpdate与createTime属性 * lastUpdate与createTime只从数据库读取。 @Column注解的insertable=false, updateable=false * 数据库映射注解(框架使用该注解对数据库进行读写操作) * @Table注释标注该实体类对应的数据库表,如果数据库表有模式,则name=“模式名.表名”。 * 属性对应数据库表的主键,使用@Id标注释。 * 属性要写入数据库或从数据库读取需加@Column注解,name属性为数据库表对象的字段。 * 插入时不插入数据库的字段@Column注解的insertable=false。 * 更新时不更新数据库的字段@Column注解的updateable=false。 * 实体类可以通过文档中数据库表介绍,根据表自动生成,达到 设计即完成的操作。 ## 控制类规范 ::: details 查看代码 <<< @/docs/dev/lib/coding/src/PropertyController ::: #### 控制类 、service 规范 #### 接口使用方式、调用,函数调用,自定义函数使用 标准化 实体类、接口类 ,减少开发工作量,以及开发代码量