选择开源软件时应注意哪些警告标志?[关闭]


13

将开放源代码项目与商业软件甚至其他开放源代码项目进行比较时,什么情况会引起危险信号,导致您按弹出按钮并转到其他地方?

Answers:


17

开源的

查看项目网站

  • 查看文档
  • 查看邮件列表档案
  • 查看SCM(svn,git,hg等)

为此,请注意以下几点...

  • 该软件有多成熟
  • 用户群的大小是多少(很多人?3人?)
  • 用户群中的人是谁(公司,家庭用户,小型企业等)
  • 开发活跃吗?它活跃了多长时间了?
  • 邮件列表档案库还向开发人员泄漏了很多有关“团队精神”的信息。它看起来健康,敌对,无聊等吗?
  • 文档是否还不错?
  • 软件包/项目是否已被任何发行版(例如Fedora,Debian,RHEL,SLES,Ubuntu等)接受?如果是这样-那是一件好事-至少有一个以上的人对该项目充满信心。
  • 该网站是否有适当的票务系统?如果是这样-从5年前开始有多少张票?这是该项目有多“活”的另一个指示。

另外,请确保您注意到分发软件所依据的许可证。有些可能不适合您的需求。

企业软件

除了...我在这里没有太多要说的。

  • 确保(不要问销售人员-他会撒谎)该应用程序不能以形式运行root特别是如果要在TCP / IP端口上侦听。*查看供应商的声誉
  • 确保供应商知道管理此产品的人员(即不会获得root访问权限,因此该产品必须支持sudo。任何认为sudo不支持该产品的人通常只是年老的,但他们是供应商,他们会成为那些必须支持您的人-您不想购买该产品,然后让他们告诉您“不,您不能使用sudo,您必须su成为root”。
  • 永远不会购买任何封闭源安全软件-永远不会
  • (主观):...而且永远不要相信销售代表说的任何话-他们都是骗子和蛇,也不例外。

您如何确定程序的成熟度?并不是说版本号没有任何意义,而且许多项目多年来一直使用奇数版本号。(我在看您的NetworkManager)。什么是不成熟的危险信号?
jldugger

正确,尽管版本号可能对开发人员具有某些特定含义,但这是内部的一件事-外界充其量不过是一种指示-企业软件似乎试图以可笑的版本号跳跃来加以利用。要了解成熟度,您可以在几个地方查看,特别是票务系统-很多滴答作响是一件好事-尤其是如果您可以看到开发人员在修复和关闭它们方面做出了真正的努力。另一方面,如果您没有票,或者最糟糕的是,没有票务系统,那么这不是一个好的开始。
Xerxes,2009年

7
  • 缺乏活动。 如果项目尚未发布新代码,则显示许多未公开的错误(或非常老的错误,没有新的错误),或者用户论坛的垃圾邮件发布率很高,这肯定是在衰减的代码库。活动项目具有常规版本,错误流失表明已打开的新项目并没有超过已关闭的旧项目,并且用户论坛每天都有活动。所有这三个对于保持代码的正常运行至关重要-发行,费用返还和调试/重构,形成一个完整的循环。

  • 活动与代码库的大小,复杂性和成熟度成正比。 程序/项目越大,点发布的频率就越少,但是应该有一致的点发布流。对于具有大型复杂代码库的Samba这样的项目,期望在一个月左右后发布点。对于像gcc这样的项目来说,它是一个成熟的代码库,具有更保守的设计目标,它们之间的点发布时间更长,但是更大。仅需少量代码即可快速实现的目标也显示出潜在的问题-可能是开发人员仍在与bug作战,或者尚未对所有目标/功能进行编码。

  • 源代码必须易于访问。 空白,如果它是真正的开源代码,则不应该涉及任何魔术握手,伏都教产品或烛光咒语,以查看源代码。可以通过CVS,SVN,Git,Mercurial甚至是信鸽来访问它,这都没有关系,只要您无需单击换行许可协议即可使用它。 如果您签署豁免,NDA或同意一些闻所未闻的许可计划,则说明您不是在与开源打交道,而是在与已同意向您开放其价格的商业供应商打交道。 。


++用于活动要求。
sh-beta

6

真的有很多。

欺骗性许可 -太多的解决方案试图骗人,使我一死不渝。套餐的价格为X,但如果您要宣传选项1、2和3,则每个选项的价格将增加$ 500-1500。不,谢谢。

没有人使用它 -至少,谷歌找不到任何谈论它的人。它要么是全新的(在这种情况下,您是豚鼠),要么那么糟糕,以至于大家都知道

这是多个分支的根源 -如果已对某个分支进行了多次分叉,则可能有充分的理由,其中一个分支可能比源代码更好地解决了问题。研究这些。

界面设计始终不好 -我不仅仅是指GUI。疯狂,无法识别或标签错误的CLI标志或选项使我发疯

它不起作用 -或它假装不应该存在(或不存在)需要解决的情况,因此无法解决


1

我还要补充一点,代码流失率是一致的,并且由很多人完成,而不仅仅是少数人。您不希望一个人在对项目感到兴奋之后就兼职编写代码,然后对代码感到无聊,然后留给社区继续支持。Drupal和Joomla是两个很好的例子。


1

如果您正在为公司寻找软件,出售,更改等,那么最重要的方面是许可证。考虑到WLAN路由器中包含busybox并遵循法律行动,公司认为“开源=做您想做的事”。

其他一些事情:我也在寻找上次更新的日期和一个活跃的社区,所以论坛,也许还有其他以软件为主题的页面。


1

在Linux上,我将检查发行版中打包了哪些软件。打包软件不仅限于开源/ GPL-Ubuntu,Gentoo和SLES至少在其软件包列表中包含专有软件。尽管不能保证这些软件包将与发行版中的核心软件一样有效,但是有人花了时间和精力来准备软件包。


1

我主要关注成熟度和活动性。如果它看起来相当成熟,并且似乎有大量的活动(例如,论坛或Wiki活动),那么我会感到很舒服。然后,我知道很可能会解决错误,并且可以就出现的问题获得帮助。我会选择一个活动项目,该项目与我的需求不完全匹配,而不是一个看起来完美的项目,但在一周中的任何一天似乎都已失效。

谈到成熟度,很大程度上取决于预期用途。如果我需要立即推出这种产品,并且不能让它失败或引起麻烦,那么成熟度显然是一个非常重要的因素。如果我可以忍受一些怪癖,而对于停机时间并不重要,那么我宁愿看一下未来的前景。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.