興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
簡介
分享 GitHub 上有趣、入門級的開源專案。
這是一個面向程式設計新手、熱愛程式設計、對開源社群感興趣 人群的月刊,月刊的內容包括:各種程式語言的專案、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源專案大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社群中。
- 會程式設計的可以貢獻程式碼
- 不會程式設計的可以反饋使用這些工具中的 Bug
- 幫著宣傳你覺得優秀的專案
- Star 專案⭐️
在瀏覽、參與這些專案的過程中,你將學習到更多程式設計知識、提高程式設計技巧、找到程式設計的樂趣。
? 最後 HelloGitHub 這個專案就誕生了 ?
以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容
C# 專案
1、RemoteDesktopManage:基於 MSTSC 連線 Windows 遠端桌面,並對其進行封裝實現管理多個遠端桌面配置的小工具。更加方便地管理多個遠端桌面,實現同時遠端、互相切換。相當於把多個 MSTSC 集合在一個軟體裡,並進行分組打標試用
C++ 專案
2、tinytetris:一個用 C++ 編寫的終端版俄羅斯方塊遊戲。提供了兩個版本的原始碼,分為註釋版和庫版,註釋較多易於理解和學習
Go 專案
3、overlord:基於 Go 語言編寫的 memcache 和 redis&cluster 的代理及叢集管理平臺。致力於提供自動化高可用的快取服務解決方案。自帶圖形介面的快取叢集管理程式,安裝步驟
4、kratos:嗶哩嗶哩開源的一套 Go 微服務框架,包含大量微服務相關框架及工具。解決了 gin 在微服務場景下的一些適配和微服務本身的一系列生態,快速開始
5、docker-slim:自動縮減 docker 映象的體積的工具。大幅度縮減 docker 映象的體積,方便分發,使用命令 docker-slim build --http-probe your-name/your-app
。比如 Node.js 映象縮減後的對比:
from ubuntu:14.04 - 432MB => 14MB (縮減了 30.85 倍)
from debian:jessie - 406MB => 25.1MB (縮減了 16.21 倍)
from node:alpine - 66.7MB => 34.7MB (縮減了 1.92 倍)
複製程式碼
6、beam:eBay 開源的分散式圖資料庫,少數依然支援 SparQL 的圖資料庫
Java 專案
7、giffun:Android 端開源的 GIF 瀏覽和分享 App。該應用介面基於 Material Design 標準設計,圍繞 GIF 為主題,建立了一個小型的社交系統。支援:
- 檢視熱門搞笑的 GIF 圖
- 關注你喜歡的人,他的有趣分享盡收眼底
- 一鍵釋出你自己的 GIF 趣圖
- 對你感興趣的內容點贊、點評
- 喜歡的內容輕鬆轉發至主流社交軟體,傳遞你的快樂
8、cim:一款面向開發者的 IM 即時通訊系統。命令列通訊工具,對開發者友好。提供了一些元件讓開發者易於擴充套件和定製功能。架構圖如下:
9、SpringAll:Spring 系列原始碼教程,包含 Spring Boot、Spring Boot、Spring Cloud 等。Spring 是 Java 目前生命力最強的框架之一,通過資料與原始碼的配合,容易學習和上手
10、seata:一套一站式分散式事務解決方案。讓分散式事務的使用像本地事務的使用一樣,簡單和高效,並逐步解決開發者們遇到的分散式事務方面的所有難題。分散式事務提出了很多年,但是一直沒有很好的解決方案,要不就收費很貴。螞蟻金服開源的 seata,將讓分散式事務不在束之高閣,任何需要的人都可以使用它,推薦學習和使用。工作流程圖如下:
JavaScript 專案
11、xgplayer:由位元組跳動西瓜視訊開源的帶解析器、能節省流量的 HTML5 視訊播放器。可以作為 H5 元件、Vue、React 元件單獨使用。它根據元件化的原則設計了一個獨立的、可分離的 UI 元件。更重要的是,它不僅在 UI 層具有靈活性,而且在功能上也很大膽:它擺脫了視訊載入、緩衝和格式支援。在播放器端載入視訊、解析視訊、轉換格式,讓不支援分段播放的 MP4 動態支援,這樣就無須轉換源視訊的格式,伺服器端也無其他開銷。官網,示例程式碼:
// 安裝:$ npm install xgplayer
// 第一步:<div id="vs"></div>
// 第二步:
import Player from 'xgplayer';
const player = new Player({
id: 'vs',
url: 'http://s2.pstatp.com/cdn/expire-1-M/byted-player-videos/1.0.0/xgplayer-demo.mp4'
})
複製程式碼
12、zhui:這是一款國風的元件庫。好用的元件庫千千萬,有趣的創意萬里挑一
13、emoji-minesweeper:Emoji 符號的掃雷遊戲。程式碼很簡短,遊戲創意很酷。寥寥 300+ 行程式碼實現該遊戲,簡短易於初學者學習
14、squoosh:谷歌開源的圖片壓縮工具。在保證圖片質量的情況下快速壓縮圖片,支援多種圖片格式。6.63M 的圖片壓縮後為 2.92M,使用起來簡單方便
15、leetcode:更加貼近前端的資料結構與演算法的庫。以 leetcode 作為切入點,詳細講解關於資料結構的方方面面, 並以JavaScript 語言作為解題語言。 後期會加入更多關於前端貼合的內容, 比如:react fiber
的實現和連結串列、react hooks
的實現和陣列等等
- 第一部分:leetcode 經典題目的解析,包括思路、關鍵點和具體的程式碼實現
- 第二部分:對於資料結構與演算法的總結
- 第三部分:anki 卡片, 將 leetcode 題目按照一定的方式記錄在 anki 中,方便大家記憶
Python 專案
16、ffmpeg-python:FFmpeg 是一套可以用來記錄、轉換數字音訊、視訊,並能將其轉化為流的開源計算機程式。這個是其 Python 的庫,可以用該庫操作、處理視訊和音訊。示例程式碼:
# 水平翻轉視訊
import ffmpeg
stream = ffmpeg.input('input.mp4')
stream = ffmpeg.hflip(stream)
stream = ffmpeg.output(stream, 'output.mp4')
ffmpeg.run(stream)
複製程式碼
17、pyright:微軟出品的 Python 靜態型別檢查工具。執行速度快,適合大型 Python 專案,引用一句話:動態語言一時爽,重構火葬場
18、pyxel:基於 Python 程式設計程語言實現的復古遊戲引擎。示例程式碼:
# 程式碼中匯入 Pyxel 模組後
import pyxel
# 首先使用 init 函式指定視窗大小
pyxel.init(160, 120)
def update():
if pyxel.btnp(pyxel.KEY_Q):
pyxel.quit()
def draw():
pyxel.cls(0)
pyxel.rect(10, 10, 20, 20, 11)
# 最後然後使用 run 函式啟動 Pyxel 應用程式
pyxel.run(update, draw)
複製程式碼
Ruby 專案
19、githubchart-api:根據 GitHub 賬號的貢獻記錄生成對應影像。一行程式碼,可以在任何網站展示自己在 GitHub 上的貢獻活躍圖示。示例程式碼:
<img src="http://ghchart.rshah.org/使用者名稱" alt="Github commit chart" />
複製程式碼
20、guides:Ruby 程式設計風格指南。統一的格式風格有利於程式碼的維護和迭代,對於 Ruby 使用者而言幫助極大
Swift 專案
21、GodEye:一行程式碼自動顯示日誌、崩潰、網路、ANR、洩漏、CPU、資料夾等資訊,就像上帝睜開眼睛一樣
其它
22、CS-Notes:該專案整理、聚集了技術面試必備的基礎知識。省去了查詢資料的時間,同時也是一份很好的學習資料
23、zju-icicles:浙江大學各種課程相關資源集合。包含:課程、作業、答案、複習資料、選課攻略等,是浙大在校生的必備資源,對於有考研想法的小夥伴而言也是很好的資源
24、awesome-scalability:一個系統的閱讀列表,描述了可擴充套件、高可用、高效能的大型系統背後的東西。每部分都是基於真實案例,講述瞭如何搭建一個可擴充套件、高可用、高效能的大型系統,案例都是來自於經過數百萬甚至數十億使用者實戰檢驗的系統。對於所有工程師而言都是一個很好的學習資料,開卷有益
25、awesome-wechat-weapp:該專案收集了微信小程式開發過程中會使用到的資料、問題以及第三方元件庫。隨著微信小程式的市場越來越大,很多公司也專門以製作小程式為業,不論對感興趣的人還是想自己動手做小程式的人而言,這份合集省去了不少查詢資料的時間
26、REKCARC-TSC-UHT:清華大學計算機系課程相關資源集合。內容豐富,包含從大一到大四,跟著清華學子一起學習傳說中高校的課程吧
開源書籍
27、prometheus-book:《Prometheus 操作指南》,線上閱讀
28、the-craft-of-selfteaching:《自學是門手藝》一個程式設計入門者的自學心得。如今學習資源很多,對於初學者入門而言,最難的是如何自學,閱讀本書開啟程式設計自學大門吧
教程
29、nginx-quick-reference:該專案描述瞭如何提高 Nginx 的效能、安全性等方面的步驟,讓你的網站在 SSL Labs 的評級到達 A+
機器學習
30、openpose:基於卷積神經網路和監督學習的開源庫,可以實現人的面部、軀幹和四肢甚至手指的跟蹤。適用於多人,且標記準確,同時具有較好的魯棒性
31、FaceDetection-DSFD:騰訊優圖的雙分支人臉檢測器全新演算法,該演算法已經被計算機視覺頂級會議 CVPR 2019 接收。優圖此次提出的 DSFD 人臉檢測演算法,主要有 3 點創新:
- 新的特徵增強模組(FEM:Feature Enhance Module)
- 分層錨點漸進式的代價函式監督(PLA:Progressive Anchor Loss)
- 改進的錨點匹配策略(Improved Anchor Matching Strategy)
32、SPADE:英偉達(NVIDIA)新開源的繪圖工具。利用生成對抗網路,根據幾根簡單的線條就能生成栩栩如生的影像
33、LearningToPaint:一個深度強化學習專案,研究如何讓機器用畫筆畫畫。也可體驗製作自己的繪畫或根據一張圖片生成一整個繪畫過程
換種方式閱讀
- 網站: hellogithub.com
- GitBook: gitbook.hellogithub.com
宣告
如果你發現了好玩、有意義的開源專案 點選這裡 分享你覺得有意思的專案。
歡迎轉載,請註明出處和作者,同時保留宣告。