java代码扫描工具比较_代码扫描工具的选型和Sonar最佳实践

article/2025/10/24 12:35:02

目标

在编码阶段发现NNE空指针异常、IO流未正确关闭等致命性bug,杜绝此类“零容忍”线上异常的发生。

技术选型

关于代码扫描工具,比较主流的有Sonar、FindBugs、Alibaba Java Coding Guidelines、CheckStyle。

Alibaba Java Coding Guidelines最大的优点是全中文的提示,对国内开发人员相当友好,并且有阿里巴巴团队持续维护。但是经我亲测,无法检测出NNE等潜在bug,所以肯定是排除的。等后续提供了这方面的支持,会是不错的选择。

FindBugs功能完全够用,可以检查出NNE这样的错误,但是很可惜,idea的FindBugs插件最多支持到2018.1版本,看来新时代的我们也无福消受了。但是FindBugs似乎也有独立运行的版本,但是我大致看了一下,GUI界面比较复古风了,看了一下官网,最后一次更新是2015年3月了,这种已经停止维护的东西也不敢用啊

94f5c59cb3c90cb64843ae70af9eaa7e.png

CheckStyle跟Alibaba Java Coding Guidelines有点类似,基本也是规范代码格式的,不能找出潜在bug,因此排除

Sonar大致分为idea插件版本的SonarLint和带有非常友好功能强大GUI的SonarQube代码质量平台,完全能满足我们的需求。并且Sonar提供了面向gitlab、jekins、maven的无缝对接支持,


http://chatgpt.dhexx.cn/article/Tu0u8JvS.shtml

相关文章

静态代码扫描工具汇总

一、概述 在软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码评审、同事复审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。而静态代码扫描工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时…

用户行为序列推荐模型

导读:今天我们谈谈用户行为序列上的推荐模型。首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最后给出一点个人看法以及文中相关的参考文献供参阅。 用户行为大多数情况下都是存在时间上的先后关系…

用户兴趣模型分类以及推荐系统技术调研

用户兴趣模型分类 根据用户之前在相关网站的行为数据记录分析出用户的兴趣和偏好,然后根据不同用户兴趣和偏好不同为其推荐不同的内容,这种新的信息获取方式被称为个性化推荐技术。 个性化新闻推荐系统中常用的几种用户兴趣建模方法: &…

用户生命周期模型

本文转载自: https://blog.csdn.net/l18930738887/article/details/50818878 一、为什么要定义用户生命周期? 用户生命周期是为了定位每个用户在哪个阶段,对于某个阶段的用户进行不同的营销策略。比如初期用户:还没有养成使用习…

Django重写User模型修改明文密码加密方法

由于继承Django的User列表会导致创建新用户的密码为明文,导致无法正常登陆,因此需要修改adminx中的部分配置实现原始的用户密码记录功能。 从这样的界面进入注册用户的密码就是加密的密码效果了,否则是显示明文密码非加密状态。 文章目录 实现步骤实现步骤 需要在项目的m…

【模型理解】KANO模型

前言 在大量的需求需要进行迭代时,由于时间、人力、财力等相关因素干扰,无法在有限的时间内容对所有的需求进行满足,此时需要我们对需求进行优先级的排列。最大化的合理的提高有限资源的使用。 在常见的产品优先级区分的方式有时间四象限模…

软件工程的十大模型

