本文由“币嗨Bihi内容合伙人计划”赞助
Github,不仅仅程序员需要关注,作为一名区块链投资者,本着对自己的钱负责的原则,你也需要了解一些开源软件开发的基本常识。
你可能会说,哎,爱莉莎,那些技术问题我搞不懂啦!
没关系,今天爱莉莎提炼出五大点,能让你比较轻松地评估这个软件项目的活跃度和质量。
能轻松过滤一些垃圾项目,嗯哈!让那些捣糨糊的妖怪们现出原形。
1. 插入基本概念
什么是Git?
Git是一个免费、开源、分散式版本控制软件,由Linux内核之父——Linus创作。最初的目的是为了管理Linux内核开发。
简单说,Git软件,就像哆啦A梦的时光机一样,是程序员的时光机。
偶们程序员通过Git,可以轻易保存、备份、回滚、合并......代码。删除的代码,只要提交过,都能找回来哦!
偶们程序员通过Git,可以轻松找到这行代码是谁写的,这个Bug是谁造的,这个锅该谁来背!
总之,程序员通过Git,可以穿梭到任何代码版本,可以在代码的时间海洋里,任意遨游。
Git软件,被很多开源项目所使用,可以在本地、远端使用。
什么是GitHub?
Github是一个网站,由GitHub公司开发,用Ruby on Rails编写。
Github通过Git进行源代码版本控制,提供软件源代码托管服务,同时提供付费账户(可以私密,未被授权的用户不可见源代码)和免费账户。
Github是最流行的Git存取站点,用户能非常方便的追踪软件库的动态,可以对软件代码改动、及bug(程序错误)提出评论。
2018年6月4日晚上,微软宣布以75亿美元的股票收购GitHub。祈祷微软不要把Github搞砸,双手合十。
image2.投资者需要关注哪五点?
-
代码提交
-
贡献者、关注者、收藏者
-
问题数量
-
统计数据
-
是否是Fork代码
2.1 代码提交
代码提交,代表了代码的更新频率和质量。
比如,我们打开 https://github.com/EOSIO/eos
可以看到,爱莉莎写文章的这一刻,EOS 已经有 7704次提交。
image点击commit,可以看到提交历史。
这里,我们可以看到代码更新的最近时间。可以看到最近的一次在今天:12小时前。
image每次提交包含以下信息:
1. 编号
2. 作者
3. 提交/更新时间
4. 提交内容:是合并?还是添加了新功能?还是解决了某个Bug(程序问题)?
代码所有的更改历史,都可以在提交中发现。我们主要看 master(主分支)提交历史。一般,程序员在其它分支提交代码,然后发出 pull request申请, 项目主程(主要程序员)审核后,才会合并到代码主分支(master分支)。
爱莉莎搜了搜360报的史诗级bug,看看有没有在代码提交历史里提到,目前没搜到。
我们在提交历史里,可以看到:
1. 完成了哪些功能?
2. 解决了哪些问题?
3. 最重要的是,代码更新是否频繁,最近一次修改是什么时候?一般来说,最后一次提交时间,离现在越近越好,提交历史越连续越好。
可以看到EOS主分支代码,12小时前才更新,项目代码迭代速度可以说是非常快了。
文末,我会举一个反面例子。
2.2 贡献者,关注者和收藏者
image先说关注(Watch)和收藏(Star)
关注(Watch),代表有多少程序员关注了该项目,当项目更新时,程序员们会收到邮件通知。
收藏(Star),代表有多少程序员收藏了该项目,方便他们参考代码。
关注数和收藏数,代表了程序员们对该项目的认可和项目热度。BTC有3万多收藏。EOS作为一个一年多的新项目,有8000多的收藏,可以说很不错了。
贡献者,代表了项目开发人员数量,数量多,一定程度上代表这个项目是个大型,多人团队协作开发。
点击Contributors(贡献者),可以看到 EOS的贡献者的信息。我们可以看到,从项目开始到现在:
Heifner大神,提交了538次,排第一。
BM大神,提交了468次,排第二。
image点击Heifner大神头像,可以看到Heifner大神,最近9天都在频繁更新代码。EOS项目为了主网正式上线,忙得热火朝天,周日无休,大神辛苦了。
image2.3 存在问题
点击“Issues”(问题),可以看到项目当前存在的问题。
Open 代表还没解决的问题。
Closed代表已经解决的问题。
image可以看到,EOS目前已经解决的问题数量,是未解决问题的大约3倍,数据比较健康。
如果,观察了一段时间,比如半个月,发现未解决问题数量,远远大于已解决问题数量,那么代表该项目:
1. 问题比较多
2. 程序员解决问题速度,远远小于发现问题的速度
- 如果数目为0,可能项目无人用,无人维护
当然,不排除一些不良项目,有了问题不报。
2.4 Insights 洞察统计
点击Insights,可以看到统计信息。
比如EOS,在过去一周,有13个程序员,提交了80次代码到主要分支,主分支中的70个文件进行了更改,其中添加了1951个新文件,删除了796个文件。
image表现了EOS项目,代码正在快速迭代中,项目正在热火朝天的向前推进。
2.5. 是否是Fork代码 ?
Fork——字面意思”叉“,就是把整个项目源代码,复制到自己的代码仓中。
当然,如果你Fork了Bitcoin(比特币),只会复制源代码,不会复制交易信息。
最后这面照妖镜——Fork,我们可以明辨真假李鬼。
被Fork得最多的区块链项目,当然是——Bitcoin啦。
这里是Bitcoin的源代码本尊:
image我们来看看这个项目:——chaincoin:https://github.com/chaincoin/chaincoin
项目下方,小小的写着:forked form bitcoin/bitcoin, 表示项目源码复制于比特币代码仓。
imageFork复制不是错,但是如果整个项目从明星项目复制后,自己什么都没有做,那么这种项目就要打个大大的红叉,碰不得。根本没有开发,项目没进展啊!
当当当,反面教材来了。
我们一项项对比:
2.5.1. 检查——代码提交:
虽然,chaincoin的最后一次提交是13天前,勉强过关。
但是倒数第二次提交,居然是三年前,2015年10月15,这是什么鬼?项目没人写代码?没有bug?没人用?
不合格!叉!
image2.5.2. 检查——提交者信息:
先看Bitcoin的:
image再看 chaincoin的:
image第一,从2015年10月后,就没有贡献者更新代码了。
第二,贡献者,通过对比,发现就是bitcoin本尊的贡献者,可以说本项目的贡献者很少,改动也少得可怜了。
不合格!叉!
2.5.3. 检查——问题数量
issues 数目居然是0。
只要代码有人使用,只要在运行。程序的bug一般会野火烧不尽,春风吹又生。如果为0,代表项目可能无人用无人维护!
不合格。叉!
image2.5.4. 洞察统计:
最后的统计,也印证了这一点,这个项目基本无人问津了。
最近一周,无提交,无问题。不合格,叉!
image看看人家莱特币,虽然也是Fork的比特币,但是代码一直在提交更新的。https://github.com/litecoin-project/litecoin/commits/master
3. 小结:检查五项
-
代码提交:最后提交时间,离现在越近越好,提交历史越连续越好。
-
贡献者、关注者、收藏者:三个数据量越大越好。
-
问题数量:如果为0,代表项目可能无人用无人维护!不为0,问题已解决数量,大于未解决数量较好。
-
统计数据:看看最近一周代码提交数目有多少,代表了代码迭代速度。
-
是否Fork?如果是Fork,一定要小心确认,是否本项目自己没有做任何更改,如果是,那么不合格。
希望对大家有用。
个人转载至朋友圈和群聊天,无需特别申请版权许可。
转载时请务必注明作者。
网友评论