如何写出高质量Java代码?看看这篇高标准代码开发规范吧
一. 为什么需要代码质量规范
1.代码质量不规范的影响
1.1 新手开发
新手在学习和开发过程中,不可避免的会发生一些莫名其妙的问题;凭习惯编写代码,后续再重构优化代码,重走旧路,延缓了开发能力的提高。
1.2 代码不止是运行
无论哪个开发都自认为自己的代码是完美易懂的,不需优化的,认为其他开发者的代码都是有优化空间,或者需要重构的,或者逻辑有问题。
1.3 代码漏洞
实现功能代码过程中,有场景丢失,测试遗漏,导致发布正式环境后有隐患。
1.4 性能影响
单个测试运行正常,压力测试就不通过,内存和CPU都增长迅速。
1.5 无用、无效代码
不断的迭代后,有部分代码不会用到,代码越来越多,影响应用的构建。
1.6 一个方法或者一个类超长。
类或者方法掺杂了其他功能实现,代码长,变成了上帝类,不利于后续的优化扩展复用。
2.代码质量规范的好处
新手开发快速成长
俗话说三岁定八十,坏习惯很容易养成,以后就积习难改;好习惯就需要持之以恒才可以形成。
功能实现大家都会,但是如何高效、高扩展的实现就需要高质量的代码。坚持高质量的代码,对以后的工作受益匪浅。
利于开发的能力提高;
利于后续代码的扩展和维护;
利于应用的高可用;
利于降低代码的成本;
利于提高开发效率。
二. 有哪些代码质量规范的工具
1.SonarLint
SonarLint 是一个免费的开源IDE 扩展,可识别并帮助您在编写代码时解决质量和安全问题。像拼写检查器一样,SonarLint 会显示缺陷并提供实时反馈和清晰的修复指导,以便从一开始就提供干净的代码。Sonar从一个质量数据报告工具,转变成为的代码质量管理平台,主要特点如下:
代码覆盖:通过单元测试,将会显示哪行代码被选中;
改善编码规则;
搜寻编码规则:按照名字,插件,激活级别和类别进行查询;
项目搜寻:按照项目的名字进行查询;
对比数据:比较同一张表中的任何测量的趋势。
2.Alibaba Java Coding Guidelines
阿里巴巴出品的Alibaba Java Coding Guidelines(阿里巴巴Java代码规约扫描)。专注于Java代码规范,而且默认采用中文。
插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能,提升代码质量,提高团队研发效能,是很有必要的。
三. 代码质量规范工具的使用
我们以IDEA开发工具为例。
1.SonarLint
1.1 安装
安装路径:打开Preferences>>左边的plugins>>右边选择Marketplace>>输入框中输入sonar,回车开始搜索,如下图所示:
点击左边的 Install 按钮,开始安装,等安装后,需要重启IDEA,如下图所示:
安装成功后,plugins的Installed页面中左边就有插件,如下图所示:
1.2 使用
可以选择某个类、某个包、某个应用,右键点击,选择SonarLint,如下图所示:
1.3 检测结果
扫描代码的结果有5个等级:阻断(Blocker)>>严重(Critical)>>主要(Major)>>次要(Minor)>>提示(Info)
阻断和漏洞是必须整改,其他的优先级不高,但也需要消灭的。如下图所示:
这个是提示switch中的某个case少了break。学习开发过程中,switch中每个case都需要break,如果2个case的处理逻辑是一样的,就将2个case紧接着写即可。
2. Alibaba Java Coding Guidelines
2.1 安装
安装路径:打开Preferences>>左边的plugins>>右边选择Marketplace>>输入框中输入alibaba,回车开始搜索。如下图所示:
重启IDEA,安装成功,如下图所示:
右键点击文件或者包名或者应用名称,可以看到编码规约扫描:
2.2 使用
扫描结果如下图所示:
其中一个结果:
四. 总结
我们在前期开发过程中,当某个任务开发完成,虽然代码量少,也可以运行代码质量检查工具,对代码进行检测,避免上线后再修改,降低维护成本。另外在后续的开发中,形成良好习惯,可以提高代码的质量规范。对每个扫描结果,都有整改建议和例子。高质量、高性能的代码,可以获得同事、上司的青睐。
猜你喜欢LIKE
相关推荐HOT
更多>>java两个日期比较相差多少天
在Java中,可以使用`java.time`包下的类来比较两个日期之间相差的天数。以下是一个示例代码:importjava.time.LocalDate;importjava.time.tempo...详情>>
2023-06-27 17:19:00find命令查找文件
"find"命令是在Unix、Linux和类似系统中使用的一个非常强大的命令,用于在文件系统中查找文件和目录。它可以根据各种条件进行搜索,并提供了灵...详情>>
2023-06-16 14:00:30如何添加Java环境变量
要添加Java环境变量,请按照以下步骤进行操作:1.打开计算机的控制面板。2.点击"系统和安全"(Windows10及更高版本)或"系统"(Windows7和较早版本...详情>>
2023-06-08 09:31:10随机函数rand怎么使用
rand是一个C++的函数,用于产生一个随机数。以下是使用rand的方法:1.头文件:需要包含stdlib.h或cstdlib头文件以使用rand函数。2.使用rand()函...详情>>
2023-04-20 15:47:10什么是面向对象编程?面向对象有什么特性
面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,它将数据和操作数据的方法组合成一个单独的实体,称为“对象”,并且对...详情>>
2023-03-17 15:30:11Java培训问答更多>>
新Java行业疑惑解答:Java的内存管理是如何工作的?
新java script是什么?为什么要学java script
新java和大数据哪个好?未来哪个职业发展更好
新java培训班多久能学会?培训周期大概多久
新java script和java的区别有哪些?如何区分
新java script的数据类型主要有哪些?怎样学的更快
新c语言与java区别在哪里?去培训机构学哪个比较好
Java面试题库 更多>>
华为外包java面试题-Java实现单链表的逆序
Java程序员面试题
Java面试题及答案
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区