首页 > 其他分享 >Golang依赖包的各项指标分析总结

Golang依赖包的各项指标分析总结

时间:2022-10-07 19:03:39浏览次数:45  
标签:总结 依赖 Golang Source 开源 引入 软件 Open

专注于PHP、MySQL、Linux和前端开发,感兴趣的感谢点个关注哟!!!文章已收录,主要包含的技术有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具资源等相关理论知识、面试题和实战内容。

文章导读

在日常开发中,我们在自己的代码库中难免都会引入外部的包,或者公司内部的私有包。在引入这些包时,我们一般都不会直接引入,而是会去思考这么几个问题。

  1. 该包是否符合自己的功能需求?
  2. 该包是否存在安全漏洞、bug等问题?
  3. 该包是否有持续的维护、更新、完善等文档和良好的生态?
  4. ......
  5. Golang依赖包的各项指标分析总结_依赖关系

等等上述的问题,在引入给包时,都是我们需要考虑的。而不是直接盲目的引入。既然谈到了这个问题,那我们该怎么去分析这些问题呢?今天给大家分享Google一个开源的工具(Open Source),能够很好的帮助我们解决这个问题。

Open Source

什么是Open Source

Open Source是由 Google 开发和托管的实验性服务,旨在帮助开发人员更好地了解开源软件包的结构、安全性和构造。该服务检查每个包,构造其依赖项及其属性的完整、详细的图形,并将结果提供给可以从中受益的任何人。

Golang依赖包的各项指标分析总结_数据_02

依赖关系图使用版本控制和许可信息、已知漏洞以及代码健康和安全的其他重要信号进行修饰。

数据不仅为项目自己的代码提供,还为项目所有依赖项的完全构造图中的所有包提供,甚至包括每个依赖项的各个版本。这意味着,例如,如果软件依赖于具有漏洞的依赖包的版本,则该漏洞将在顶层的项目的 Insights Web 视图中可见。

显示整个依赖项关系图中使用的许可证,可用于查找冲突或其他许可证问题。

它还提供了交互式工具来可视化依赖关系图、比较版本、筛选依赖关系等。

最后,还会显示版本历史记录和其他相关信息。

Golang依赖包的各项指标分析总结_数据_03

Open Source开发目的

希望每个人都有一个高效、安全、可靠和值得信赖的开源软件环境。了解项目的依赖关系是实现该目标的关键部分。不明智地选择的依赖项可能会引入许可或安全问题,而仅仅拥有太多的依赖项可能会使维护具有挑战性。世界各地的开发人员每天都在更新他们的代码,这可能会意外地影响您自己的软件。可能很难跟上。

项目旨在通过集成有关其所有依赖项的信息并提供一种查看它们如何组合在一起的方法,为开发人员和项目所有者提供有关其软件运行状况的见解来提供帮助。当然,现有的工具和包装系统可以做到这一些,但还不够,也不统一。

希望获得有关开源软件项目的高质量信息和分析,这将使构建和维护高质量软件变得更加容易。

差异对比

Open Source并不是试图取代标准工具集,而是通过对每个打包模型的整个生态系统的全新集成视图来增强它。

Open Source一个关键的区别在于,Insights数据是从第一性原理派生出来的,即查看软件及其打包定义。结果可能与例如打包“锁定”文件的声明依赖项大不相同或更完整。此外,Insights提供的数据会定期重新评估,以使其保持最新状态,这在快速发展的开源开发世界中非常重要。

支持的包类型

Open Source当前支持Cargo (Rust), Go’s module system, Maven (Java), npm (Node.js), and PyPI (Python)。

信息正确性

Open Source团队具有解析算法的独立实现,用于计算包的依赖项。这些已经针对“本机”实现进行了测试,并且给定相同的输入,结果非常接近:99%或更高,通常要高得多。由于版本偏差、打包模型的未记录或模糊功能、来自构建系统的输入(我们无法使用)以及其他因素,可能会产生差异。

另请注意,包的依赖项关系图并不总是唯一的项,因为它可能取决于是否包含测试或其他依赖项、启用哪些功能等。由于图形计算是可传递的,因此即使依赖项规范的任何细节的微小变化也会影响整个图形。

如何使用

首先浏览器打开​​https://deps.dev/​​,通过搜索框输入你想查询的包名。

Golang依赖包的各项指标分析总结_数据_04

点击你想查找的包,进入包详情页面。会看到如下的界面信息。

Golang依赖包的各项指标分析总结_Go_05

通过点击上面的几个选项卡,选择你想查找的信息即可。

标签:总结,依赖,Golang,Source,开源,引入,软件,Open
From: https://blog.51cto.com/u_10992108/5734867

相关文章

  • 关于const在类中的一些总结
    const对象只能调用类的const方法,一般对象可以调用所有对外方法。 类的const方法实现内部:不能改变类的数据成员值,但是若有形参是此类的对象,且不是const型对象,那么通过这......
  • 一周总结
    NeedlemanandWunschLandau-Vishkin博客链接SmithandWaterman打分阶段分数不为负非常重要,这使得SmithandWaterman算法支持对序列进行局部比对。当任何一个位置......
  • 第二周总结
    周总结数据的基本类型整型intname=1浮点型floatname=1.1字符串strname='1.1'注释和字符串怎么区分:有赋值符号左边有变量名的就是字符串列表listname......
  • 前端面试总结14-开发环境与运行环境
    1.git:最常用的代码版本管理工具常用git命令:gitadd.gitcheckoutxxxgitcommit-m"xxx"gitpushoriginmastergitpulloriginmastergitbranchgitcheckout......
  • 2022年BATJ一线名企面经总结,阿里+腾讯+百度,18个技术栈全面解析!
    2022年BATJ一线名企面经总结,阿里+腾讯+百度,18个技术栈全面解析!前言时间过得好快,2022年都过去几个月了,马上就到了金三银四的跳槽旺季,很多公司其实现在就开始招聘了,其......
  • 近20年最权威的目标检测总结(第四期)文中有下载包链接
    扫码关注我们公众号 :计算机视觉研究院扫码回复:目标检测,获取源码及论文链接TechnicalEvolutionof BoundingBoxRegression边界框(BB)回归是一种重要的目标检测技术。......
  • linux常用命令总结
    1.查询当前目录总大小du-sh2.批量解压缩ls*.tar.gz|xargs-n1tarxzvf3.解压缩tar-zxv-ffilename.tar.gz4.查看内存free-h5.远程拷贝文件scp......
  • 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending
    机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化、分析和预测数据。一个通用的机器学习模型包括一个数据集(用于训练模型)和一......
  • 46th 2022/10/7 模拟赛总结33
    这次算是一个高光时刻吧rank2,不错的排名需要肯定但是,还是有所惰性,虽然今天可以理解,因为左眼有点肿?本次其实个人认为,rank2超级好拿,T1老老实实打了二分优化拿80,然后趁着......
  • Golang:https证书有效期检测
    原理:使用go提供的模块crypto/tls,可以获取域名证书的信息,通过到期时间可以判断证书是否过期packagemainimport("crypto/tls""fmt")funcmain(){con......