带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)https://developer.aliyun.com/article/1339984?groupCode=taobaotech
使用插件工具复查
目前,Alibaba Java Code Guidelines 插件实现了开发手册中的的 53 条规则,大部分基于 PMD 实现,其中有 4 条规则基于 IDEA 实现,并且基于 IDEA Inspection 实现了实时检测功能。部分规则实现了 Quick Fix 功能。目前,插件检测有两种模式:实时检测、手动触发。
IDEA 插件地址:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines插件检查结果说明:
Blocker 、Critical 、Major 错误等级说明
Blocker: 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。严重花屏
内存泄漏
用户数据丢失或破坏系统崩溃/死机/冻结
模块无法启动或异常退出严重的数值计算错误
功能设计与需求严重不符
其 它 导 致 无 法 测 试 的 错 误 , 如 服 务 器 500 错 误 Critical:即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。
功能未实现功能错误
系统刷新错误数据通讯错误
轻微的数值计算错误
影响功能及界面的错误字或拼写错误安全性问题
Major:即界面、性能缺陷、兼容性。
操作界面错误(包括数据窗口内列名定义、含义是否一致) 边界条件下错误
提示信息错误(包括未给出信息、信息提示错误等) 长时间操作无进度提示
系统未优化(性能问题)
光标跳转设置不好,鼠标(光标)定位错误兼容性问题
Minor/Trivial:即易用性及建议性问题。界面格式等不规范
辅助说明描述不清楚
操作时未给用户提示
可输入区域和只读区域没有明显的区分标志个别不影响产品理解的错别字
文字排列不整齐等一些小问题
总结:Blocker > Critical > Major > Minor > Trivial
Blocker,Critical是必须要修改的,Major根据具体建议情况参考处理,Minor和Trivial可以根据建议情况修补或者不修补。
常见插件一览
- 快捷键提示工具:Key promoter X
Key Promoter X 是一个快捷键提示插件,如果鼠标操作是能够用快捷键替代,Key Promoter X 会提示可以用什么快捷键替代。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
- 代码注解插件:Lombok
lombok 的使用,参考 :https://projectlombok.org/。我们需要在代码中引入二方库,然后安装 lombok 插件即可。
- 代码生成工具:CodeMaker
开发过程中,经常手工编写重复代码。现在,可以通过 CodeMaker 来定义 Velocity 模版来支持自定义代码模板来生成代码。目前,CodeMaker 自带两个模板。Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类。Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。详细使用文档,参考:https://github.com/x-hansong/CodeMaker
- 单元测试测试生成工具:JUnitGenerator
单元测试是必不可少的!我们可以使用 JUnitGenerator 插件来自动创建了单元测试。我们可以使用提供的velocity 模板定制单元测试输出代码。如果在已经存在单元测试的地方创建了单元测试,则会提示用户进行覆盖或合并操作。合并操作允许用户有选择地创建目标文件内容。详细使用文档,参考:https://plugins.jet-brains.com/plugin/3064-junitgenerator-v2-0
- Mybatis 工具:Free Mybatis plugin
现在,MyBatis 框架已占领半壁江山。因此,围绕着 MyBatis 的插件和工具越来越多。Free Mybatis plugin 非 常 方 便 进 行 Mapper 接 口 和 XML 文 件 之 间 跳 转 。 详 细 使 用 文 档 , 参 考 : https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin。此外,收费版的还有 Mybatis plugin。
- Maven辅助神器:Maven Helper
如果 Maven 引入的 jar 包有冲突,可以使用 Maven Helper 插件来帮助分析。详细使用文档,参考: https://plugins.jetbrains.com/plugin/7179-maven-helper
- JSON转领域对象工具:GsonFormat
在开发过程中,我们可能会遇到 json 格式的字符串转换成实体类参数的场景,这个插件可以根据 JSONOb- ject 格式的字符串,自动生成实体类参数。详细使用文档,参考:https://github.com/zzz40500/GsonFor-mat
- 领域对象转JSON工具:POJO to JSON
为了测试需要,我们需要将简单 Java 领域对象转成 JSON 字符串方便用 postman 或者 curl 模拟数据。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json
- 时序图生成工具:SequenceDiagram
有的时候,我们需要梳理业务逻辑或者阅读源码。从中,我们需要了解整个调用链路,反向生成 UML 的时序图是强需求。其中,SequenceDiagram 插件是一个非常棒的插件。详细使用文档,参考:https://plugins.-jetbrains.com/plugin/8286-sequencediagram
- 字符串工具:String Manipulation
String Manipulation 插件提供了非常丰富字符串工具,例如命名替换( (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snakecase, SCREAMINGSNAKE_CASE, dot.case, words lowercase, Words Capita lized ,P ascal Case)等。详细使用文档,参考:h ttp s://p lu gin s.je tb ra in s.co m/plu g- in/2162-string-manipulation
- 代码作色工具:Rainbow Brackets
Rainbow Brackets 插件可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。详细使用文档, 参考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
- 日志工具:Grep Console
参考:https://plugins.jetbrains.com/plugin/7125-grep-console不同级别日志通过颜色区分,一路了然。
- Redis可视化:Iedis
参考:https://plugins.jetbrains.com/plugin/9228-iedis 使用参考:https://codesmagic.com/iedis/us-erguide/getting-started 可方便的执行增删查改及使用命令行进行操作。
- 中英文翻译工具:Translation
最骚的操作是什么?帆哥在群里分享了一套「半中文编程」:说到了变量命名,先用中文写好,然后用Translation 插件的 translate and replace 一键替换为英文,这样效率高而且准确。详细使用文档,参考: https://plugins.jetbrains.com/plugin/8579-translation
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)https://developer.aliyun.com/article/1339981?groupCode=taobaotech