nisbos


后台规范

<p>1、controller表单校验--统一用spring validation 2、数据库ID生成规则,框架统一提供接口,为支持多商户,表ID需要根据商户ID来生成 3、swagger-ui上集成token授权,方便测试接口,暂时用postman 4、domain entity 统一用lombok,省掉getter/setter,IDE需要安装下lombok插件 5、函数的参数,通用的save,update可以用bo,业务类型的函数用基本类型的参数</p> <pre><code class="language-java"> /** * 支付订单 * @param orderId 订单号 * @param userId 用户ID */ @Transactional public void pay(int orderId, long userId) { } </code></pre> <p>6、规范微服务各服务标识、业务编码,便于异常记录elk,做异常排查</p> <p>7、domain分do,dto,vo</p> <p>8、服务器端口分配混乱,对前后端的端口进行规划</p> <p>9、事务后发送消息 事务中发送,消费方处理消息时,事务方可能还没提交</p> <p>@Transactional(readOnly = false,propagation=Propagation.REQUIRED)//开事物 public void save(String name,Integer age ,BigDecimal amount){ Zexample1Model zexample1Model = new Zexample1Model(); zexample1Model.setName(name+&quot;_&quot;); zexample1Model.setAge(age); zexample1Model.setAmount(amount); zexample1Model.setAddTime(new Date()); zexample1Model.setStatus(1); zexample1Dao.save(zexample1Model); System.out.println(&quot;id=&quot;+zexample1Model.getId());</p> <pre><code>TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { @Override public void afterCommit() { System.out.println("send email after transaction commit..."); } }); System.out.println("this method complete....");</code></pre> <p>}</p> <p>——————————————— 微服务同步调用异常时, 以补偿调整为主 调用方尽量不要主动回滚抹除记录</p> <p>10、gitlab 分支及提交合并管理 11、前端\后端 CI/CD 12、id 用Long, 不允许 Integer(值太小) public class GoodsInfoDTO implements Serializable { private static final long serialVersionUID = 1L;</p> <pre><code>//id private Integer id;</code></pre> <p>13、参数必须是声明式的</p> <p>如:@RequestBody Map&lt;String, Object&gt; map 这种内容不可知,必须改为对象类</p> <p>14、PO BO DTO 必须带词缀 GoodsInfo =》GoodsInfoDTO</p> <p>15、gitlab 必须保证源码的干净 必须有.gitignore, 只允许提交源码 不要ide的配置信息、编译结果</p> <p>16、日志打印 必须使用logger 不允许使用 System.out.println</p> <p>17、throw (e)前用 logger.error 打印异常</p> <p>18、不允许在业务代码里有常量</p> <p>19、mybatis ${} 有注入风险,用#{}</p> <p>20、swagger文档,参数注释、接口注释都可以用中文的,方便前端对接人员确认</p> <p>21、SQL语句,不要用关联查询,代码控制,多次查询</p>

页面列表

ITEM_HTML