1.软件生命周期模型 软件生命周期由软件定义、软件开发与运维(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。 问题定义:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出…

SaaS用户管理系统模型设计

最近一直在研究关于SaaS化的用户管理系统,现将项目中的模型做一整理,先贴图: 图中黄色方框:租户/组织、部门、员工 完成的是对整个组织结构及结构中人员分布的管理; 图中绿色方框:系统用户(包括…

认识每一个“你”:微博中的用户模型

社交媒体(Social Media)相对于传统互联网媒体的最大区别是通过建立人与人之间的联系,极大提升了信息生产量以及传播效率。身处社交媒体中的每个人或组织同时扮演着信息生产者、传播者与接受者的角色。 在社交媒体背景下,用户生产…

Django默认用户模型类和父类 AbstractUser 介绍

Django默认用户模型类 Django 框架默认使用一个 User 模型类, 保存有关用户的数据。 例如: 我们定义 admin 站点时, 定义的超级用户信息, 就是存储在 User 模型类对应的表中。 我们可以通过 select * from auth_user; 查看数据表。 这个表里就是我们保存的管理员信息,是由用户…

RFM用户分层模型|原理+Python全流程实现

RFM 模型 在数据分析中经常会进行用户分层,本文我们来了解一下常见的用户分层模型RFM。 RFM概念 RFM是由R(Recency)、F (Frequency)、 M(Monetary) 三个维度构成的,其具体含义如下: R:最近一次消费时间间隔 F:消费频…

用户增长——AARRR模型

AARRR模型是做用户分析的经典模型之一。它以完整的用户生命周期为线索,描述了用户使用产品需经历的五个环节,最终获取商业价值。什么是AARRR模型? AARRR是由五个单词的首字母组成,分别代表【获取、激活、留存、收入、传播】五个阶…

如何定义用户模型(persona)

一、什么是用户模型? Persona([pə:səunə]):(Persona是用户模型的的简称)是虚构出的一个用户用来代表一个用户群。一个persona可以比任何一个真实的个体都更有代表性。一个代表典型用户的persona的资料有性别、年纪、收入、地域…

用户漏斗模型

原创不易,麻烦点个关注,点个赞,谢谢各位。 漏斗模型是什么? 漏斗模型是一个看似简单的评判产品健康度的数据工具,简单来说,就是通过产品每一个设计步骤的数据反馈得出产品的运行情况,然后通过各阶段的具体分析改善产品的设计,提升产品的用户体验。 漏斗模型符合自然规…

用户分层之RFM模型

目录 一、简介二、模型三、应用 一、简介 RFM模型是衡量用户价值的模型,其中具体含义: Recency:最近一次消费时间间隔Frequency:消费频率,一段时间(比如1年)内的消费次数Monetary:…

Django数据库学习——定义用户模型(实例)

(1)创建一个应用,HelloWorld (2)新建models.py, 定义系统用户模型 from django.db import modelsclass sysuser(models.Model):usernamemodels.CharField(max_length20,uniqueTrue)passwordmodels.CharFie…

数据分析之RFM——用户模型分析(附案例数据和代码)

本文从RFM模型概念入手,结合实际案例,详解Python实现模型的每一步操作,并提供案例同款源数据,以供同学们知行合一。 看这篇文章前源数据长这样: 学完后只要敲一个回车,源数据就变成了这样: 是…

浅谈用户营销模型AIPL

进入互联网下半场,由于人口红利带来的流量越来越珍贵,作为C端厂商,获取流量的成本变的越来越高,如何经营好已有的流量变的关键。 在经营用户方面有个例子我觉得特别有意思,小时候东北家家都爱吃大酱,有一个…

django drf 初始化配置(mysql、跨域访问、默认用户模型)和用户模型重写,数据迁移,解决用户模型重写后无法创建超级用户的问题

drf 初始化配置 一、初始化项目(推荐方案一)二、创建app三、重写用户模型四、配置五、数据迁移(把模型类转为数据库的表字段)六、整体结构和介绍七、解决用户模型重写后无法创建超级用户的问题 一、初始化项目(推荐方案一) 方案一 方案二 django-admin…

用户画像中常用的用户模型

促销敏感度模型 1.对于租凭公司平台而言,全范围的促销投放和对所有用户发放优惠券之类的,的确可以得到不错的效果,比如2019年的春节,公司通过对所有老用户发放优惠券,成功争取到了1000多订单。但是如果想进一步提高销…