如果项目是开源的,你是否还在寻找资源?

时间:2009-08-12 05:39:25

标签: open-source

我很惊讶地发现,我的小型开源项目的原始资源比编译和即用型库更常被下载(在这种情况下,jar文件与平台无关)。我想知道背后的原因是什么?缺乏信任?好奇心?使用自定义设置进行编译?附加调试源?

我个人通常不打扰下载和查看来源,除非某些东西不起作用或我不明白它是如何工作的。

13 个答案:

答案 0 :(得分:3)

我经常下载资源只是为了了解其他人如何实施某些事情。阅读(和理解)其他人的源代码是自己成为更好的程序员的好方法。

对于相对较高的下载次数,您的库可能包含在Linux发行版等其他项目中吗?这些项目通常从源代码本身下载和构建,以便他们可以正确地打包它。

答案 1 :(得分:1)

第一个原因是自定义应用程序。

下载一些代码并直接使用它而不查看代码如何工作也不是一个好习惯。您可以从代码中学到一些东西。

此外,您可能不需要项目的全部功能。如果项目太大而你只需要使用其中的一些功能,那么根据你的需要修剪项目然后再使用它是个好主意。

答案 2 :(得分:1)

对于我公司长期关注的每一件软件,我都会查看来源以评估质量。其背后的理由是,编写糟糕的软件通常也很难使用和维护,从长远来看也是一种商业风险。

即使使用像ERP系统这样的大多数商业软件,也无需查看来源。仅对于COTS(比如MS Office),很难获得来源。

我还会检查每个招聘决定的来源。

您看到如此多源代码下载的另一个原因可能是自动下载和编译的FreeBSD Ports自动构建系统。

答案 3 :(得分:1)

我只是为了了解程序是如何工作的,请查看源代码。

尽管看起来很愚蠢,但开源软件(例如开源CRM)因缺乏文档而臭名昭着。找出它如何工作的唯一方法是试验它。即使实验失败,也是时候启动IDE并阅读源代码了!!

答案 4 :(得分:1)

也许答案会令人失望,但相对较多的源代码下载可能意味着应用程序打包在基于端口的分发中,如Gentoo,FreeBSD或MacPorts,其中每个软件包都在安装过程中在本地计算机上下载和编译

答案 5 :(得分:1)

如果它是一个框架,我总是下载源代码。我用它们进行调试,看看它们是如何实现某些东西的。如果它是一个独立的应用程序,除非出现问题或应用程序执行独特的操作,否则我通常不会查看源代码。

答案 6 :(得分:1)

正如你所说,你的二进制文件是一个jar,它听起来像是一个Java库(而不是一个应用程序)。开发人员经常使用source:将其包含在IDE中以在库中进行调试并查找某些函数。此外,许多开发人员还在其构建过程中包含源代码以编译依赖项。这可能是一种解释。

答案 7 :(得分:0)

首要原因是编译器设置。您无法想象通过链接使用某些不兼容设置编译的静态库导致的痛苦程度。使用选中的设置自行编译可以大大简化生活。此外,当您决定更改编译器时,您不需要使用旧的静态库 - 它将由新的编译器编译。

第二个原因可能是人们想要了解一些内容是如何运作的。例如,他们希望在其商业闭源项目中使用相同或类似的功能,并且不能仅仅因为病毒许可而借用代码。然而,他们可以看到它是如何工作的并获得灵感 - 这就是为什么他们下载源代码并阅读。

答案 8 :(得分:0)

我已经下载了库并自己编译了它们但我实际上并没有查看代码。当我使用库时,最好知道我可以进行更改并掌握源代码。如果它是一个庞大的库,我有时只需要一两个文件,我只需要一个大型库中的单个功能。

答案 9 :(得分:0)

有些原因可能是:

由于特洛伊木马等而不信任二进制下载

看看你是如何实现的?

检查代码的质量:)

答案 10 :(得分:0)

由于这是一个库,因此对全面文档的需求远远高于独立应用程序。我经常发现自己正在查找某个库的代码,以找出有时会遗漏在文档中的某些内容,例如:某些功能的时间/空间复杂性。

答案 11 :(得分:0)

我们在商业应用中使用了一些开源软件包。我总是从源代码下载和构建。

  • 如果我们的托管平台发生变化 未来,它可能会改变 没有东西的东西 预编译的二进制文件我想成为 能够使用相同的包/版本 在新平台上。

  • 如果包裹处于休眠状态或 变得不受支持,我想成为 如果能够应用更改或修复 绝对必要。

  • 如果出现问题 服务器(内存泄漏,CPU峰值, 等),我希望能够添加 记录或检测代码 识别或消除包裹 问题的根源。

答案 12 :(得分:0)

我当然只能自己回答,但我很少下载二进制文件(假设我相信项目通常就是这种情况),而且当我调试时我会下载源代码。但是当我认为我已经完成它们时,我倾向于删除源代码,因为你从未真正完成过,我可能不得不重新下载源代码,从而导致源代码下载更高。