这个 拿去 用 这70个让你笑的合不拢嘴的GitHub项目,居然拿了7万星
GitHub各位應該都很熟悉了,全球最大的開源社區,也是全球最大的同性交友網站((? ?_?)?),但是大部分同學使用GitHub應該就是通過別人的開源鏈接,點進去下載對應的項目,而真正使用Github來查找開源項目的還是少數,
面試總得有幾個和所求崗位相關的項目,如果應屆生、轉行的童鞋沒有項目,就靠簡單的javaSE或者其他語言基礎那只能說“你太難了”。
通過 Github ,你可以很方便的下載自己需要的項目,了解實時熱點的項目,通過對優秀的開源項目的學習,更好的進行學習與提高
倉庫分幾種?
本地倉庫:建立在本地的文件夾。
遠程倉庫:建立在互聯網的服務器內的文件夾。
分布式版本控制系統
配有兩個倉庫,在你的電腦上有一個 本地倉庫 ,在遠程的服務器上有一個 遠程倉庫 。
我們在提交文件的時候會先提交到本地倉庫,然后在有網絡的情況下,再從本地倉庫提交到網絡上的遠程倉庫。
Git 就是一個典型的分布式版本控制系統
Github就擔任了上述的遠程倉庫這一角色,就是一個存放在外網服務器上的一個文件夾。并且Github是免費的開源的托管平臺
什么是Git
Git (讀音為/g?t/)是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。
GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git 作為唯一的版本庫格式進行托管,故名GitHub。
2021 年 最熱 GitHub 盤點,這些 GitHub 項目是本月 Star 攀升最多的 repo,它們分別是:
HarmonyOS 鴻蒙操作系統
自行車自動駕駛系統
金庸群俠傳 3D 重制版
阿里云盤小白羊版
計算機基礎知識筆記
Spring Boot 相關漏洞學習資料
阿里巴巴 MySQL binlog 增量訂閱&消費組件
一鍵換臉應用
用 Python 編寫的一些簡單的項目
命令行的藝術
01.?HarmonyOS 鴻蒙
本月第一個盤點,一定給鴻蒙。HarmonyOS 華為鴻蒙操作系統開源,迅速霸占 GitHub 熱榜。
鴻蒙系統是第一款基于微內核的全場景分布式OS,是華為自主研發的操作系統。2019年8月9日,鴻蒙系統在華為開發者大會上正式發布,華為會率先部署在智慧屏、車載終端、穿戴等智能終端上,未來會有越來越多的智能設備使用開源的鴻蒙OS。
鴻蒙OS實現模塊化耦合,對應不同設備可彈性部署,鴻蒙OS有三層架構,第一層是內核,第二層是基礎服務,第三層是程序框架 。可用于大屏、PC、汽車等各種不同的設備上。還可以隨時用在手機上,但暫時華為手機端依然優先使用安卓。
鴻蒙 OS 底層由鴻蒙微內核、Linux 內核、Lite OS 組成,未來將發展為完全的鴻蒙微內核架構。
02.?自動駕駛自行車這個項目重新定義了自行車,這個項目的作者正式 B站 Up主 稚暉君。之前他搞過很多有意思的小項目,比如前段時間大火的迷你電視機就是出自他手。
這次,他閉關修煉了四個月,搞出來一個自動駕駛系統。不過這個自動駕駛系統不是用在電動汽車上的,而是自行車。這個項目算是這位 UP 最硬核的一個期了,整個自動駕駛系統研發過程斷斷續續花了四個月。
03.?金庸群俠傳 3D 重制版金庸群俠傳 3D 重制版是一個非盈利游戲項目,重制經典游戲《金庸群俠傳》并支持后續一系列 MOD 和二次開發。重置版是作者純粹為了興趣和學習在業余時間打磨出來的,最近作者比較忙,于是開源出來,希望感興趣的朋友一起開發。
項目作者也在B站發布了重置版的介紹視頻。視頻中可以看到,重置版畫質更精良,細節更生動。
04.?阿里云盤小白羊版這是作者基于阿里云盤網頁版開發的 PC 客戶端,已經實現了阿里云盤官方客戶端的基本功能。
05.?CS - Notes這個 repo 是技術面試必備基礎知識,包括算法、計算機操作系統、計算機網絡、系統設計等等。項目內容不是將網上的資料的隨意拼湊,除了少部分引用書上和技術文檔的原文,其余都是博主的原創。
05.?Spring Boot 相關漏洞學習資料本文是 Spring Boot 相關漏洞的學習資源,僅作為安全研究和授權測試使用。不要用于非法活動。這個項目從信息泄露、遠程代碼執行兩大方面,總結了 16 個案例,提供了詳細的步驟對提到的漏洞進行攻擊,同時還會闡述漏洞原理,進行漏洞分析。
比如下圖就是如何利用漏洞獲取被星號脫敏的密碼:
06.?阿里巴巴 MySQL binlog 增量訂閱&消費組件早期阿里巴巴因為杭州和美國雙機房部署,存在跨機房同步的業務需求,實現方式主要是基于業務 trigger 獲取增量變更。從 2010 年開始,業務逐步嘗試數據庫日志解析獲取增量變更進行同步,由此衍生出了大量的數據庫增量訂閱和消費業務。
08.?一鍵換臉
FaceSwap 是一種利用深度學習算法來換掉圖片和視頻中的人臉的工具。基于 Tensorflow、Keras 和 Python,Faceswap 可以在 Windows、macOS 和 Linux 上運行。安裝了這個應用,你就能在你電腦上通過可視化交互的方式構建自己的換臉模型了。
07.?用 Python 編寫的一些簡單的項目這個倉庫包含了用 Python 編寫的一些簡單的項目,包括全能媒體播放器、病毒掃描軟件、Bilibili 視頻一鍵下載工具。還有暴力破解壓縮密碼、密碼本、破解wifi密碼、調用WinRAR破解壓縮密碼、聚合搜索、批量重命名、各平臺熱榜等等。
10.?命令行的藝術命令行可以提高我們的工作效率、增加靈活性。該項目總結了在 Linux 上使用命令行時的相關技巧,內容覆蓋基礎使用、文件操作、數據處理等等。有專門針對 Windows 或 macOS 的部分,本教程既適合初學者,也適合經驗豐富的人,并附有具體的實戰例子幫助大家的理解。
Github常用詞含義
watch:會持續收到項目的動態
fork:復制某個項目到自己的倉庫
star:點贊數,表示對該項目表示認可,點贊數越多的項目一般越火
clone:將項目下載到本地
follow:關注你感興趣的作者,會收到他們的動態
一個完整的項目界面
① 此處是項目作者名/項目名
② 此處是項目的點贊數,和fock數,越火的項目點贊和fock就會越多
③ 項目的Description 和Website 和tags 也就是項目的說明和標簽, 通過此處你可以一眼了解該項目的功能和簡介
④ 項目的commits提交數 ,一般比較好的項目,維護會比較頻繁,更新也會頻繁,提交數就會多
⑤項目提交時間, 通過這里你可以看到項目的提交時間,防止自己下載了一些遠古項目
⑥ README.md README.md文件是一個項目的入門手冊,里面介紹了整個項目的使用、功能等等。所以README文件寫得好不好,關系到這個項目能不能更容易的被其他人了解和使用。
使用Github搜索項目
一般人用Github的步驟 直接搜索,選擇一下Languages 設置下項目排序順序 就直接下載
然后就是克隆倉庫,閱讀md,看項目源代碼,看不懂,關閉項目,刪除。
這樣是很難找到真正適合自己的項目的,
GitHub里面有很多有價值的開源項目和代碼,如何在海量的代碼庫中搜索我們需要的信息,那么接下來將帶你了解下如何利用GitHub強大的搜索功能,來找到適合自己的項目
GitHub的高級搜索
GitHub有高級搜索功能,search/advanced可以輸入關鍵字、代碼庫大小、包含作者、代碼語、代碼包含后綴文件名等。
這里我們假設正要學習 Spring Boot,要找一個 Spring Boot的 Demo 來進行參考學習。
精準搜索倉庫標題、倉庫描述、README
in關鍵詞限制搜索范圍
按照項目名/倉庫名搜索(大小寫不敏感)
(1)公式
in:name xxx 項目名包含xxx
in:description xxx 項目描述包含xxx
in:readme xxx 項目介紹文檔里含有xxx
比如我搜索項目名里含有 Spring Boot 的 in:name Spring Boot
會發現項目數量由17W變成了11W
搜索項目描述里含有 Spring Boot 的 in:description Spring Boot
stars或fork數量去查找
一個項目 star 數的多少,一般代表該項目的受歡迎程度 越受歡迎的項目,star數和fork數一定也不會少
(1)公式
stars:>xxx stars數大于xxx
stars:xx..xx stars數在xx…xx之間
forks:>xxx forks數大于xxx
forks:xx..xx forks數在xx…xx之間
查找star數大于等于5000的springboot項目
spring boot stars:>=5000
查找fork數大于500的springcloud項目
spring cloud forks:>500
查找fork在100到200之間并且stars數在80到100之間的springboot項目
spring boot forks:100..200 stars:80..100
我們進一步縮小范圍,Star數量過濾,要求Star數量大于3000
in:name spring boot starts :> 3000
可以看到只有一千多個項目供我們選擇了
按照地區和語言進行搜索
很多時候我們的項目是要用我們會的語言,你找到了一個Python寫的好項目,但是沒學過Python,下載了也看不懂,同時,為了更好的閱讀README.md幫助文檔以及項目注釋,我想很多同學都會想要下載中文的項目,當然英語頂呱呱的請忽略
(1)公式
location:地區
language:語言
語言為javaScript
language:javaScript
地區為china
`location: China
如果你要尋找使用 javascript 語言的國產項目,整個搜索條件就是:language:javascript location:china,從搜索結果來看,我們找到了五百多萬javascript 項目,近 21000 多名地區信息填寫為 China 的 javascript 開發者,
根據倉庫大小搜索
如果你只是想找一些小型的項目進行個人學習和開發,不想找特別復雜的,那么使用size關鍵字查找簡單的 Demo,就成了你的首選
(1)公式
size:>= 數字 【注意:100代表100Kb 單位為Kb】
根據倉庫是否在更新的搜索
尋找項目當然是想要找到最新的項目,而不是好久都沒有更新的老項目了,
(1)公式
pushed:> YYYY-MM-DD 最后上傳日期大于YYYY-MM-DD
created:> YYYY-MM-DD 創建日期大于YYYY-MM-DD
比如我們想要尋找2020年最新更新的項目,可以用 pushed:>2020-01-03 Spring Boot ,這樣子就可以找到今年一月份之后更新的最新項目
根據某個人或組織進行搜索
如果你想在GitHub 上找一下某個大神是不是提交了新的項目,可以對他們進行精準搜索
(1)公式
user: name 查找某個用戶
org: name 查找某個組織
followers:>=xxx 查找關注者數量超過xxx的開發者
比方說我們想要找一下廖雪峰老師的python開源項目
user:MichaelLiao language:python
根據倉庫的LICENSE搜索
License是很多人容易忽略的一個問題
開源項目的License(項目授權協議) 有的開源項目作者明確禁止商用了,但是你不知情下載了,并且使用了,這就會很麻煩,
“非常友好”的協議,比較出名的有這幾種:BSD、MPL(Mozilla)、Apache、MIT。這些協議不但允許項目的使用者使用開源庫,有些還允許對開源庫進行修改并重新分發。因此用起來特別爽。上述這幾個協議在細節上有些小差異,大伙兒可以去它們官網瞧一下。
以下這個網站,詳細介紹了各個License的區別。
http://choosealicense.com/licenses/
(1)公式
-license:對應協議
例如咱們要找協議是最為寬松的 Apache License 2 的代碼,
license:apache-2.0 Spring Boot
awesome加強搜索
Awesome 似乎已經成為不少 GitHub 項目喜愛的命名之一,Awesome 往往整合了大量的同一領域的資料,讓大家可以更好的學習。
(1)公式
awesome 關鍵字 awesome 系列一般是用來收集學習、工具、書籍類相關的項目
比如搜索優秀的python相關的項目,包括框架、教程等
awesome python
awesome-python,這個庫提供了各個領域常見的python庫支持。整體看下來,幾乎涵蓋了所有的常見的計算機領域,
熱門搜索(GitHub Trend 和 GitHub Topic)
GitHub Trend 頁面總結了每天/每周/每月周期的熱門 Repositories 和 Developers,你可以看到在某個周期處于熱門狀態的開發項目和開發者
GitHub Topic 展示了最新和最流行的討論主題,在這里你不僅能夠看到開發項目,還能看到更多非開發技術的討論主題,
很多Java程序員一直希望找到一份完整的學習路徑,但是市面上很多書都是專注某一個領域的,沒有一份完整的大圖,以至于很多程序員很迷茫,不知道自己到底應該從哪里開始學,或者不知道自己學習些什么。
已整理成了文檔版本
總結
以上是生活随笔為你收集整理的这个 拿去 用 这70个让你笑的合不拢嘴的GitHub项目,居然拿了7万星的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不可逆调速matlab,双闭环不可逆直流
- 下一篇: 在ubuntu的anaconda安装te