今天,我们关注一下人称全球最大程序员交友社区的 GitHub。
这两天有朋友问我:你有关注前端圈最近的娱乐大新闻吗?然后扔给我一个网站,名叫前端娱乐圈:
点进去看了下,是另一个程序员社区“掘金”的页面。ID 名为“花裤衩”的用户放了一张截图:
虽然硅星人自己不是程序员,倒也还是对 GitHub 稍有了解的。
这个 Trending 是统计项目每日增加的星数 (Star) 得来的,而在 GitHub 上,星就和别处的收藏、按赞的意思差不多。
而截图显示,这个项目 kui-vue 的星数高达1,100多个,而且是在一天内就增加了超过1,000个星。
相信硅星人的工程师朋友们都知道:能登上 GitHub Trending 的项目,肯定都是很厉害的项目。
比如,某个行业从来没有人做过的重要功能组件,或者比之前最佳方案显著优秀的“轮子”*,抑或大公司开发的影响力比较大的项目开源,都有可能登上 GitHub Trending。
比如 Google 的深度学习框架 TensorFlow 开源的时候,就上过 Trending:
问题在于,这个 kui-vue 前端项目,并没有很厉害。不但 PR 和 Issue** 很少,也并不是来自什么大公司。
就跟微信公众号阅读量太高,赞数 & 留言太少一样,GitHub 项目星数很多PR & Issue 不成比例,也很蹊跷。
用户“花裤衩”没用多久就发现了 kui-vue 的问题所在:给这个项目按星的大量用户,都有明显的共同特征:
1. 没有头像
2. 都按星了相同的几个项目
谁都不傻:这不很明显的机器人吗!
现在基本可以确定,kui-vue 是靠刷星在9月2日冲上的 Trending。
(是的,我也是头一回知道,原来 GitHub 也可以刷…)
真的有很多用户(不少都是中国用户)上刷星。
多到有人在 GitHub 上专门做了个黑名单,记录有作弊行为的用户和项目:
硅星人发现,很多举报刷星项目的朋友都提到过,在淘宝上有店铺专门做这种生意……
不是说说而已,下面这些截图显示,淘宝上还真有做这行生意的:
真是万能的淘宝……
这些截图也透露了几个比较重要的消息:
首先:用户刷星,违反 GitHub 的用户协议是淘宝商家或者提供这种服务的人,并不是用户本人。严格来讲,用户只是有不诚信行为而已;
其次,最后一张截图展示了很多用户刷星的动机所在:想让自己的努力更容易被别人看到。
和大部分职业一样,软件工程师入职前也得面试。
对于他们,GitHub 就是简历。他们的企图很简单:当面试官看到库里有星数很高的项目,通常代表这个程序员有能力开发高质量的项目,在圈内有一定的影响力或者潜力。
招来这个人,不仅能让开发变快让业务更顺,还能让公司在开发者社群里提高存在感和地位,说出去都是“我们公司有 GitHub 上高星数的程序员”,挺有面子的。
然而问题在于:大部分程序员都是真的刻苦开发钻研技术,做出优秀的项目,却总是有人选择走捷径、耍小聪明。
最近几年来,随着中国科技互联网创新的加速,中国程序员也越来越多。需求也提高了,也就有了 GitHub 刷星这回事。
当然,也别全都当面试官是傻子嘛……
“感觉就是一点老鼠屎坏了一锅汤,”硅谷程序员小陈告诉硅星人,
面试官以前会用星数来判断面试者的能力。现在知道原来这些也能买,就不考虑了。这样对真正有技术实力、靠自己本领攒了很多星的朋友很不公平。
刷星只是 GitHub 上“中国乱象”的一小部分。
为了写这篇,硅星人查了查资料也问了身边的程序员朋友,发现中国人在 GitHub 上乱搞的能力远不止于刷星。
来,我们一起看看这些神奇的玩法:
1 高仿
高仿是最近几年 GitHub 上特别猖狂的一种造假/不诚信行为。具体有这么几种体现形式:
1)用户高仿
用户高仿就是某些坏蛋把别的(通常比较优秀的)GitHub 用户完全照搬过来,头像、地区、组织等用户信息和抄袭对象完全一样。
以下截图来自 V2EX https://www.v2ex.com/t/342137
原主:
高仿:
这样做的效果就是高仿者自己的项目得到了很多用户关注、按星和 PR;与此相对,正牌作者项目的关注、技术讨论和支持,甚至捐助都被分流走了。
这里面还有细节。观察了很多高仿者,发现他们 repo 里的项目都是差不多的……莫非都是一个地方出来的?
2)产品高仿
产品高仿就是完全仿照某些知名的移动互联网产品的外观开发一个项目。
去 GitHub 上搜一圈,你应该能找到一大堆高仿微信、高仿美团、高仿饿了么、高仿知乎之类的项目。
这种项目大多直接亮明了是高仿身份。
一位在掘金工作的朋友表示,GitHub 上的高仿项目,大多都是社会上的软件开发培训班产物。
他说,有些培训班的学员还会去抄袭掘金上别人的文章,在简历里说是自己写的;最不要脸的是发了高仿的项目到掘金上,然后截图说被社区推荐,还说掘金跟这些培训机构有合作。
“我们之前是收到很多高仿的投稿,例如使用 vue 高仿饿了么,高仿美团,都是培训班搞的幺蛾子。”
2 垃圾项目刷版
培训班除了喜欢做高仿之外,还特别喜欢做一件事:让学员把 GitHub 当网盘,把作业——通常都是垃圾项目——放到 GitHub 上刷版。
截图来自掘金:
项目基本就是贪吃蛇、象棋、京东之类的:
我终于知道淘宝上消失的那些 “GitHub 代练”都跑哪儿去了。
现在,培训班都把这些业务托管了:从建立个人网站,到包装 GitHub 账号,包括刷星、关注、优先客户的 PR 等,应有尽有,一站解决……
培训班为什么这么做,就是因为现在的科技公司招人都很看重候选人在 GitHub 这样的程序员社区里面的表现。
3 版聊
本质上,GitHub 是个使用 Git 技术进行版本控制的软件源代码托管服务。
GitHub 同时也代表一个开源的社区。但在一切之前,它本身应该是一个严格的、没有 bullshit 的工具。
然而如果你把 GitHub 只看作是一个社区的话,就很容易滥用它的一些功能。
下面这几张截图,出自前端圈一个比较有名的事件。今年,Node 之父Ryan Dahl (ry) 开发了一个新项目 deno,在 GitHub 上开了源。
结果,有大量中文用户跑到这个项目上版聊:
版聊里甚至出现了下面这种神奇的中式英文:
这些版聊,是通过项目的 Issue 形式发布的,然而 Issue 的本来作用是让用户举报 bug、对项目提交技术上的建议和意见用的。
遗憾的是,这些中国用户根本没有掌握 GitHub 的正确用法, 还以为它是天涯……
4 明哥事件
如果 ry/deno Issue 版聊把 GitHub 变成了天涯,那么明哥已经把 GitHub 变成了 QQ 空间。
明哥 (MingGe) 以项目描述 README 文风嚣张,和项目实际代码质量极低,在 GitHub 上特别出名……
让我们看一下明哥的项目 MingGeJS 的项目描述:
“
继优秀作品shearphoto截图插件,本人又再推出国产山寨JQUERY,为什么我要开发一个山寨JQUERY?老实说我从来没用过JQUERY,正因为我反感JQUERY。为什么我反感,因为我完全有开发JQUERY的能力,JQUERY的底层我都了如指掌。
它的名字叫MingGeJs,MingGe就是我的大名,
一看到插件名字,就知道作者是我,知道它是国产的,让别人知道国产类库一样做得很出色,出众本人文化程度不高,初中毕业!半句英文都不会,但是我相信只要肯努力一样可以实现自己的梦想。
MingGeJS的梦想有点大胆,就是在全球范围内,占据 jQuery百分之50以上的用户份额。
(千真万确都是他自己写的)
是不是特别的霸气!
然而知乎网友鲁小夫看了代码发现,明哥的这个项目代码质量是真的差,不但里面英文拼写有一大堆错,还把抄袭对象 JQuery 里面很多好的地方全都改的更烂了……
就是这样一个神奇的项目,在 GitHub Trending 上一度追赶苹果 Swift:
明哥就这样出名了。在项目的一个更新文档里,他分享了自己的经历:
怎么讲,明哥你赢了!
这些中国乱象,已经在 GitHub 上引起了公愤。
deno 项目 Issue 被中文刷屏,导致作者 ry 苦不堪言。他不得不自己也写了一条 Issue,告诉所有人:如果没有正经事,请保持安静。
其他英文用户也看不下去了,纷纷要求 ry 关掉无意义的 Issue:
事情大到了 ry 一度不得不关掉 Issue 功能(后来打开了)。
当然,最看不下去的,还是中国自己的开发者。
因为这些乱象虽然猖狂,总体上 GitHub 的大部分中国用户,还是很遵守这个开源社区的规矩的。
这也是为什么在知乎、V2EX、掘金和其他平台上,能够看到大量对高仿、刷星和版聊的声讨。
一位硅谷程序员小魏也关注过 GitHub 上的中国乱象,他表示,这些行为极大地影响了用户使用 GitHub 的效率,扰乱视听。
他说的没错:高仿项目分流了真实项目的关注度;刷星的项目容易导致新手用户误入歧途;使用 Issue 版聊严重干扰了项目作者的工作和生活。
不守规矩的玩家,污染的是整个环境,以及中国用户的集体声誉。
还 GitHub 一片净土吧。
** 轮子:梗来自“重复发明轮子”,可以指程序、工具、库、之类的实现方式。很多 GitHub 用户热衷造轮子,但这并不是错误,因为新的轮子可能比旧轮子更好用。
** PR: Pull Request,即其他用户向原项目提交自己的修改,要求项目所有者批准。由于 GitHub 的开源项目库属性,PR是项目改进的实现方式,是 GitHub 的重要功能之一;Issue:允许其他用户向项目所有者提交自己发现的 bug
以及改进的意见和建议等,也是 GitHub 的重要功能之一。