前言

关于大部分程序员来说,首要的作业时刻是在开发和修正BUG。

有或许修正了一个BUG,会导致几个新BUG的产生,不断循环。

那么,有没有办法可以削减BUG,确保代码质量,提高作业功率?

答案是必定的。

假如能做到,咱们多出来的时刻,多摸点鱼,做点自己喜欢的事情,不香吗?

这篇文章跟咱们一起聊聊削减代码BUG的10个小技巧,希望对你会有所协助。

我用这10招,能削减了80%的BUG

1 找个好用的开发东西

在日常作业中,找一款好用的开发东西,关于开发人员来说非常重要。

不但可以提高开发功率,更重要的是它可以协助咱们削减BUG。

有些好的开发东西,比方:idea中,关于包没有引进,会在相关的类上面标红

我用这10招,能削减了80%的BUG

并且idea还有主动补全的功用,可以有用削减咱们在日常开发的过程中,有些单词手动输入的时分敲错的情况产生。

2 引进Findbugs插件

Findbugs是一款Java静态代码剖析东西,它专注于寻找真实的缺点或许潜在的功用问题,它可以协助java工程师提高代码质量以及排除隐含的缺点。

Findbugs运用Apache BCEL 库剖析类文件,而不是源代码,将字节码与一组缺点方式进行比照以发现或许的问题。

可以直接在idea中安装FindBugs插件:

我用这10招,能削减了80%的BUG

之后可以挑选剖析哪些代码:

我用这10招,能削减了80%的BUG

剖析成果:

我用这10招,能削减了80%的BUG

点击对应的问题项,可以找到详细的代码行,进行修正。

我用这10招,能削减了80%的BUG

Findbugs的检测器已增至300多条,被分为不同的类型,常见的类型如下:

  • Correctness:这种归类下的问题在某种情况下会导致bug,比方过错的强制类型转换等。
  • Bad practice:这种类别下的代码违反了公认的最佳实践标准,比方某个类完成了equals办法但未完成hashCode办法等。
  • Multithreaded correctness:重视于同步和多线程问题。
  • Performance:潜在的功用问题。
  • Security:安全相关。
  • Dodgy:Findbugs团队以为该类型下的问题代码导致bug的或许性很高。

3 引进CheckStyle插件

CheckStyle作为查验代码标准的插件,除了可以运用装备默认给定的开发标准,如Sun、Google的开发标准之外,还可以运用像阿里的开发标准的插件。

目前国内用的比较多的是阿里的代码开发标准,咱们可以直接经过idea下载插件:

我用这10招,能削减了80%的BUG

假如想检测某个文件:

我用这10招,能削减了80%的BUG

可以看到成果:

我用这10招,能削减了80%的BUG

阿里巴巴规约扫描包括:

  1. OOP规约
  2. 并发处理
  3. 控制语句
  4. 命名规约
  5. 常量界说
  6. 注释标准

Alibaba Java Coding Guidelines 专注于Java代码标准,意图是让开发者愈加便利、快速标准代码格式。

该插件在扫描代码后,将不契合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以主动修正。

它还根据Inspection机制提供了实时检测功用,编写代码的一起也能快速发现问题。

4 用SonarQube扫描代码

SonarQube是一种主动代码查看东西,用于检测代码中的过错,缝隙和代码格式上的问题。

它可以与用户现有的作业流程集成,以完成跨项目分支和提取请求的连续代码查看,一起也提供了可视化的办理页面,用于查看检测出的成果。

SonarQube经过装备的代码剖析规矩,从可靠性、安全性、可维护性、覆盖率、重复率等方面剖析项目,风险等级从A~E划分为5个等级;

一起,SonarQube可以集成pmd、findbugs、checkstyle等插件来扩展运用其他规矩来查验代码质量。

我用这10招,能削减了80%的BUG

一般引荐它跟Jenkins集成,做成每天守时扫描项目中test分支中的代码问题。

5 用Fortify扫描代码

Fortify 是一款广泛运用的静态运用程序安全测验(SAST)东西。

它具有代码扫描、漏斗扫描和浸透测验等功用。它的规划意图是有用地检测和定位源代码中的缝隙。

它能协助开发人员辨认和修正代码中的安全缝隙。

Fortify的首要功用:

  • 静态代码剖析:它会对源代码进行静态剖析,找出或许导致安全缝隙的代码片段。它能辨认多种类型的安全缝隙,如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等。
  • 数据流剖析:它不仅剖析单个代码文件,还盯梢运用程序的数据流。这有助于找到更杂乱的缝隙,如未经验证的用户输入在运用程序中的传播路径。
  • 缝隙修正主张:发现潜在的安全缝隙时,它会为开发人员提供修正主张。
  • 集成支撑:它可以与多种持续集成(CI)东西(如 Jenkins)和运用生命周期办理(ALM)东西(如 Jira)集成,完成主动化的代码扫描和缝隙盯梢。
  • 报告和度量:它提供了丰富的报告功用,协助团队了解项意图安全状况和缝隙趋势。

运用Fortify扫描代码的成果:

我用这10招,能削减了80%的BUG

一般引荐它跟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的小技巧,但咱们要根据实际情况挑选运用,并非一切的场景都适合。

文章转载自: 苏三说技术

原文链接: www.cnblogs.com/12lisu/p/18…

体会地址: www.jnpfsoft.com/?from=xitu