返回顶部
首页 > 资讯 > 精选 >代码规范之Alibaba Java Coding Guidelines
  • 811
分享到

代码规范之Alibaba Java Coding Guidelines

java代码规范jvmandroid-studioandroid 2023-08-21 11:08:14 811人浏览 安东尼
摘要

一、Alibaba Java coding Guidelines 1、整体介绍: Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。该插件在扫描代码后,将不符合规

一、Alibaba Java coding Guidelines
1、整体介绍:
Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。该插件在扫描代码后,将不符合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以自动修复,它还基于 Inspection 机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。

阿里巴巴规约扫描包括:

OOP规约
并发处理
控制语句
命名规约
常量定义
注释规范
2、安装步骤:
File > Settings > Plugins > Marketplace 搜索 “Alibaba Java Coding Guidelines”,按照提示进行安装,然后重启即可。

使用说明:
3.1、运行方式:

(1)可以Tools > 阿里编码规约 > 编码规约扫描

在这里插入图片描述

(2)在编辑界面或者项目区域点击右键,在右键菜单中选择“编码规约扫描”即可:

在这里插入图片描述

2、菜单功能:

编码规约扫描:开始扫描代码
打开/关闭实时检测功能:实时检测代码,一般机器性能比较好的话可以开启这项功能
切换语言至英文:中英文切换
3.3、运行结果:

扫描完成后显示结果如下,我们可以看到扫描结果主要分为 Blocker(阻挡者)、Critical(严重问题)、Major(主要的)三个大类,它们表示的是问题的严重程度,严重程度由高到低为:Blocker > Critical > Major,至于每一类中都会包含什么样的问题,图中的内容已经说明了一切。

在这里插入图片描述

选中其中的一个问题项目,会出现如下内容(如果当前鼠标点击的是最终项,右边区域显示的是其它的内容,后面会再讲到):
在这里插入图片描述

(1)指定区域搜索同一类问题:

当点击③处的按钮时,会弹出如下按钮:
在这里插入图片描述

这里选择扫描区域,来扫描鼠标选中的同类问题。如果按照默认选择,那么运行后的结果就如下图所示:

在这里插入图片描述

这里我们可以看到,显示了整个Project中的所有该类的问题。

(2)预览具体的不规范代码:

如果点击的是最终的问题点或者问题所在的类文件,那显示的就是如下界面,预览该处不规范的代码。

在这里插入图片描述

4、工具栏功能介绍:

在这里插入图片描述

Rerun Inspection:重新运行一次扫描
Close:关闭真个AJCG面板
Expand All:展开结果的树状结构,整个结果是树状结构的。
Collapse All:收起结果的树状结构
Go Pre Problem:选择上一个问题
Go Next Problem:选择下一个问题
Help:帮助
Group by Serverity:(不知道如何描述)
Group by derectory:按目录分组/按类名分组间切换
Filter resoled items:过滤掉已经解决的项
Autoscroll to Source:自动滚动到源码
Export:导出,可以导出为XML和html两种格式
Edit Settings:编辑设置
二、CheckStyle:
1、整体介绍:
CheckStyle 侧重检查编码格式和代码风格规范,如命名规范、Javadoc注释规范、空格规范、size度量(如过长的方法)、重复代码、多余Imports等,从而有效约束开发人员更好地遵循代码编写规范。Checkstyle主要是文法层面的代码编写规范的分析,对bug几乎没什么发现能力。

Checkstyle插件中默认内置有2个执行代码检查的配置文件(Sun Checks 和 Sun Checks),但是这两个文件检查的非常详细严格,即使优秀的开源项目也会检查出来有非常多的错误告信息,所以需要导入我们自定义的配置文件。

安装步骤:
通过 File > Settings > Plugins > Marketplace 搜索 “CheckStyle”,按照提示进行安装,然后重启即可。

使用说明:
在这里插入图片描述

可以看到基本都是一些缩进啥的编码规范,可以不用太关注

三、PMD
1、整体介绍:
PMD侧重面向安全编码规则,且具备一定的数据流分析和路径分析能力,能力比CheckStyle稍微强点,并且 PMD 支持自定义规则,PMD可以直接使用的规则包括以下内容:

潜在的bug:空的try/catch/finally/switch语句
未使用的代码(Dead code):未使用的变量、参数、私有方法等
可选的代码:String/StringBuffer的滥用
复杂的表达式:不必须的if语句、可被while替代的for循环
重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs
循环体创建新对象:尽量不要在循环体内实例化新对象
资源关闭:Connect,Result,Statement等使用之后确保关闭掉
2、安装步骤:
通过 File > Settings > Plugins > Marketplace 搜索 “PMDPlugin”,按照提示进行安装,然后重启即可

使用说明:
参考文章:Http://wjhsh.net/andy-songwei-p-11830812.html
3.1、运行方式:

(1)从Tools菜单中启动:

通过 Tools > Run PMD 可以看到如下的界面,如果通过该方式启动,扫描的范围就是整个项目中的文件了。

在这里插入图片描述

