hatim 5 anni fa
parent
commit
4332fc560d
1 ha cambiato i file con 25 aggiunte e 0 eliminazioni
  1. 25 0
      规范/Java后端/Java后端开发规范.md

+ 25 - 0
规范/Java后端/Java后端开发规范.md

@@ -14,3 +14,28 @@
 * 不建议在Controller层使用entity接收前端请求的参数,避免因为数据库字段的变更导致前端也要跟着修改。目前web端允许在Controller层使用entity,但给APP端 的接口禁止这样使用,一定要重新定义VO去跟APP端传输数据。
 
 推荐一篇文章,共同学习下:http://blog.didispace.com/cxy-wsm-zml-10/
+
+### 补充20191210
+
+- 代码一定要格式化
+- 接口开发完成要编写单元测试
+- 了解业务背景再开发,避免因为产品考虑不周到问题导致返工
+- 发版后跟踪测试自己开发的模块功能
+- git操作流程一定要清晰,不确定的操作记得复查下,gogs上面就很容易查看git操作是否正常
+
+---
+
+
+
+- common包的修改尽量以新增为主,过期代码记得添加过期注解@Deprecated
+- 不要随意捕获异常
+- 数据库表的实体类entity的字段禁止使用默认值
+- app接口需要版本维护,目前要求至少兼容上一个微信小程序版本的调用
+- 修改数据库表记录的SQL语句一定要保证幂等性以及可回滚
+- 删除数据库表记录SQL尽量逻辑删除,避免物理删除
+- 给重要的业务代码添加相关业务日志,方便后续问题排查
+- 日志打印使用log.info打印,打印内容使用占位符形式,不能使用+拼接。打印error级别日志要写成log.error("错误", e),否则日志文件看不到完整堆栈信息
+- 如果有需要钉钉通知的埋点,可以使用RiskUtil.issues()方法异步发送钉钉消息
+- 如果需要redis mq的可以继承PubSubConsumerContainer(发布-订阅模式)或者PushPopConsumerContainer(生产消费模式)来使用,demo在common包里面有
+- 目前出入口日志可以看到的信息有:请求参数、返回值、耗时、企业号、用户ID、请求线程唯一uuid
+