前言
关于大部分程序员来说,首要的作业时刻是在开发和修正BUG。
有或许修正了一个BUG,会导致几个新BUG的产生,不断循环。
那么,有没有办法可以削减BUG,确保代码质量,提高作业功率?
答案是必定的。
假如能做到,咱们多出来的时刻,多摸点鱼,做点自己喜欢的事情,不香吗?
这篇文章跟咱们一起聊聊削减代码BUG的10个小技巧,希望对你会有所协助。
1 找个好用的开发东西
在日常作业中,找一款好用的开发东西,关于开发人员来说非常重要。
不但可以提高开发功率,更重要的是它可以协助咱们削减BUG。
有些好的开发东西,比方:idea
中,关于包没有引进,会在相关的类上面标红
。
并且idea还有主动补全
的功用,可以有用削减咱们在日常开发的过程中,有些单词手动输入的时分敲错的情况产生。
2 引进Findbugs插件
Findbugs是一款Java静态代码剖析东西,它专注于寻找真实的缺点或许潜在的功用问题,它可以协助java工程师提高代码质量以及排除隐含的缺点。
Findbugs运用Apache BCEL 库剖析类文件,而不是源代码,将字节码与一组缺点方式进行比照以发现或许的问题。
可以直接在idea中安装FindBugs插件:
之后可以挑选剖析哪些代码:
剖析成果:
点击对应的问题项,可以找到详细的代码行,进行修正。
Findbugs的检测器已增至300多条,被分为不同的类型,常见的类型如下:
- Correctness:这种归类下的问题在某种情况下会导致bug,比方过错的强制类型转换等。
- Bad practice:这种类别下的代码违反了公认的最佳实践标准,比方某个类完成了equals办法但未完成hashCode办法等。
- Multithreaded correctness:重视于同步和多线程问题。
- Performance:潜在的功用问题。
- Security:安全相关。
- Dodgy:Findbugs团队以为该类型下的问题代码导致bug的或许性很高。
3 引进CheckStyle插件
CheckStyle作为查验代码标准的插件,除了可以运用装备默认给定的开发标准,如Sun、Google的开发标准之外,还可以运用像阿里的开发标准的插件。
目前国内用的比较多的是阿里的代码开发标准,咱们可以直接经过idea下载插件:
假如想检测某个文件:
可以看到成果:
阿里巴巴规约扫描包括:
- OOP规约
- 并发处理
- 控制语句
- 命名规约
- 常量界说
- 注释标准
Alibaba Java Coding Guidelines 专注于Java代码标准,意图是让开发者愈加便利、快速标准代码格式。
该插件在扫描代码后,将不契合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以主动修正。
它还根据Inspection机制提供了实时检测功用,编写代码的一起也能快速发现问题。
4 用SonarQube扫描代码
SonarQube是一种主动代码查看东西,用于检测代码中的过错,缝隙和代码格式上的问题。
它可以与用户现有的作业流程集成,以完成跨项目分支和提取请求的连续代码查看,一起也提供了可视化的办理页面,用于查看检测出的成果。
SonarQube经过装备的代码剖析规矩,从可靠性、安全性、可维护性、覆盖率、重复率等方面剖析项目,风险等级从A~E划分为5个等级;
一起,SonarQube可以集成pmd、findbugs、checkstyle等插件来扩展运用其他规矩来查验代码质量。
一般引荐它跟Jenkins集成,做成每天守时扫描项目中test分支中的代码问题。
5 用Fortify扫描代码
Fortify 是一款广泛运用的静态运用程序安全测验(SAST)东西。
它具有代码扫描、漏斗扫描和浸透测验等功用。它的规划意图是有用地检测和定位源代码中的缝隙。
它能协助开发人员辨认和修正代码中的安全缝隙。
Fortify的首要功用:
- 静态代码剖析:它会对源代码进行静态剖析,找出或许导致安全缝隙的代码片段。它能辨认多种类型的安全缝隙,如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等。
- 数据流剖析:它不仅剖析单个代码文件,还盯梢运用程序的数据流。这有助于找到更杂乱的缝隙,如未经验证的用户输入在运用程序中的传播路径。
- 缝隙修正主张:发现潜在的安全缝隙时,它会为开发人员提供修正主张。
- 集成支撑:它可以与多种持续集成(CI)东西(如 Jenkins)和运用生命周期办理(ALM)东西(如 Jira)集成,完成主动化的代码扫描和缝隙盯梢。
- 报告和度量:它提供了丰富的报告功用,协助团队了解项意图安全状况和缝隙趋势。
运用Fortify扫描代码的成果:
一般引荐它跟Jenkins集成,定期扫描项目中test分支中的代码安全问题。
6 写单元测验
有些小伙伴或许会问:写单元测验可以削减代码的BUG?
答案是必定的。
我之前有同事,运用的测验驱动开发方式,开发一个功用模块之前,先把单元测验写好,然后再真实的开发事务代码。
后面发现他写的代码速度很快,并且代码质量很高,是一个开发牛人。
假如你后期要做系统的代码重构,你仅仅重写了相关的事务代码,但事务逻辑并没有修正。
这时,由于有了之前写好的单位测验,你会发现测验起来非常便利。
可以帮你削减许多BUG。
7 功用自测
功用自测,是程序员的基本要求。
但有些程序员自测之后,BUG还是比较多,而有些程序员自测之后,BUG非常少,这是什么原因呢?
或许有些人比较粗心,有些人比较仔细。
其实更重要的是测验的战略。
有些人喜欢把一切相关的功用都开发完,然后一起测验。
这种情况下,相当于一个黑盒测验,需求花费很多的时刻,梳理事务逻辑才能测验完好,大部分情况下,开发人员是无法测验完好的,或许会有许多bug测验不出来。
这种做法是没有经过单元测验,直接进行了集成测验。
看似节省了许多单元测验的时刻,但其实后面修正BUG的时刻或许会花费更多。
比较引荐的自测办法是:一步一个脚印。
比方:你写了一个东西类的一个办法,就测验一下。假如这个办法中,调用了别的一个要害办法,咱们可以先测验一下这个要害办法。
这样可以写出BUG更少的代码。
最近就业方式比较困难,为了感谢各位小伙伴对苏三一直以来的支撑,我特地创建了一些作业内推群, 看看能不能协助到咱们。你可以在群里发布招聘信息,也可以内推作业,也可以在群里投递简历找作业,也可以在群里交流面试或许作业的话题。
8 主动化测验
有些公司引进了主动化测验的功用。
每天都会主动测验,确保系统的中心流程没有问题。
由于咱们的日常开发中,经常需求调整中心流程的代码。
不或许每调整一次,都需求把一切的中心流程都测验一遍吧,这样会浪费很多的时刻,并且也简单遗漏一些细节。
假如引进了主动化测验的功用,可以协助咱们把中心流程都测验一下。
避免代码重构,或许修正中心流程,测验时刻不行,或许测验不完全的尴尬。
主动化测验,可以有用的削减中心流程调整,或许代码重构中的BUG。
9 代码review
许多公司都有代码review机制。
我之前也参与屡次代码review的会议,发现代码review的确可以找出许多BUG。
比方:一些代码的逻辑过错,语法的问题,不标准的命名等。
这样问题经过组内的代码review一般可以查看出来。
有些国外的大厂,采用结对编程
的方式。
同一个组的两个人A和B一起开发,开发完之后,A reivew B的代码,一起B review A的代码。
由于同组的A和B对项目比较熟,对对方开发的功用更有了解,可以快速找出对外代码中的一些问题。
可以有用削减一些BUG。
10 多看他人的踩坑共享
假如你想削减日常作业中的代码BUG,或许线上事故,少犯错,少踩坑。
经常看他人真实的踩坑共享,是一个非常不错的挑选,可以学到一些他人的作业经验,协助你少走许多弯路。
最终说一句,本文总结了10种削减代码BUG的小技巧,但咱们要根据实际情况挑选运用,并非一切的场景都适合。
文章转载自: 苏三说技术