Pre Defined:预定义的规则,也就是插件自带的检测规则。后面展开的列表中列出了所有的规则列表,想扫描哪一种类型的问题,点击即可。其中“All”表示使用所有的规则。
Custom Rules:自定义的检测规则,PMD允许用户根据需要自定义检查规则,默认这里是不可点击的,需要在设置中导入自定义规则文件后方可选择。
(2)从右键菜单中启动:

在文件或者编辑器中点击右键,也可以看到“Run PMD”选项,如果通过该方式启动, 检测范围取决于鼠标或光标当前所选中的区域。

2、运行结果:

在这里插入图片描述

运行后会出现如上所示的面板,左边工具栏,鼠标停留在上面会提示其功能;右边显示了检测结果,当点击具体某一问题项时,会跳转到对应的源码中。

3、配置检测规则:

通过 File > Settings > Other Settings > PMD 可以打开检测规则的设置界面:

在这里插入图片描述

在 “RuleSets(规则设置)” 界面可以管理自定义的检测规则。因为在实际工作中,可能需要根据实际情况自定义检测规则,就可以通过这里导入,如果要使用它,需要在启动PMD进行检测时选择该自定义规则。

点击“Options”选项卡,在其中可以配置一些检测规则选项:

在这里插入图片描述

其中重点需要留意的是“Skip TestSource”这一项,因为在项目中有不少Android Studio自动生成的测试代码,如下所示,选择上述选项后可以将其过滤掉。

在这里插入图片描述

四、FindBugs:
1、整体介绍:
FindBugs 侧重于发现代码中存在的bug,如运行时错误检测(空指针检查、未合理关闭资源、字符串相同判断错(==,而不是equals)等),它可以简单高效全面地帮助我们发现程序代码中存在的bug以及潜在隐患,针对各种问题,它提供了简单的修改意见供我们参考

安装步骤:
通过 File > Settings > Plugins > Marketplace 搜索 “FindBugs”,按照提示进行安装,然后重启即可

使用说明:
FindBugs 可以分析单个文件、包下面的所有文件、整个module下的文件、整个project下的文件,右键想要分析的文件名/包名/module名/project

在这里插入图片描述

分析完之后就会出现结果面板

在这里插入图片描述

点击对应的item在右边会定位到具体的代码,这是根据提示进行处理修改就行

在这里插入图片描述

附:常见的错误信息
4.1、Bad practice 代码坏习惯:
在这里插入图片描述

2、Dodgy code 糟糕的代码:

在这里插入图片描述

3、Internationalization 代码国际化相关:

在这里插入图片描述

4、PerfORMance 代码性能相关:

在这里插入图片描述

5、Experimental:

在这里插入图片描述

6、Malicious code vulnerability 恶意破坏代码相关:

在这里插入图片描述

7、Multithreaded correctness 多线程代码正确性相关:

在这里插入图片描述

8、Correctness 代码正确性相关:

在这里插入图片描述

五、SonarLint:
1、整体介绍:
sonar 比 Findbugs 高了一个层级,它不仅关注常规静态BUG,还关注到了如代码质量、包与包、类与类之间的依赖情况,代码耦合情况,类、方法、文件的复杂度,代码中是否包含大量复制粘贴的代码,关注的是项目代码整体的健康情况。sonar 有两种使用方式:插件和客户端,sonar 的插件名称为 sonarLint。

安装步骤:
通过 File > Settings > Plugins > Marketplace 搜索 “SonarLint”,按照提示进行安装,然后重启即可

使用说明:
在这里插入图片描述

右键项目或者文件进行如上图所示操作,执行之后可以看到如下信息,如果代码中有不合理的地方会在report中显示,同时点击错误的地方在右边会给出建议的修改供参考。

在这里插入图片描述

配置 SonarLint 服务端:
4.1、配置 Sonar 服务器

sonarLint 插件的使用场景是自用自审,但 sonar 也提供了平台版本,使用场景则是他审,sonar 平台的搭建就不在这篇文章介绍了,感兴趣的读者可以自己上网查看,我们这里主要介绍如何在 sonarLint 插件中配置关联 sonar 平台服务器的工程,进行本地检查:

在这里插入图片描述

点击新增按钮,输入Configuration Name,配置sonarlint 服务器的地址,然后下拉框选择 Login/PassWord,输入 sonarlint服务器的账号密码

在这里插入图片描述

2、具体 Sonar工程配置:

配置完服务器之后,需要针对具体工程进行配置,点击 connection下拉框,选择上面配置好的服务器连接,然后点击 Search in list,找到对应的工程:

在这里插入图片描述

3、使用 SonarLint 检查:

配置完上面两步之后,接下来就可以选择要进行检查的类或者目录进行 sonarlint 检查了(跟第3点的使用方式一致),同时,在 commit 代码的时候,勾选 “Perform Sonarlint analysis”,会针对你要提交的代码进行sonarlint检查

在这里插入图片描述

总结
检查代码规范的话,直接使用 Alibaba Java Coding Guidelines 就可以了

