开源的坑
Posted thinkam
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源的坑相关的知识,希望对你有一定的参考价值。
我们使用开源软件大部分情况是为了不重复造轮子,使用一些别人写好的具有通用性的代码来减少我们的代码量,提高开发效率,减少开发成本。而且使用一些优秀的开源软件会比我们自己开发的好,毕竟它们被很多人使用,经受了很多人很多次的检验。
但是,有些开源软件却很坑,用它们到最后发现有不断的坑,到头来发现不如直接用底层的、未封装的API,或者自己开发。下面说些应该避免的坑:
- 社区小(比如GitHub的star少)的开源软件
对于社区小的开源软件,当你遇到问题,很难快速解决。而那些社区大的开源软件,Google搜下很容易搜到你遇到的常见的问题。大小是相对的,那么谈谈如何比较两个开源软件的社区大小,可以比较它们在开源平台的收藏数量、issues数量、PR数量,也可以用Google trends对比下,也可以对比下Google搜索结果数目,也可以对比下它们在stackoverflow等平台搜索结果数目。 - 国产开源软件
不是看不起国产开源软件,国产优秀的开源软件其实也有一些。但整体上看,国产开源软件文档质量不行。社区小,一般很少有外国人使用,而国外的开发者数量和质量明显高于国内。举个例子,fastjson和jackson,虽然fastjson应该比jackson性能好一点,但fastjson的功能和代码质量不如jackson,而且fastjson社区也不如jackson,当用jackson遇到问题时,用Google英文搜索下,一般很容易搜到解决办法,而用fastjson遇到问题一般只能去看看fastjson那一点点文档。顺便提一下,用中文搜索问题,一般比较难很快找到解决办法。我想原因大概如下:1、Google的中文搜索能力不如英文(baidu啥的更别谈)2、国内开发者鱼龙混杂,由于编程入门门槛低,有好多水平欠缺的开发者写了大量低质量博客,中文博客的信噪比非常糟糕,很少有我感觉还可以的博主。举个例子,CSDN博客质量简直不堪入目,我现在直接用扩展屏蔽了CSDN。 - 不再维护的或代码贡献频率低的开源软件
在我开来,软件开发者应该要对自己的软件负责,就是一直对自己开源的软件质量负责,close所有issues,解决软件bug。做到这点很难,连我自己一些玩具开源项目都不再维护,但我会在README中标注不再维护,减少浪费有些人的时间,我也会及时close每一个issues。如果实在不想维护,GitHub还有archive的功能,将项目设置为只读。在我看来,解决issues是开源的游戏规则,而open issues也是游戏规则,如果大家都这样,开发者对软件负责,软件使用者也对软件负责,开源社区才能健康发展。 - 文档少,代码注释少的开源软件
如果一个开源软件没什么文档,或文档质量不行,那么软件的使用者也不会很多,软件本身也很难发展,我感觉这样的开源意义少了很多。
下面谈谈如何选选择坑较少的开源软件,大概就是避免上面的坑吧。和其他很多行业一样,软件行业也在于实践,当你多用一些开源软件,多踩一些坑,自然会避免很多坑,如果实践了很多次,但依然遇到很多坑,我想大概有两种可能。一是你不适合搞软件,没有那一点点感觉。二是你很厉害了,已经找不到一些适合你的开源软件了,这时候应该是你造轮子的时候了。
以上是关于开源的坑的主要内容,如果未能解决你的问题,请参考以下文章