前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对代码质量进行检查

对代码质量进行检查

作者头像
用户1413827
发布2023-11-28 15:49:01
2590
发布2023-11-28 15:49:01
举报
文章被收录于专栏:站长运维站长运维

对代码质量进行检查

今天习得了一个不错的项目代码质量检测工具,并且在自己的 IDE 上进行安装,这一实践不要紧,感觉还是很不错的。后来查了文档,这个工具不仅可以在 IDE 上来使用,在项目的持续集成部署上面,依然有用武之地,可以提高项目的代码质量。也就是说在你项目根目录下的 gitlab-ci.yml 文件中把它作为一个持续集成部署中的一个 pipeline,就可以对你上线代码的质量进行把控。这个工具的名字就是 SonarQube,同时针对 JetBrains 也有一款起相同作用的工具 Qodana。

这篇文章主要对 SonarQube 这个工具做针对性介绍,文章分为四部分。第一部分介绍这类工具通常使用你所获得的收益是什么。第二部分阐述搭建工具运行环境所需做的准备。第三部分阐述详细的部署过程。最后一部分进行总结。

一.用这类工具的收益是什么?

简单直接,这些工具一般会对代码上什么样的问题进行提示?

1.不遵循标准的。比如说一些对于 list 数据类型的非空检测,我之前是比较习惯用 xx.size()>0 来判空的,你用这个工具,就会提示,让你个性成 xx.isEmpty()的方式;

2.潜在的缺陷。比如你有安装 checkstyle 格式检测工具,给出你的提示,如导入未使用的包等。

3.高复杂度的代码分布。可能该进行抽象的类,方法没有提出来,所有代码都面向过程的写在一个文件里,这个时候会给你提供优化建议。

4.冗余代码及重复。比如说代码实现的方式改变了,之前代码为了防止产品再把需求改回来,进行了注释,会给你提示,去掉这些冗余代码。

5.注释不足或者是注释过多。这个就不多解释了。

6.没有单元测试。正常对于开发功能,都有对应此处功能的测试方法。

7.糟糕的设计。这个在 java 中尤其明显,java 各个层逻辑层面肩负的功能是非常清晰的,如果想让参数在各层畅行无阻恐怕是不现实的,所以就涉及了结构上各层的参数的传递。此时遵循标准就是理想的处置方式,而强行复用就显得收益不足,还让整个结构变得混乱。

二.环境准备

  • Java 环境
  • Maven 环境
  • SonarQube 平台
  • gitlab
  • Jenkins 平台或者是 gitlab-runner 这个 gitlab 代码托管工具的扩展,本文针对 gitlab-runner 进行说明
  • 数据库(例如 mysql)

以上安装,如有问题可自行谷歌。

三.部署过程

  1. 编写 gitlab-ci.yml 配置文件
代码语言:javascript
复制
gitlab 原生安装
stages
- test

job1:
stage: test
only: - master
script: - sonar-scanner -Dsonar.projectKey=abc -Dsonar.host.url=<http://172.18.16.50:9000> -Dsonar.login=6d190aebe5c01fd18f22c212f47fc5f657a29f1d -Dsonar.java.binaries=.

gitlab docker安装
image:
  name: sonarsource/sonar-scanner-cli:latest
  entrypoint: [""]
variables:
  # 在sonarqube中创建项目时生成的TOKEN
  SONAR_TOKEN: "09904533c04eee38bc6c6d5b4acfc4fb73865626"
  SONAR_HOST_URL: "http://192.168.102.27:9000/"
  GIT_DEPTH: 0
sonarqube-check:
  stage: test
  script:
    # sonarqube中项目的标识
    - sonar-scanner -Dsonar.qualitygate.wait=true -Dsonar.projectKey=firsttest -Dsonar.java.binaries=.
  allow_failure: true
  only: # 仅检测master合并请求和master分支代码提交,sonarqube-ce版本只支持分析dev分支
    - merge_requests
    - dev
  1. 代码提交至 gitlab 之后,自动进行代码规范性检!

gitlab-ci 触发成功

gitlab-ci.yml 执行成功

sonarQube 检测成功

四.总结

流程如上所述,综合工具的使用表现,基本可以得出这是一个可用性和实用性都较高的工具。配合这个工具的使用,可以避免我们编写代码过程中很多不规范的问题。所以,如果你对上线代码质量也有一定的要求,希望避免一些低级错误导致出的系统服务风险,就赶快把它引入到你的团队中吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对代码质量进行检查
    • 一.用这类工具的收益是什么?
      • 二.环境准备
        • 三.部署过程
          • 四.总结
          相关产品与服务
          检测工具
          域名服务检测工具(Detection Tools)提供了全面的智能化域名诊断,包括Whois、DNS生效等特性检测,同时提供SSL证书相关特性检测,保障您的域名和网站健康。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档