找 BUG 的话,使用 PMD、Findbugs、SonarLint 相互补充:

PMD 自定义能力强,用来自定义项目BUG规则非常好用
Findbugs 找 BUG 能力很强,我们拿找到的BUG给新员工培训也很好。
SonarLint 规则丰富,比 Findbugs 能覆盖到更全的场景

来源地址:https://blog.csdn.net/weixin_47143458/article/details/127517808

--结束END--

本文标题: 代码规范之Alibaba Java Coding Guidelines

本文链接: https://lsjlt.com/news/376848.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 代码规范之Alibaba Java Coding Guidelines
    一、Alibaba Java Coding Guidelines 1、整体介绍: Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。该插件在扫描代码后,将不符合规...
    99+
    2023-08-21
    java 代码规范 jvm android-studio android
  • Java开发之代码规范详解
    Java开发中所要遵守的编码规范大体上有如下7点。命名规范、注释规范、缩进排版规范、文件名规范、声明规范、语句规范以及编程规范。【推荐学习:java视频教程】1.命名规范(1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z)、数字(0-9...
    99+
    2021-07-11
    java入门 Java 代码规范
  • Java代码规范有哪些
    这篇文章给大家介绍Java代码规范有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.命名规范(1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z)、数字(0-9)和下划线“_”。(2)一个***包名的前缀总是全...
    99+
    2023-06-17
  • Python代码规范和命名规范
    前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码如无特殊情况, 文件头部必...
    99+
    2023-01-31
    代码 Python
  • Python 代码规范
    Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯。 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#-*-coding:utf...
    99+
    2023-01-31
    代码 Python
  • Java中16条的代码规范
    目录一、MyBatis 不要为了多个查询条件而写 1 = 1二、 迭代entrySet() 获取Map 的key 和value三、使用Collection.isEmpty() 检测空...
    99+
    2024-04-02
  • Java阿里巴巴代码规范
    目录 1 编程规约1.1 方法参数类型必须一致,不要出现自动装箱拆箱操作1.1.1 反例1.1.2 正例 1.2 SimpleDateFormat是线程不安全的1.2.1 反例1.2.2...
    99+
    2023-09-01
    java 代码规范 开发语言
  • Java代码格式规范是什么
    本篇内容介绍了“Java代码格式规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   public&n...
    99+
    2023-06-17
  • java编码规范 (转)
    java编码规范 (转)[@more@]Java 编码规范XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />翻译:王士勇(转载请保留作者,谢谢...
    99+
    2023-06-03
  • java代码规范的原则有哪些
    Java代码规范的原则有以下几个: 规范统一:所有代码必须按照统一的规范进行编写,包括缩进、命名规则、注释等。 代码可读性:...
    99+
    2023-10-24
    java
  • java代码规范的作用是什么
    java代码规范的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码规范有什么意义1.一个软件的生命周期中,80%的花费在于维护,代码规范降低了金钱成本和时间成本...
    99+
    2023-06-02
  • PHP中的代码规范
    PHP是一种广泛应用于web开发的编程语言。定义一个好的代码规范能够提高代码的可读性,减少出错的概率,使代码更加易于维护。在PHP中,代码规范要尤为重要。本文将介绍PHP中常见的代码规范。缩进风格缩进是一种很重要的程序语言排版方式。对于PH...
    99+
    2023-05-24
    代码规范 PHP规范 编程规范
  • 编码规范 | Java函数优雅之道(上)
    导读随着软件项目代码的日积月累,系统维护成本变得越来越高,是所有软件团队面临的共同问题。持续地优化代码,提高代码的质量,是提升系统生命力的有效手段之一。软件系统思维有句话“Less coding, more thinking(少编码、多思考...
    99+
    2023-06-02
  • java代码规范review异常事故记录
    目录前言一个任务处理例子不要生吞异常还有问题!End前言 不久之前,部门进行了一次代码评审。 代码整体比较简单,该吹B的地方都已经吹过了,无非是些if else的老问题而已。当翻到一...
    99+
    2024-04-02
  • 在java中如何编写规范的代码
    本篇内容介绍了“在java中如何编写规范的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、MyBatis 不要为了多个查询条件而写 1...
    99+
    2023-06-16
  • Java代码书写规范的示例分析
    这篇文章主要介绍了Java代码书写规范的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、目的   对于代码,首要要求是它必须正确,能够按照程序员的真实思想...
    99+
    2023-06-03
  • Java中代码注释的规范有哪些
    Java中代码注释的规范有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。...
    99+
    2023-05-31
    java 代码注释 ava
  • java代码规范七大原则是什么
    Java代码规范的七大原则是: SRP(Single Responsibility Principle):单一职责原则,一个类只...
    99+
    2023-10-27
    java
  • java编码规范(2) (转)
    java编码规范(2) (转)[@more@]Java 编码规范(2)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />翻译:王士勇(转载请保...
    99+
    2023-06-03
  • Vue代码规范有哪些
    这篇文章将为大家详细讲解有关Vue代码规范有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、JS部分1. 和渲染无关的数据vue中data的数据默认便...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作