# 代码规范 ## 工具安装 ### 阿里云编码规范IDEA插件 1. 使用IntelliJ IDEA, 安装`阿里编码规范`插件. 2. 打开insecption,点击`Ali-Check` ![media/编码规范-01.png](media/编码规范-01.png) 3. 按照下图对报警级别进行修改, 然后保存 ![media/编码规范-02.png](media/编码规范-02.png) ![media/编码规范-03.png](media/编码规范-03.png) 4. `git commit`之前, 需要对所有修改的代码进行浏览.确认无误,再commit. 不准无脑commit. ![media/编码规范-04.jpg](media/编码规范-04.jpg) ### IDEA-java-style clone checkstyle项目 将 `SQ-JAVA-IDEA-Style.xml` 导入到IDEA `preferences -> editor -> code style -> java -> import` ### check style clone checkstyle项目 把checkstyle中的所有文件,复制到文件夹`/Users/${you-name}/.checkstyle/`下 把pre-commit复制到每个项目的`.git/hooks/`文件夹下 ### git commit 规范 执行以下命令安装 ```shell npm install -g commitizen cz-conventional-changelog echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc ``` 使用git提交代码时执行`git cz`, 然后根据提示执行. ## 编码规范 除了阿里编码规范,再补充以下规范 ### 代码提交 代码提交前需要格式化整个project ![media/编码规范-05.jpg](media/编码规范-05.jpg) ### xxljob 所有的任务都应该有参数,并且在代码中提供默认参数配置, 允许空参运行. 参数尽量使用json格式 在该job内定义内部类作为参数模型 ### rabbtimq 发送消息,尽量直接发送对象,而不是json字符串. 反例 ``` amqpTemplate.send(exchange, queue, JsonUtils.toJson(object)); ``` 正例 ``` amqpTemplate.convertAndSend(exchange, queue, object); ``` 如果发送json, 则消费端需要使用String作为方法的入参,来获得消息体. 如果从Message中获取body,得到的字符串将会多两个引号. 所以不推荐使用这种方式. 如果发送Object, 则消费者直接使用Object作为方法的入参,也可以从Message中获取body再反序列化.