重磅 | GitHub 2019 数字年报全文正式发布
摘要
在開源日益重要的今天,我們需要一份建立在全域大數據基礎上的相對完整、可以反復進行推演的數據報告(報告、數據、算法均需開源)。本項目為X-lab 開放實驗室團隊發起,旨在通過分析Github全網的開發者行為日志,通過數據的視角,來觀察全球范圍內的開源現狀、進展趨勢、演化特征、以及未來挑戰等問題,除了展現目前開源世界全貌之外,我們特別關注中國的開發者和企業組織在整個開源產業中的表現。本報告中使用 2019 年全年 GitHub 日志進行統計,總日志條數約 5.46 億條。
關鍵詞:開源、行為數據、開發者行為、Github、數字年報
1、背景
2018 是“開源”的幸運數字,在這一年,“開源軟件”從誕生開始,走過了整整 20 周年。隨著開源軟件的日趨風靡,開源已經成為一項世界性的流行運動,它是人類在互聯網發展進程中探索出的一種面向全球的大規模協作生產方式,它以開放共享、合作共贏為宗旨,有效地推進了全球化進程。開源經過形成時期、古典時代、移動時代到云開源時代的不斷發展,開源產業鏈條已經逐漸形成[1]。越來越多的中國IT企業,無論是大廠還是小廠,都越來越積極的投入人力物力,參與開源,貢獻開源。開源代碼代表著IT技術發展最先進的方向,開源社區代表著開放的協作精神與創新的搖籃。
2018 年的時候,全球最大的代碼托管平臺 GitHub 已有 3000 萬開發人員,囊括 200 萬家企業或組織,擁有 9600 萬個代碼庫,已提交 2 億的 pull request。而在 GitHub 發布的 2019 年年度報告中[2],開發人員則已經超過 4000 萬,有將近 300 萬個組織帳戶,新創建的 repo 數超過了 4400 萬個。目前的 GitHub,有超過 80% 的開發者來自美國以外的地區,其中中國的貢獻者數目僅次于美國,排名第二,中國的開發者 fork 并 clone 的項目比往年增加了48%。
近期陸續所發布的「中國開源年度報告」[3]和「中國開源項目 Grank 分析報告(2019)」[4],則從另外一個方面說明了開源在中國受關注的程度。這些報告要么是通過問卷調查的形式進行的數據采集,要么是通過 GitHub API 定向采集的局部數據進行的分析,并且報告中所利用的指標也較為單一,難以準確的體現開源世界的全貌[4] [5]。國內最大的公有代碼托管平臺「碼云」近期也推出了該平臺的「 2019 年度數據報告」[6],同樣也存在上述問題,但很多地方還是值得參考的。我們認為,一份有價值的報告必定是基于全域大數據的基礎上,結合專家進行關鍵數據的人工標注,通過構建合理的分析模型,才能得出一套相對完整的,可以反復進行推演的數據報告(報告、數據、算法均需開源)。
為此,X-lab 開放實驗室團隊在這些報告的基礎上,試圖進一步更加全面的對 GitHub 上開發者的行為數據進行分析,盡量客觀準確的展現目前開源世界所發生的事情,特別是中國的開發者和企業組織在整個開源產業中的表現和趨勢,并正式發布這份「GitHub 2019 數字年報」。本報告采用 GitHub 全域事件日志進行統計分析(2019 年共計 5.46 億條),并對分析出的前 1500 個項目進行人工標注,挑選出中國的個人開發者和企業組織,同時構建了科學合理的數學模型進行分析。更重要的是,本報告所包括內容、數據、算法采取開源的方式,一是方便大家進行復現本報告中的相關結論,更重要的是在此基礎之上的不斷優化,甚至二次創新。相信這樣一種方式的數字報告能夠給大家帶來最大的價值。
2、總體宏觀統計結果本次使用 2019 年全年 GitHub 日志進行統計,總日志條數約 5.46 億條,相較 2018 年的 4.21 億條增長約 29.7%。在上述開發者活躍度與項目活躍度的定義下,統計得到 2019 年總活躍項目數量約 512W 個,相較 2018 年的約 313W 增長約 63.6%,2019 年總活躍開發者數量約 360W,相較 2018 年的約 303W 增長約 18.8%。
2.1 整體狀態分析
對于這 512W 個項目的活躍度分布,如圖1所示;這 512W 個項目的活躍開發者人數分布,如圖2所示。對開發者活躍度與項目活躍度的定義參見附錄部分的詳細說明。
圖1:整體項目活躍度分布
圖2:活躍開發者人數分布
上述兩張圖中,我們使用了對數坐標,事實上在所有倉庫中,僅有 1399 個項目的活躍度超過了 1000,占總項目數量不足萬分之三;而參與開發者數量超過 1000 人的項目僅有 333 個,可謂萬里挑一。
這一數據結果說明大多數項目還是處于低活躍、少參與的狀態。
2.2 世界 Top 10 開發者賬號?
根據上述給出的活躍度定義,我們對 2019 年全年活躍開發者進行了活躍度統計與排名,這里給出世界活躍度 Top 10 開發者賬號列表:
表一:?世界活躍度Top10開發者賬號
從數據統計來看,世界活躍度 Top 10 的開發者賬號均為機器人賬號,其中 7 個賬號為 GitHub App。這也可以看出開發者最常使用的自動化倉庫管理、協作功能有哪些,主要集中在依賴更新、自動同步上游、GitHub 學習、漏洞檢測等方面。
界活躍度與貢獻項目數量 Top 1000 開發者列表請查詢項目地址,所有開發者詳情可由程序腳本獲取。
2.3 世界 Top 10 項目
根據上述給出的項目活躍度定義,我們對 2019 年全年活躍項目進行了活躍度統計與排名,這里給出世界活躍度 Top 10 項目的列表:
表二:?世界活躍度Top10項目
其中996.ICU?作為一個現象級開源項目,大家并不陌生。2019 年 3 月 到 4 月,中國程序員為抗議 996 工作制,在GitHub發布了一個名為 996.ICU 的項目,該項目短時間內獲得超過 20 萬顆星星,成為最耀眼的明星項目。
而活躍度最高的項目則是來自微軟的跨平臺代碼編輯器Microsoft/vscode;此外微軟使用開源的方式來建設其 Azure 云平臺的項目MicrosoftDocs/azure-docs排名第三,顯然微軟在開源上的努力獲得了程序員的認可。
在這個TOP10排名中,涉及了三個來自谷歌的項目,分別是:前端跨平臺開發框架Flutter、容器編排系統Kubernetes以及深度學習框架TensorFlow,這也進一步說明谷歌在開源上的努力和影響力獲得業內的認可。
2.4?中國 Top 20 項目分析
我們對所有排名的項目,篩選出了中國 Top 20 的項目,列表如下:
表三:中國活躍度Top20項目
所有中國項目詳情列表請查詢項目地址,如若發現錯誤或遺漏,歡迎提交 Issue 或 PR 到 GitHub。
從Top 20列表信息中,我們可以看出,996icu/996.ICU的綜合活躍度數值遠遠高于其他項目,數值上超過其他項目一個數量級。該項目中數值最高的指標為open issue,同樣超出其他項目一個數量級,達到了 22080,最低的指標為review comment,只有 144。
列表中兩個比較有趣的項目是?selfteaching/selfteaching-python-camp?和?Advanced-Frontend/Daily-Interview-Question,這兩個項目的活躍排名分別是第 4 和第 13,分別對應了教育和面試求職兩個領域。這側面反映出大眾對這兩個領域的需求和關注度非常高。
另一個非常注目的項目是?pingcap/tidb,該項目的review comment是 20 個項目中最高的,達到驚人的 14913,相對比之下,該項屬性下排名第二的?PaddlePaddle/Paddle?只有它的不到 60%,而?issue comment?僅次于?996icu/996.ICU,open PR?僅次于selfteaching/selfteaching-python-camp與?PaddlePaddle/Paddle,分別排名對應屬性的第二與第三位。而其 608 的開發者參與數量,與其他前端項目相較甚遠,但卻有著如此高的活躍度,也可以看出其社區的硬核程度,之后我們會對該項目做進一步的分析。
從這個列表中我們還發現,在中國開源成績比較突出的兩家公司是百度和阿里。百度的深度學習平臺PaddlePaddle占據了兩個項目,分別是核心框架Paddle和模型庫Models;此外開放自動駕駛平臺Apollo也榜上有名。另外,由百度貢獻的數據可視化項目ECharts在2018年進入Apache孵化器,此次榜單中ECharts排名11。
咱們再來看看阿里,阿里“服務于企業級產品設計體系” 的Ant-Design,是螞蟻金服采用 React 封裝的一套組件庫,在中國范圍內屬最活躍的開源項目,排名第二。上榜的基于Java的RPC框架Dubbo,也在今年成為Apache 頂級項目。另外上榜的阿里項目還包含動態服務發現Nacos。
在中國的Top 20列表中,我們發現前端項目幾乎占據了一半,包括阿里的Ant-Design組件庫,由餓了么(已被阿里收購)前端團隊開源的 Vue UI 組件庫Element,由有贊基于Vue構建的移動UI組件庫Vant等等。這說明在國內,前端群體在社區更為活躍;另外前端代碼一般也不太涉密,因此公司在心態上更開放一些。不過這其中也有一點需要引起注意,上榜的前端項目組件庫居多,但是缺少核心項目。
2.5?repo協作關系圖
針對上文分析方法得出的排名前 20 的中國開源項目,本文對倉庫的歷史 commits 記錄進行挖掘。Git 倉庫中的每一個 commit 記錄由貢獻者產生,對倉庫的一個或者多個文件產生影響,因此對特定時段內的所有貢獻者的提交記錄分析能反映出了貢獻者的活躍程度、協作模式以及項目社區本身的類型屬性。我們通過倉庫挖掘的工具對中國活躍程度排名前 20 的項目 commit 記錄進行挖掘分析,并做可視化展示,相關數據文件參考這里。所采用的分析工具可以參考文獻[7~9]。
從時間維度上,我們將重點放在 2019 中倉庫的提交記錄,對于每一個倉庫,以單月和全年為粒度分析單個倉庫的 commit 記錄,并將倉庫的內容貢獻模式以二部圖的方式可視化展示。數據文件的可視化圖中藍色節點代表倉庫文件,紅色節點代表用戶,節點越大,表面該賬號對應的用戶修改的文件內容越多,節點間的邊的粗細反應了貢獻次數。
我們通過幾個典型的例子來對分析結果進行說明展示。從可視化的關系圖來看,996.ICU項目從 3 月份開始出現提交記錄,且 3、4 兩個月份最為活躍,之后熱度開始消減。該項目的網絡圖結構呈現出“二元”形態,如圖3所示,即圖中存在一個主要貢獻者(n_996Icu,另一個相對較大的用戶節點?ImgbotApp?為機器人賬戶), 網絡中大多數文件內容由該賬戶貢獻,同時存在一個被頻繁修改的文件?README.md,多數貢獻賬戶只對該文件做出內容貢獻。其中?n_996Icu?對?README.md?之間的貢獻最頻繁,這一點從兩者之間的鏈接權重可以看出,這個模式在該項目的3月份貢獻圖可以被很清晰的觀察到。圖4展示了該項目全年的狀態,同樣能夠觀察到上述特點。
圖3: 996.ICU項目3月份貢獻圖
圖4: 996 .ICU全年貢獻圖
從tidb項目的內容貢獻圖來看(圖5),整個社區存在多個核心維護者,他們各自維護著不同的模塊,周邊也有大量的開發者在做出貢獻。從單月的數據來看(圖6),該社區每個月的提交修改非常頻繁,相較于其他項目來看,tidb 以比較快的速度進行演化更新。與之相對比來看,其他項目的單月貢獻活躍程度及貢獻者多樣性遠不及 tidb 項目。以 vuejs 下的兩個項目(vue-cli 和 vue)為例,在 vuejs/vue-cli 項目中,從每月貢獻圖可以看出該項目的大部分貢獻由(Haoqun Jiang)做出,單月的主要貢獻者不超過兩名(圖7和圖8)。vuejs/vue 大部分貢獻都是由一個賬號(Evan You 尤雨溪)做出的,該項目 4 月份之后內容貢獻圖呈現出許多協作孤島的形態,反映出貢獻者對少量文件的修改,項目變動不大。
圖5: tidb 2019全年貢獻圖
圖6: tidb 10月內容貢獻圖
圖7: vue 3月貢獻圖
圖8: vue 4月貢獻圖
由此可以看出不同類型的項目,他們的社區協作網絡也呈現出完全不同的形態。更多頂級項目在 2019 年每月的協作網絡圖請查詢這里。
2.6 開發語言分析
我們分別對世界項目活躍度 Top 1000 的項目、世界項目參與人數 Top 1000 的項目和中國開源項目統計了不同開發語言的項目數量以及使用不同開發語言進行 PushEvent 操作的開發者的數量,二者相乘估計使用不同開發語言的開發者的數量。(如圖9和圖10所示),可以發現 JavaScript 使用最多。
圖9:世界項目活躍度 Top 1000 項目開發語言統計
圖10: 世界項目參與人數Top 1000項目開發語言統計
原因我們分析如下:
JavaScript 是一門直接被嵌入到 HTML 中的腳本語言,是一門可以被 Web ?瀏覽器理解的語言。它無需編譯、在瀏覽器環境可以直接運行的特性,讓? ? ? JavaScript 項目在活躍度的提升上占據了優勢。
谷歌開發的 Angular 和 Facebook 開發的 React,另外還有 Vue,這些主? 流前端框架都是 JavaScript 生態圈中的一部分。
這幾年隨著行業的發展,JavaScript 變得幾乎”無所不能“,現在基本所有的? 主流互聯網應用,其前端都有大量的 JavaScript 代碼。比如我們日常使用的郵 件、社交工具等等。
此外,全球項目活躍度 Top 1000 和全球項目參與人數 Top 1000 的項目中,Python的使用居于第二位,分析可能的原因為:
Python 相較于其他主流編程語言具有更好的可讀性,簡單易學、易于維護。
Python 應用范圍廣,它自帶的各種模塊加上豐富的第三方模塊,免去了很多“重復造輪子”的工作,可以更快地實現多種功能。
人工智能的浪潮進一步推動了 Python 的發展,很多人工智能任務以及大數據分析都會優先使用 Python 實現。
在中國開發者社區中,我們發現除了JavaScript外,Java和Go的活躍度也很高,分別排在第二、第三,如圖11所示。
圖11:中國開源項目開發語言統計
我們認為:在服務器和移動端開發上,Java 還沒有真正意義上的對手,可以預見Java 依舊是企業軟件、大數據、電商等最核心的技術棧。Go 是谷歌開發的新一代編程語言,在過去的幾年里取得了很大的成功。現代的云端、網絡和 DevOps 軟件的很大一部分都是用 Go 編寫的,例如 Docker、Kubernetes、Terraform、etcd、Istio 等項目。許多公司也將它用于通用場景下的開發工作,Go語言中國社區也極具活力。
對比全球的開發語言排行榜,我們發現中國開源項目中Python的使用與Java、Go、C++相比較少。另外還值得關注的是,Ruby和PowerShell在中國社區受重視的程度還不夠。
2.7 技術公司開源項目一覽
其實各大開源項目的背后,基本都有科技公司的支持,我們給出了一個科技公司維護的 GitHub 組織和項目列表,并根據該列表,計算出了科技公司所維護的開源項目在 2019 年的活躍情況與開發者參與情況,結果如下表所示:
表四:科技公司2019年開源項目活躍情況
在國內企業的開源數據中,我們可以看到阿里的數據幾乎在所有類別里都名列第一,有時甚至是其它公司之和,并且在社區化 / 開放等方面也做得不錯。但放到全球角度,出自阿里的知名度相對較高的項目,還是Apache Dubbo,以及在2019年收購而來的大數據流處理框架Flink。2019年9月在杭州的云棲大會上,阿里宣布賈揚清正式擔任阿里巴巴開源技術委員會負責人,開源將明確升級為阿里技術戰略之一。
AI 是百度開源最鮮明的競爭力,比如PaddlePaddle和自動駕駛平臺 Apollo。PaddlePaddle也是當前國內唯一開源開放的深度學習平臺。
華為在2019年也做了不少開源的工作,推出了原生數據庫 GaussDB 以及鴻蒙OS等,一改保守作風。
而騰訊2019年也對外宣布”已在 Github 上開源了接近 100 個項目,超過 1000 個貢獻者參與了開源貢獻,擁有超過 25 萬個 Star 數,騰訊目前在 Github 全球公司貢獻榜上排名前十“,于2019年6月份發布了開源戰略路線圖,另外Angel開源項目也已畢業,成為Linux AI基金會第一個來自中國的頂級項目,相信未來幾年會有更多驚喜。
可以看出,各大企業近年來均在不斷加大開源社區生態建設。
3、中國頂級開源項目訪談錄
我們對中國部分頂級的開源項目負責人進行了采訪,他們對當前的中國開源怎么看?以及為什么他們的項目可以如此活躍,社區管理和運營的技巧是什么?
譚中意?百度開源社區負責人, PaddlePaddle/Paddle
很高興看到 PaddlePaddle 在中國活躍項目排行榜上活躍度比較高。這里簡單介紹下 PaddlePaddle 團隊的社區管理經驗,因為是開源項目,所以堅持開放透明非常重要,研發過程也需要開放透明。
所以 Paddle 的日常研發,全部都是在 GitHub 上進行,不會存在內部版本(即某些公司的開源項目在公司內部研發,定期放出去一個版本)。
而且對于開發運營過程中開發者反饋的各個問題,也都是引導他們來 GitHub 提 Issue,這樣有記錄,也有沉淀,而不是在微信群里/QQ 群里回答問題,導致問題不容易被記錄,并被后面的工程師作為參考。
開放透明的研發過程,對于取信于開源社區非常重要。
吳晟?apache/skywalking
2019年,中國開源得到長足的進步,活躍度,參與人數和參與公司都大幅度的增加。總體來說有以下兩個特點。
第一,大廠領軍。多個由中國公司發起的開源項目,特別是進入Apache、Linux、CNCF等基金會項目,得到國內外的廣泛運用。社區多元化能力得到長足的進步。
第二,個人創建的項目依靠個人領袖力,社區發展,也能成為優秀的項目。雖然依然數量稀少,但成功者非常突出,甚至超過絕大多數的公司開源項目。
需要補充一點的,開始有一批以開源為核心的創建公司涌現出來,給開源注入了不少活力和全球化的元素。
但是同時,不足也還十分明顯,目前主流且廣泛使用的開源項目,90%都來自于單個商業廠商,但是鮮有跨公司的合作共建。讓中國起步的開源項目,在全球范圍尋求更大范圍的成功時,缺少助力。
同時,第一梯隊和其他開源團隊差距正在進一步拉大,頂級開源項目已經開始全面著眼國際市場,而絕大多數的開源項目,甚至對社區起步和項目的選擇依然迷茫。
最后,學生作為開源項目的增長潛力,對開源的認知,參與熱情,參與能力,遠遠低于工業界的要求和預期,以及國外水平。
黃東旭?PingCAP CTO, pingcap/tidb, tikv/tikv
對于數據庫產品來說,要想有社區,先需要有用戶,用戶越多,自然而然社區就越大。早期我們的精力放在互聯網公司,互聯網公司采用新技術的周期短,而且技術交流也更頻繁;另外最重要的是互聯網公司是業務驅動的,受商業的影響比較小,比較適合初創公司或者新產品切入,而且在互聯網行業站穩腳跟,會給社區帶來一個信號,這個產品是以技術取勝的,另一方面,互聯網的公司的工程師也會成為社區的種子用戶。第二個階段是社區的治理,我們有一套很完整的社區運營規則,完全透明面向社區,每一個 Contributor 的晉升都有一條清晰的路線圖,當個社區的朋友能夠更好的參與。總體來說,用戶,社區是相輔相成的。
另外,我認為 TiDB 社區的成功,早期有幾個決定很關鍵:
選擇 MySQL 協議兼容,認準 MySQL 社區在擴展性問題上的痛點針對性的解決,解決存在且普遍的問題。
架構上高度分層,保持架構的清晰,讓社區能夠低門檻的參與。
永遠傾聽一線用戶的聲音,接地氣說人話,保持文檔的齊全(包括中英文)。
站在巨人的肩膀上,積極借力各種社區,例如 Etcd、RocksDB、Go 語言和 Rust 語言社區等。
4、展望
GitHub 2019 數據年報作為 X-lab 的首次 GitHub 數據年報,主要為大家提供了一些統計數據,并簡單對社區協作關系做了一些分析工作。未來,X-lab 實驗室將投入大量在校學生在 GitHub 數據挖掘的層面,旨在基于真實數據挖掘數據背后的價值,例如協作網絡、社區管理、項目變遷等等,也希望可以在不久的將來,向社會提供這些數據分析的能力。
如若發現數據錯誤或遺漏,歡迎提交 Issue 或 PR 到 GitHub。本報告采用CC-BY-NC-ND許可協議
項目地址:https://github.com/X-lab2017/github-analysis-report-2019
致謝
X-lab開放實驗室是一群由來自華東師范大學、同濟大學的師生所構成的開放創新共同體,專業背景包括計算機科學、數據科學及其相關跨學科,長期思考并實踐教育與開源兩大主題。本次數字年報的主要貢獻者包括:趙生宇、王偉、周添一、范家寬、王皓月、夏小雅、吳紹嶺、林海銘、李苗進、吳佳潔、黃立波、陳亮、楊尚輝、方孝君、陳旭剛等,我們歡迎更多的開源愛好人士加入我們,共同推動開源在世界的發展。
參考文獻
[1]. 云計算開源產業聯盟, 開源產業白皮書(2019), 2019 云計算開源產業大會, 北京.
[2]. GitHub 官方 2019 年度報,?https://octoverse.github.com/
[3]. 中國開源年度報告,?https://kaiyuanshe.cn/project/china-open-source-report/
[4]. 中國開源項目 Grank 分析報告(2019),?https://linux.cn/article-11755-1.html
[5]. 徐川, 覃云, 中國互聯網公司開源項目調研報告,?https://www.infoq.cn/article/G4O6JUhJF*Tsv9eWM0L6
[6]. Gitee 2019 年度數據報告,?https://blog.gitee.com/2020/01/08/gitee-2019-annual/
[7]. PyDriller : D. Spadini, M. Aniche, and A. Bacchelli, PyDriller: Python Framework for Mining Software Repositories, 2018.
[8]. PathPy Ingo Scholtes, “Software Package pathpy,”, 2017, [Online].
[9]. Git2net: C. Gote, I. Scholtes, and F. Schweitzer, git2net - Mining Time-Stamped Co-Editing Networks from Large git Repositories, 2019
附錄:數據集及方法
數據集
本報告采用 GitHub 全域事件日志進行統計分析,日志采集范圍為 UTC 時間 2019-01-01T00:00:00Z 至 2020-01-01T00:00:00Z 共計約 5.46 億條。關于 GitHub 事件日志相關說明,請參考 GitHub 官方文檔。
分析方法
本報告中所有數據均基于 GitHub 事件日志統計,統計模型包含如下幾個關鍵定義:
(1)開發者活躍度
開發者活躍度,其定義為某特定 GitHub 賬號在一段時間內在某特定 GitHub 項目中的活躍評價指標。其活躍度由該賬號在該項目中的行為數據決定,本報告中所關心的行為包含如下幾種:
Issue comment:在 issue 中參與討論是最基本的行為,每個評論計入 1 次。
Open issue:在項目中發起一個 issue,無論是討論、Bug 報告或提問,對項目都是帶來活躍的,每個發起的 issue 計入 1 次。
Open pull request:為項目提交一個 PR,表示已對該項目進行源碼貢獻,則每次發起一個 PR 計入 1 次。
Pull reuqest review comment:對項目中的 PR 進行 review 和討論,需要對項目有相當的了解,并且對項目源碼的質量有極大幫助,每個評論計入 1 次。
Pull request merged:若有 PR 被項目合入,即便是很小的改動,也需要對項目有較為深入的理解,是幫助項目進步的真切貢獻,則每有一個 PR 被合入計入 1 次。
以上 5 個種行為在該報告模型中,具有不一樣的權重,其加權值逐級增加,加權值分別為 1、2、3、4、5,即:
(2)項目活躍度
項目活躍度,其定義為某特定項目在一段時間內的活躍評價指標。其活躍度由該段時間內在本項目中產生活躍的開發者活躍度加權計算得到,即:
使用開方的加權方式,用于抹平因核心開發者活躍度過高而導致項目活躍度過高,在該計算方式下,活躍度計算方式對參與人數較多而活躍情況平均的項目更加友好。
▼ ?▼??▼ ?▼??▼???▼??▼ ?▼??▼
備注:公眾號菜單包含了整理了一本AI小抄,非常適合在通勤路上用學習。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備注:加入本站微信群或者qq群,請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的重磅 | GitHub 2019 数字年报全文正式发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP深度学习:PyTorch文本分类
- 下一篇: 当面试官要求现场手敲代码,该如何体现你对