带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(7)

简介: 带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(7)

带你读《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 错误等级说明

image.pngBlocker: 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。严重花屏

image.png内存泄漏

image.pngimage.png用户数据丢失或破坏系统崩溃/死机/冻结

image.pngimage.png模块无法启动或异常退出严重的数值计算错误

image.png功能设计与需求严重不符

image.png其 它 导 致 无 法 测 试 的 错 误 ,        如 服 务 器 500 错 误 Critical:即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。

image.pngimage.png功能未实现功能错误

image.pngimage.png系统刷新错误数据通讯错误

image.png轻微的数值计算错误

image.pngimage.png影响功能及界面的错误字或拼写错误安全性问题

Major:即界面、性能缺陷、兼容性。

image.pngimage.png操作界面错误(包括数据窗口内列名定义、含义是否一致) 边界条件下错误

image.pngimage.png提示信息错误(包括未给出信息、信息提示错误等) 长时间操作无进度提示

image.png系统未优化(性能问题)

image.pngimage.png光标跳转设置不好,鼠标(光标)定位错误兼容性问题

image.pngMinor/Trivial:即易用性及建议性问题。界面格式等不规范

image.png辅助说明描述不清楚

image.png操作时未给用户提示

image.pngimage.png可输入区域和只读区域没有明显的区分标志个别不影响产品理解的错别字

image.png文字排列不整齐等一些小问题

 

 

 

总结:Blocker > Critical > Major > Minor > Trivial

Blocker,Critical是必须要修改的,Major根据具体建议情况参考处理,Minor和Trivial可以根据建议情况修补或者不修补。

 

常见插件一览

 

  1. 快捷键提示工具:Key promoter X

Key Promoter X 是一个快捷键提示插件,如果鼠标操作是能够用快捷键替代,Key Promoter X 会提示可以用什么快捷键替代。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x

  1. 代码注解插件:Lombok

lombok 的使用,参考 :https://projectlombok.org/。我们需要在代码中引入二方库,然后安装 lombok 插件即可。

  1. 代码生成工具:CodeMaker

开发过程中,经常手工编写重复代码。现在,可以通过 CodeMaker 来定义 Velocity 模版来支持自定义代码模板来生成代码。目前,CodeMaker   自带两个模板。Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类。Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。详细使用文档,参考:https://github.com/x-hansong/CodeMaker

  1. 单元测试测试生成工具:JUnitGenerator

单元测试是必不可少的!我们可以使用 JUnitGenerator 插件来自动创建了单元测试。我们可以使用提供的velocity 模板定制单元测试输出代码。如果在已经存在单元测试的地方创建了单元测试,则会提示用户进行覆盖或合并操作。合并操作允许用户有选择地创建目标文件内容。详细使用文档,参考https://plugins.jet-brains.com/plugin/3064-junitgenerator-v2-0

  1. Mybatis 工具:Free Mybatis plugin

现在,MyBatis 框架已占领半壁江山。因此,围绕着 MyBatis 的插件和工具越来越多。Free Mybatis plugin 非 常 方 便 进 行 Mapper 接 口 和 XML 文 件 之 间 跳 转 。 详 细 使 用 文 档 , 参 考 : https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin。此外,收费版的还有 Mybatis plugin。

  1. Maven辅助神器:Maven Helper

如果 Maven 引入的 jar 包有冲突,可以使用 Maven Helper 插件来帮助分析。详细使用文档,参考: https://plugins.jetbrains.com/plugin/7179-maven-helper

  1. JSON转领域对象工具:GsonFormat

在开发过程中,我们可能会遇到 json 格式的字符串转换成实体类参数的场景,这个插件可以根据 JSONOb- ject 格式的字符串,自动生成实体类参数。详细使用文档,参考https://github.com/zzz40500/GsonFor-mat

 

 

 

  1. 领域对象转JSON工具:POJO to JSON

为了测试需要,我们需要将简单 Java 领域对象转成 JSON 字符串方便用 postman 或者 curl 模拟数据。详细使用文档,参考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json

  1. 时序图生成工具:SequenceDiagram

有的时候,我们需要梳理业务逻辑或者阅读源码。从中,我们需要了解整个调用链路,反向生成 UML 的时序图是强需求。其中,SequenceDiagram 插件是一个非常棒的插件。详细使用文档,参考:https://plugins.-jetbrains.com/plugin/8286-sequencediagram

  1. 字符串工具: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

  1. 代码作色工具:Rainbow Brackets

Rainbow Brackets 插件可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。详细使用文档, 参考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets

  1. 日志工具:Grep Console

参考:https://plugins.jetbrains.com/plugin/7125-grep-console不同级别日志通过颜色区分,一路了然。

  1. Redis可视化:Iedis

参考:https://plugins.jetbrains.com/plugin/9228-iedis 使用参考:https://codesmagic.com/iedis/us-erguide/getting-started 可方便的执行增删查改及使用命令行进行操作。

  1. 中英文翻译工具:Translation

最骚的操作是什么?帆哥在群里分享了一套「半中文编程」:说到了变量命名,先用中文写好,然后用Translation 插件的 translate and replace 一键替换为英文,这样效率高而且准确。详细使用文档,参考: https://plugins.jetbrains.com/plugin/8579-translation

 

带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)https://developer.aliyun.com/article/1339981?groupCode=taobaotech

相关文章
|
9月前
|
存储 Java API
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(4)
|
9月前
|
应用服务中间件 程序员 数据库
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(3)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(3)
|
9月前
|
IDE 前端开发 Java
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(6)
|
9月前
|
存储 SQL 数据库
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(5)
|
9月前
|
搜索推荐 JavaScript
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(1)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(1)
|
9月前
|
存储 设计模式 中间件
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(2)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(2)
|
9月前
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)
带你读《2022技术人的百宝黑皮书》——开发规约的意义与细则(8)
|
前端开发 JavaScript 程序员
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(2)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(2)
|
前端开发 程序员 项目管理
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(5)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(5)
|
前端开发 程序员 TensorFlow
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(6)
带你读《2022技术人的百宝黑皮书》——在阿里做前端程序员,我是这样规划的(6)