谈谈开源软件的选择

先说点背景,对一款开源软件评估,也就是最终用还是不用,无外乎从这几个方面入手。3. 代码整洁,有注释,尤其是后者,GitHub 上不少代码都是从头写到尾,一行注释都没有,这个不但给自己挖坟,也给用户带来了非常多的不便。4. 更新频率,如果最近一次更新是 5 年前,是不是要考虑下有没有用的必要。当然这个并不绝对,不少最新的稳定版本都是 3 年前甚至 5 年前的,对应的开发版本倒是蛮活跃的。另外,如果是刚刚仅仅出来了几个月的新产品,还是慎重考虑一下。

根据上面的原则,不管选什么类型的开源软件,都可以从上面的几个方面入手,国产的亦如此。文章写到这里也差不多了,上面已经回答了我题目中涉及的点了。下面谈谈最近工作中遇到的此类问题。事情源于我们想对某个型号的网卡做一个收包方面的 benchmark,这事原本很简单,直接使用一些现成的 pkg generator 测试就能完全满足要求了,这个我在之前的一篇博客也已经提到过,并且也测完了得出结论了。结果我突然想看看真实的线上流量(同样是大量的小包)是什么样子的,于是想到了 tcpcopy,第一次知道这个还是几年前参加 velocity Beijing 的时候听到的,当时就听说被国内各大互联网公司广泛使用,于是 g 了下,惊奇的发现 github 也有接近 800 个 star 了,看上去不错,除了中国用户多了点。这里有必要说明一下,一个 repo 的 star 用户绝大部分来自同一个地方并不是件好事,很可能这个项目仅仅在该地区小范围的活跃,反映出来的就是没有被大部分(欧美用户,他们才是开源的活跃主体)的用户所接受,你自己说行没任何意义,只有别人说你行你可能才行,只有说你行的那个人被别人说行你才是真行。可类比找名人写推荐信、诺贝尔提名的概念。于是 git clone 下来,接下来噩梦就接二连三发生了,作为一个普通的用户,为了把这款「据作者称不是一般人能用的起来,就连 twitter 也搞了三年都没搞定的」软件用起来,我们花了将近一周的时间才把他给用了起来,在某些情况下(switch mirror),我们还对他打了 patch 才能正常使用。下面对照上面的一些基本点一个一个来过一遍。

1. 技术层面,这个基本没得说,确实符合我们的需求,实时复制线上的流量到测试机器做 benchmark。4. 更新频率,这个确实比较频繁,最新的已经到 1.0 版本了,可惜,由于文档非常模糊,可能很少会有人知道 1.0 跟之前的 0.9 不大一样,0.9 跟再之前的 0.5 又不大一样,至于哪里不一样,要怎么使用,还得自己摸索,唯一的信息是作者在 CSDN 上发表了一篇一句话博客。5. 社区,糟糕的不能再糟糕了,长这么大第一次见到用 QQ 群作为主要讨论场所的。搜遍全网没找到一个 mail list,更没有 IRC。参与群体的比例结构也非常的奇葩,GitHub 上 start 的 90% 以上都是大陆用户,也就是说,这个项目没有获得西方主流技术圈的认可。commit 的人数活跃的一只手能数得过来。不得已,发邮件给作者,在这之前,我建议你看下 How to ask questions the smart way,没执行完上面所有步骤之前不要问别人问题。发邮件的目的非常简单,就是想让其确认下使用的命令选项对不对,当然里面我详细的描述了环境版本等等基本的因素,最初的几次对话虽然回复的字体不一大小不一语句不完整并且根本没能正面回答我的问题,也算能基本接受,结果越到最后越离题,来来回回了十来封,一个简单确认使用参数对不对的问题发展的最后成了又是侃大山又是让抓包的离奇分析问题方式。最后作者不耐烦的让我去 QQ 群讨论。QQ 群呐,QQ 代替了标准的 mail list,瞬间雷焦了。这事到此就也没什么了,我多少年不玩 QQ 的人了,就让我同事加了他所谓的官方 QQ 群,然后作者在群里面依然不停的让把 -F 后面的过滤条件写的详细些,尽管很早我就数据告诉了他我们测试下来详细与否对最终的结果没有什么影响(最后问题的原因也证明了不是这个原因)。几天下来作者终于不耐烦了,把我跟其对话邮件包含的一些 IP、MAC 等敏感信息给直接爆到了群里面,当然加以挖苦讽刺一番。不能做软柿子啊,当天我启用了尘封已久的 QQ 号加进了群,非常详细的列举了十条:ok,既然王大大发火了或者说是挖苦我了,那咱们还是把这事给说清楚:接下来?接下来就就没了,说完这些我就退群了,后面据说群里面说着诸如「国内开源环境是恶劣的,斌哥有些火气也是可以理解的」,「说白了,我按我的方式开源,你按你的方式使用,但不要对彼此要求太多」之类的不疼不痒的话。后来我把这事发到了 twitter 上,倒是有不少同学发表了跟我类似的感慨(1, 2)。

最后,按照某些人的说法,爱用不用。

=====================================================

本微信静态数据存储由七牛云存储提供!七牛专为移动时代开发者提供数据安全托管、双向传输加速以及图片、音视频等数据处理的一站式服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源软件成熟度评估及选型指南》内容主要来自近几年我们对开源软件评估与应用选型的研究成果,以及对优秀的开源软件的筛选整理。内容主要面向那些希望将开源软件部署在其应用环境中,或利用开源软件进行二次开发的中小企业或开源爱好者。《开源软件成熟度评估及选型指南》对于那些利用开源软件的网络社区建设者也有一定的参考价值。 全书内容共分为四部分:第一部分主要讲解开源软件的相关概念,开源运动在国际和国内发展的历史,及开源软件应用普及中遇到的问题;第二部分主要讲解开源软件选型中成熟度评估模型在国际、国内发展的情况,并依据近几年我们在相关领域的研究、探索,结合国内外经验,提出一个成熟度评估模型;第三部分着重讲解在开源软件选型中常重要的环节——开源软件许可,通过问答的方式向大家讲解开源许可相关的知识产权问题对开源软件选型的影响,并对开源许可中最重要的GPL协议进行了分析;第四部分向大家推荐一系列互联网开发、应用相关的开源软件,也作为我们对开源软件选型方法的实践。此外,在附录中给出了一个软件评估规范的参考范本和一些开源软件相关知识点的详细介绍。 《开源软件成熟度评估及选型指南》的一些内容来自相关项目或软件的官方信息;同时,《开源软件成熟度评估及选型指南》的内容也获得了开源中国社区和中日韩东北亚开源合作项目的大力协助,在此对他们深表感谢。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值