今天,我們關注一下人稱全球最大程序員交友社區的 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 上亂搞的能力遠不止於刷星。
來,我們一起看看這些神奇的玩法:
一、高仿
高仿是最近幾年 GitHub 上特別猖狂的一種造假 / 不誠信行為。具體有這麼幾種體現形式:
1)用戶高仿
用戶高仿就是某些壞蛋把別的(通常比較優秀的)GitHub 用戶完全照搬過來,頭像、地區、組織等用戶信息和抄襲對象完全一樣。以下截圖來自 V2EX
原主:
高仿,看 ID 多了一個 "i":
這樣做的效果就是高仿者自己的項目得到了很多用戶關注、按星和 PR;與此相對,正牌作者項目的關注、技術討論和支持,甚至捐助都被分流走了。
這裡面還有細節。觀察了很多高仿者,發現他們 repo 裡的項目都是差不多的 …… 莫非都是一個地方出來的?
2)產品高仿
產品高仿就是完全仿照某些知名的移動互聯網產品的外觀開發一個項目。
去 GitHub 上搜一圈,你應該能找到一大堆高仿微信、高仿美團、高仿餓了麼、高仿知乎之類的項目。
這種項目大多直接亮明瞭是高仿身份。
一位在掘金工作的朋友表示,GitHub 上的高仿項目,大多都是社會上的軟件開發培訓班產物。
他說,有些培訓班的學員還會去抄襲掘金上別人的文章,在簡歷裡說是自己寫的;最不要臉的是發了高仿的項目到掘金上,然後截圖說被社區推薦,還說掘金跟這些培訓機構有合作。
" 我們之前是收到很多高仿的投稿,例如使用 vue 高仿餓了麼,高仿美團,都是培訓班搞的么蛾子。"
二、垃圾項目刷版
培訓班除了喜歡做高仿之外,還特別喜歡做一件事:讓學員把 GitHub 當網盤,把作業——通常都是垃圾項目——放到 GitHub 上刷版。
截圖來自掘金:
項目基本就是貪吃蛇、象棋、京東之類的:
我終於知道淘寶上消失的那些 "GitHub 代練 " 都跑哪兒去了。
因為培訓班都把這些業務託管了:從建立個人網站,到包裝 GitHub 賬號,包括刷星、關注、優先客戶的 PR 等,應有盡有,一站解決 ……
培訓班為什麼這麼做,就是因為現在的科技公司招人都很看重候選人在 GitHub 這樣的程序員社區裡面的表現。
三、版聊
本質上,GitHub 是個使用 Git 技術進行版本控制的軟件源代碼託管服務。
GitHub 同時也代表一個開源的社區。但在一切之前,它本身應該是一個嚴格的、沒有 bullshit 的工具。
然而如果你把 GitHub 只看作是一個社區的話,就很容易濫用它的一些功能。
下面這幾張截圖,出自前端圈一個比較有名的事件。今年,Node 之父 Ryan Dahl ( ry ) 開發了一個新項目 deno,在 GitHub 上開了源。
結果,有大量中文用戶跑到這個項目上版聊:
版聊裡甚至出現了下面這種神奇的中式英文:
這些版聊,是通過項目的 Issue 形式發佈的,然而 Issue 的本來作用是讓用戶舉報 bug、對項目提交技術上的建議和意見用的。
遺憾的是,這些中國用戶根本沒有掌握 GitHub 的正確用法, 還以為它是天涯 ……
四、自以為能上天
如果 ry/deno 上的 Issue 版聊把 GitHub 變成了天涯,那麼明哥已經把 GitHub 變成了 QQ 空間。
明哥 ( MingGe ) 以項目描述 README 文風囂張,和項目實際代碼質量極低,在 GitHub 上特別出名 ……
讓我們看一下明哥的項目 MingGeJS 的項目描述:
繼優秀作品 shearphoto 截圖插件,本人又再推出國產山寨 JQUERY,為什麼我要開發一個山寨 JQUERY?老實說我從來沒用過 JQUERY,正因為我反感 JQUERY。
為什麼我反感,因為我完全有開發 JQUERY 的能力,JQUERY 的底層我都瞭如指掌。
它的名字叫 MingGeJs,MingGe 就是我的大名, 一看到插件名字,就知道作者是我,知道它是國產的,讓別人知道國產類庫一樣做得很出色,出眾
本人文化程度不高,初中畢業!半句英文都不會,但是我相信只要肯努力一樣可以實現自己的夢想。
MingGeJS 的夢想有點大膽,就是在全球範圍內,佔據 jQuery 百分之 50 以上的用戶份額。
(千真萬確都是他自己寫的)
這種罵街式的 README,是不是特別的霸氣!
然而知乎網友魯小夫看了代碼發現,明哥的這個項目代碼質量是真的差,不但裡面英文拼寫有一大堆錯,還把抄襲對象 JQuery 裡面很多好的地方全都改的更爛了 ……
就是這樣一個神奇的項目,在 GitHub Trending 上一度追趕蘋果Swift:
明哥就這樣出名了。在項目的一個更新文檔裡,他分享了自己的經歷:
怎麼講,明哥你贏了!
這些中國亂象,已經在 GitHub 上引起了公憤。
deno 項目 Issue 被中文刷屏,導致作者 ry 苦不堪言。他不得不自己也寫了一條 Issue,告訴所有人:如果沒有正經事,請保持安靜。
其他英文用戶也看不下去了,紛紛要求 ry 關掉無意義的 Issue:
事情大到了 ry 一度不得不關掉 Issue 功能(後來打開了)。
當然,最看不下去的,還是中國自己的開發者。
因為這些亂象雖然猖狂,總體上 GitHub 的大部分中國用戶,還是很遵守這個開源社區的規矩的。
這也是為什麼在知乎、V2EX、掘金和其他平臺上,能夠看到大量對高仿、刷星和版聊的聲討。
一位硅谷程序員小魏也關注過 GitHub 上的中國亂象,他表示,這些行為極大地影響了用戶使用 GitHub 的效率,擾亂視聽。
他說的沒錯:高仿項目分流了真實項目的關注度;刷星的項目容易導致新手用戶誤入歧途;使用 Issue 版聊嚴重干擾了項目作者的工作和生活。
不守規矩的玩家,汙染的是整個環境,以及中國用戶的集體聲譽。
還 GitHub 一片淨土吧。
閱讀更多 江蘇IT小達人 的文章