专一于 PHP、MySQL、Linux 和前端开发,感兴趣的感激点个关注哟!!!文章已收录, 次要蕴含的技术有 PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux 和工具资源等相干理论知识、面试题和实战内容。
文章导读
在日常开发中,咱们在本人的代码库中不免都会引入内部的包,或者公司外部的公有包。在引入这些包时,咱们个别都不会间接引入,而是会去思考这么几个问题。
- 该包是否合乎本人的性能需要?
- 该包是否存在安全漏洞、bug 等问题?
- 该包是否有继续的保护、更新、欠缺等文档和良好的生态?
- ……
等等上述的问题,在引入给包时,都是咱们须要思考的。而不是间接自觉的引入。既然谈到了这个问题,那咱们该怎么去剖析这些问题呢?明天给大家分享 Google 一个开源的工具 (Open Source),可能很好的帮忙咱们解决这个问题。
Open Source
什么是 Open Source
Open Source 是由 Google 开发和托管的实验性服务,旨在帮忙开发人员更好地理解开源软件包的构造、安全性和结构。该服务查看每个包,结构其依赖项及其属性的残缺、具体的图形,并将后果提供给能够从中受害的任何人。
依赖关系图应用版本控制和许可信息、已知破绽以及代码衰弱和平安的其余重要信号进行润饰。
数据不仅为我的项目本人的代码提供,还为我的项目所有依赖项的齐全结构图中的所有包提供,甚至包含每个依赖项的各个版本。这意味着,例如,如果软件依赖于具备破绽的依赖包的版本,则该破绽将在顶层的我的项目的 Insights Web 视图中可见。
显示整个依赖项关系图中应用的许可证,可用于查找抵触或其余许可证问题。
它还提供了交互式工具来可视化依赖关系图、比拟版本、筛选依赖关系等。
最初,还会显示版本历史记录和其余相干信息。
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/
,通过搜寻框输出你想查问的包名。
点击你想查找的包,进入包详情页面。会看到如下的界面信息。
通过点击下面的几个选项卡,抉择你想查找的信息即可。