首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go每日一库之89:goreporter

Go每日一库之89:goreporter

作者头像
luckpunk
发布2023-09-30 08:26:35
发布2023-09-30 08:26:35
5200
举报

概述

一个项目中除设计之外,代码质量是一个项目成功与健壮的基础,再好的设计但是实现代码混乱,风格混杂,明显性错误百出,我们仍然会认为这是一个失败的项目;相反,即使一个项目在架构和设计上无新奇之处,但代码实现质量高,例如风格统一,测试完善,接口明确,无冗余代码,实现中无明显错误或不安全用法,圈复杂度低等等,无论是对于项目的实现上还是后期代码维护都是有益的。所以,一个项目的代码质量是一个项目成功的关键基础。 C/C++,Java等等语言都有自己的代码质量检测工具,例如Cppcheck,PC-Lint,Splint等等,Golang语言出现时间不实很长,这方面的生态还不是非常完善,当然,对golang比较关注的同学应该听说过——gometalinter,一个golang代码检测的工具,它合并了多种检测工具,相当于很多工具的集合,不过仍然需要安装所有要使用的一系列工具。但是,使用起来很不方便,并且生成的结果也很不直观。不过有另外一个库——goreporter,这个库使用起来非常容易,无任何其他依赖,只需要下载编译(go1.6+)即可,生成的报告是一个html文件,结果非常直观,并且为你的项目质量进行了评分。

使用示例

安装:

代码语言:javascript
复制
go get -u github.com/360EntSecGroup-Skylar/goreporter

使用:

代码语言:javascript
复制
goreporter -p <项目绝对路径或者相对路径> -r ./ 
# 会在本地生成html格式的代码分析报告

展示:

在线展示

评估概览

包括项目评估得分,项目名称,单元测试覆盖率和package含有单元测试的覆盖率,代码可简化提示,代码冗余以及高圈复杂度提示。

单元测试详细

其中左边是测试详细主要包含两个指标,代码覆盖率和测试耗时;右边是没有单元测试的package。 (鼠标放在相应的package会显示出该package的结果)

可精简代码

显示可以精简的package和该package下具体哪一行可以优化,并且给出了优化方法。

冗余代码和重复代码

圈复杂度

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 使用示例
    • 安装:
    • 使用:
    • 展示:
    • 评估概览
    • 单元测试详细
    • 可精简代码
    • 冗余代码和重复代码
    • 圈复杂度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档