如何选择一个获胜的围棋模块

如何选择围棋模块

更新:截至2021年5月1日,GoCenter中央存储库已经日落,所有功能将被弃用。有关中心日落的更多信息,请阅读弃用博客文章

有了几乎无穷无尽的Go模块列表,决定哪一个最适合你的Go构建可能会让人不知所措。对于新的Go开发人员来说,为您的特定用例选择一个赢家可能很困难。

这种现象并不新鲜。事实上,这也是原因之一开源对开发者来说非常重要。通常,当一个模块由开发人员发布时,它很可能是为了解决他们面临的特定问题而开发的。如果另一个开发人员要使用他们的模块来解决相同的问题,那么该模块中可能需要一些当前版本无法满足的性能标准。幸运的是,通常有很多版本去模块从中选择可以解决不同的用例。

一个模块的用例越多,在试图找到最适合您特定用例的模块时,它就会变得越复杂。即使在您觉得您已经为您的构建找到了正确的模块之后,您如何确定呢?让我们讨论在选择Go模块之前应该考虑的一些参数,并向您展示如何增加为您选择正确模块的几率!

选择Go模块:什么是重要的

在选择Go模块时,有大量的可用选项,在考虑三个基本参数时,减少列表可能是一项简单的任务:

  • 模块流行度-一个模块的使用范围
  • 模块引用-模块的归属
  • 模块遵从性——该模块及其依赖项的安全级别

在选择Go模块时,这些因素都非常重要,因为每个因素都将直接影响到构建的成功。对于每个参数,我们将展示GoCenter中的一个模块示例,GoCenter是版本化Go模块的免费存储库。

模块的受欢迎程度

在选择Go模块时,重要的是期望的模块已经被其他人采用和使用。被许多其他开发人员使用过的模块更有可能解决预期的问题;还有一种可能性是,开发人员仍在使用该模块,以确保其持续更新。有两种有效的方法来检查模块的受欢迎程度。

对于开发人员来说,衡量一个模块受欢迎程度的最有用的方法之一是查看它收到的Github星星的数量。另一种检查模块受欢迎程度的方法是检查它被其他人下载的次数。这些都是为任何编程语言选择模块的经过测试和验证的方法。由于Go是一种相对较新的编程语言,下载的数量可能并不总是反映模块的受欢迎程度,特别是如果模块是新的。如果是这种情况,建议您也查看贡献者的数量。一个受欢迎的模块与大量的Github星级,下载(如果适用)和贡献者意味着你将有一个更高的机会,该模块是适合你的构建。这里,你看到一个流行的Go模块的例子,Aws-sdk-go.它有5790年星星和452277次下载,这意味着成千上万的开发者已经使用了这个模块,并且可以验证它是安全、可靠的,并且有一个解决了他们特定用例的版本。它还有222个贡献者,确保许多人已经使用和开发了该模块的其他版本来满足他们的用例:

GoCenter Go模块指标截图

模块引用

检查模块的引用是确保为构建选择正确模块的另一种有效方法。它提供了对该模块的依赖项的洞察,可用于发现哪些其他模块正在使用您感兴趣的模块。通过引用使用所需模块的模块,您可能会注意到大型公司使用该模块,这意味着它更可能是安全和可用的。

例如,下面我们有AWS模块.查看一下,没有发现该模块的负面信息。“Used By”选项卡显示哪些模块正在使用您想要使用的模块。下面,我们看到该模块正在被企业使用,几乎可以确保该模块是安全的。

GoCenter goproxy

模块合规

随着对公开共享代码/模块的消费的增加,开发人员和组织需要一种方法来检查有问题的模块是否足够安全。当我们提到安全性时,它是关于模块的安全性和存在的漏洞。下面的例子是一个包含两个参数的模块安全漏洞,这意味着使用该模块可能存在风险:

GoCenter goproxy Security页签f模块页面截图

最佳遵从性实践包括选择没有漏洞的模块。虽然这是显而易见的,但有时找到没有漏洞的模块可能是不可能的。如果您使用的模块有一两个漏洞,请检查该模块的更新频率。如果相同的安全问题在最后4-5个版本中仍然存在,则模块的作者可能不会进行任何更新或尝试缓解该问题。这最终意味着您需要寻找另一个模块来使用,或者您需要构建最适合您的模块!我从不建议使用易受攻击的模块。

现在你来挑吧!

在选择围棋模块时,很难选出赢家。有许多参数最终会影响决策过程,通常情况下,它可能仅仅取决于偏好问题。在使用所考虑的模块之前,一定要始终检查它们的流行程度、引用和遵从性。现在,用你所学到的知识武装自己,今天就开始使用Go模块吧!