年会review代码 是用php写的吗,这样Review代码牛逼啦!

一个对项目负责的团队代码质量检查是必不可少的,有条件的团队经常有代码review习惯,这样可以使技术团队共同进步,但是一个庞大的工程做代码review其实是很麻烦的,所以就催生了很多的工具,今天我们就来通过工具来对代码进行扫描,通过发现问题并改进问题,使我们的项目代码更简洁,修复隐藏bug。

什么是Sonarqube

Sonarqube 是一个用于代码质量管理的开放平台。通过插件机制,Sonarqube 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

在对其他工具的支持方面,Sonarqube 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonarqube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

简单来说,Sonarqube就是一个代码质量检测工具,可以通过搭建服务端和使用客户端来对代码进行检测,我们今天就来上手试试吧。

搭建Sonarqube服务器

因为小编环境是mac,还是选择使用docker来搭建服务器环境把。

首先查找镜像

docker search sonarqube

1aa0fd7b9cea4e9dbfef9923a116955a.png

然后pull镜像

docker pull sonarqube

9b6aafbe9633ea2090f7d6e4325d4317.png

如果使用传统的搭建还得创建sonarqube需要的对应数据库的脚本再进行关联,但是使用镜像的话这些都内嵌了。

好了开始通过镜像启动容器吧。

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

2dcd644c07912b3492c2114f4590349e.png

镜像启动后就可以访问服务页面了。

访问地址:http://localhost:9000

e7001c2db9cba6969f60978fe3e79546.png

点击左侧的Log in登录,默认的登录用户名密码都是admin

f4459958a8612d567d2bf53a413e57d5.png

这样子服务端就安装好了

客户端使用

第一种姿势 纯idea插件查看

因为目前国内大部分程序员都转向Idea了,所以我们使用Idea来作为客户端进行项目代码检测。

首先就是插件的安装。如图所示,小白都看的懂,安装插件SonarLint并重启IDE

85a4d344073e580a64df60ed0bf74c4a.png

重启之后就要配置客户端连接的服务器了,服务器地址和账号密码填写我们之前本地搭建的信息

a698562ddede578de8a7cc0990a3d27a.png

点击Next的时候会需要创建Token

a8ecab15f524b0b33210973db9d2ecd3.png

点击Create Token跳转到我们生成Token的网页,这里我们输入admin创建Token

450e93a18556522f0fc74cef70e415d3.png

复制生成的Token到idea里面,填写好即可

验证和使用

接下来就是验证使用了。我们在项目代码目录上右键

3b498d37168f660724a7f7cd5873ec04.png

会有SonarLint这个选项,点击第一个

287ecfcd87b2e4bced813129582012f7.png

可以看到代码检测愉快的跑起来了。

552deb58c687958d20b98242f75524ab.png

扫描结束以后,可以看到,很多不规范的代码都被扫出来了。

随便点开一个,比如说这个空方法

53e0b0589304549040cced44e8832765.png

并且右侧给出了对应的修复示例参考

0cad35685c362ced6c02b029aa993b07.png

但不懂英文?没关系啊 ,姿势可不只有这一种!!!

第二种姿势

那么这次我们使用管理台+maven来看如何牛逼的使用它,

登录管理台,点击Markerplace模块,安装中文包

6732a486f696b6983d3b9d1ef123e448.png

安装完成重启服务

1bd2e4e965197fec08cd2ba9da313f96.png

再次登录,熟悉的中文是不是回来了呀!

549eef266a8869ff4ff24f66a3d9faba.png

然后在项目里面加入以下maven依赖

org.sonarsource.scanner.maven

sonar-maven-plugin

3.7.0.1746

展开项目的Maven选项,双击运行,执行完毕后就可以登录管理台查看了。

d87a4fbbbc49e22bf85214c8b28d6836.png

打开管理台,你会发现产生了一个和你项目名一样的项目,并且各种代码质量指标都标注的清清楚楚!!

c0c3e172fec2064e912d638d8c758bad.png

我们点进去,点开bug选项随便一处,查看Bug

9a58107144d07613531bad94ce72ef66.png

果然扫出来了一处可能出现bug的代码,假设Get这个枚举对象为null的话,下面的对象getId()方法肯定会出现空指针了。

我们再导入一个一个项目,写几个不规范的代码,看看能不能扫出来。

646381b52dc81b8dc4c052c0b6bd2b6e.png

果然是扫到了有异味的代码。。。比如方法不规范拉,代码里输出日志不规范 了~

a2db09f20638979d52097a82ae879f86.png

这里就不继续陪大家看bug和异味的代码了呀~

检测出了代码规范问题和bug漏洞咋办,改呗~

改完以后就可以早点下班了~~

各位老铁有空可以去尝试玩一玩啊,据说经常做代码review的程序员下班都比普通程序员要早。

结尾

写到结尾了,顺便提一句,有人说为什么不用类似阿里巴巴规约扫描插件,其实在项目开发中也有在用,但是确实只能测试出来一部分阿里定义出来的代码不规范问题,像漏洞和bug和这个就更不能比了,所以千万别有杠精来跟我较劲比较了,我只能说,都用吧!!

写到这里了,点赞转发三连有么,为了你能早点下班~

- END -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值