不敢参加同学聚会的你是否敢来参加wechaty的生日宴会?一个关于如何分蛋糕的故事。
计算机科学家:请问想吃生日蛋糕怎么办?
微信机器人:获得生日蛋糕分三步:第一步,过生日……
计算机科学家:错!第一步是定义“生日”。
2018年10月14日,我们将迎来wechaty诞生的第1110000000天!根据计算机科学家的定义,机器人的世界里逢10000000天就过一次生日。让我们祝wechaty生日快乐!
过生日的时候最应该感谢谁呢?当然是我们的父母!他们含辛茹苦把我们养大 [默泪]……请注意,wechaty一共有27位父母。
分蛋糕
那么问题来了,生日宴上该如何为父母们分蛋糕呢?他们平时省吃俭用,没有向wechaty要过一分钱,就盼着生日宴上能吃一口甜美的蛋糕。
平均分可以吗?有一位妈妈提交了147次代码,而有一位爸爸只提交了2次,平均分怎么公平?
据说这就是爸爸和妈妈的差别
那数提交数好了?有位提交422次的只修改了861行代码,而那位提交147次的妈妈修改了19341行代码!妈妈会不会哭晕在厕所?
……
不用担心,计算机科学家有办法。今年软件工程领域的顶级会议FSE上横空出世了一篇论文Towards Quantifying the Development Value of Code Contributions,可以更加公平合理地计算开发者对软件项目的代码贡献值。论文有点看不太懂?没关系,知道它很牛就够了!简单来说,这篇论文摒弃了提交数、代码行数这些表面化又很容易造假的指标,而是深入分析代码的内涵,结合代码的内部结构,通过一个基于程序分析和图计算的算法DevRank,获得每次代码提交的价值,进而可以计算出每位爸妈到底为项目做出了多大贡献。那让我们来看一看结果吧!
……呃,结果还在分析中,生日当天揭晓!敬请期待更新!
Author: 任晶磊,微软亚洲研究院研究员,清华大学计算机系博士。