興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
簡介
分享 GitHub 上有趣、入門級的開源專案。
這是一個面向程式設計新手、熱愛程式設計、對開源社群感興趣 人群的月刊,月刊的內容包括:各種程式語言的專案、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源專案大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社群中。
- 會程式設計的可以貢獻程式碼
- 不會程式設計的可以反饋使用這些工具中的 Bug
- 幫著宣傳你覺得優秀的專案
- Star 專案⭐️
在瀏覽、參與這些專案的過程中,你將學習到更多程式設計知識、提高程式設計技巧、找到程式設計的樂趣。
? 最後 HelloGitHub 這個專案就誕生了 ?
以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容
C++ 專案
1、Terminal:微軟開源的一個全新、現代、功能豐富、高效的 Windows 終端應用程式。它支援 Windows 命令列社群最常用的許多命令,還支援選項卡、富文字、全球化、可配置性、主題和樣式等功能。一直以來 Windows 不被開發者青睞的原因之一就是終端不好用,現在有了這個我都想買個 Windows 系統的電腦了(確定不是打遊戲?)
Go 專案
2、golang-developer-roadmap:成為 Go 開發者的學習路線圖,中文版
3、scheduler:Go 語言實現的作業排程工具包。適用於需要任務排程的場景,能夠讓初學者學到 time、reflect 等標準庫的用法,中文文件
4、nic:一個易用的 HTTP Request 包。它封裝了 Go 的 HTTP 標準庫,提供了簡潔優雅的 API。可以更輕鬆的傳送HTTP 請求,解決了 Go 標準庫自定義 HTTP 請求,操作 headers、cookies 時繁瑣的步驟。類似於 Python 的 Requests 和 urllib 的區別。示例程式碼:
resp, err := nic.Get("http://example.com", nil)
if err != nil {
log.Fatal(err.Error())
}
fmt.Println(resp.Text)
5、redis-tui:炫酷的 redis 命令列圖形介面工具
6、gameboy.live:Gameboy 模擬器,還可以通過 socket 遠端玩
# 下載
git clone https://github.com/HFO4/gameboy.live.git
# 執行
cd gameboy.live
go build -o gbdotlive main.go
# 命令說明
Usage of gbdotlive:
-G Play specific game in Fyne GUI mode # 用 Fyne GUI 模式玩遊戲,會彈出一個視窗
-c config # 配置檔案路徑
Set the game option list config file path
-d Use Debugger in GUI mode # GUI 的 debug 模式
-f FPS
Set the FPS in GUI mode (default 60) # FPS 設定
-g Play specific game in GUI mode (default true) # 是否預設啟動 GUI
-h This help # 顯示幫助
-m Turn on sound in GUI mode (default true) # GUI 模式下是否有聲音
-p port
Set the port for the cloud-gaming server (default 1989) # 預設監聽埠,可以用 Telnet 玩
-r ROM # 遊戲 ROM 的路徑
Set ROM file path to be played in GUI mode
-s Start a cloud-gaming server # 啟動伺服器,用 Telnet 玩
7、CovenantSQL:具有區塊鏈特性的去中心化 SQL 關係型資料庫。可以提供 DBaaS 服務,去中心化儲存保證使用者隱私。中文文件,MacOS 系統可以通過 brew install cql
直接安裝
8、diving:基於 dive 分析 docker 映象,介面化展示了映象每層的變動(增加、修改、刪除等)、使用者層資料大小等資訊。便捷獲取映象資訊和每層映象內容的檔案樹,可以方便地瀏覽映象資訊。對於需要優化映象體積時非常方便
Java 專案
9、rhizobia_J:陌陌開源的 Java 安全編碼規範和 SDK
10、generator-jhipster:用於在幾秒鐘內建立 Spring Boot + Angular/React 專案的開源應用程式生成器(腳手架)。它可以自動化生成一個完整 Web 應用或微服務架構,加快專案的開發效率。特點和技術棧:
- 基於 Spring Boot 框架的服務端,具備高效能和高可用的 Java 技術棧
- 基於 Angular、React、Bootstrap 的時尚、現代、移動優先的前端
- 基於 JHipster Registry、Netflix OSS、ELK 堆疊和 Docker 的強大的微服務架構
- 使用 Yeoman、Webpack 和 Maven/Gradle 構建應用程式的強大工作流程
11、Gloading:深度解耦的 Android 載入元件,特點:
- 深度解耦 App 中全域性載入中、載入失敗及空資料檢視
- 分離全域性載入狀態檢視的實現和使用
- 不需要在每個頁面的佈局檔案中額外新增載入狀態檢視
- 可用於 Activity,也可用於為某個 View 顯示載入狀態等
Gloading.initDefault(new GlobalAdapter());
Gloading.Holder holder = Gloading.getDefault().wrap(activity).withRetry(retryTask);
Gloading.Holder holder = Gloading.getDefault().wrap(view).withRetry(retryTask);
//顯示載入中的UI狀態
holder.showLoading()
//顯示載入成功的UI狀態
holder.showLoadSuccess()
//顯示載入失敗的UI狀態
holder.showFailed()
//顯示載入成功,但資料未空的UI狀態
holder.showEmpty()
12、Android-BLE:Android 藍芽框架,包括掃描、連線、設定通知、傳送資料、讀取、接收資料和 OTA 升級等。近乎一行程式碼植入專案,可擴充套件、配置藍芽相關操作,適用於 Android-BLE4.0 藍芽。即便是 BLE 方面的小白也可以在短短几分鐘內接入並運用到專案中
JavaScript 專案
13、practice:使用當下流行的多種不同前端技術棧,實現不同專案的詳細教程,教你如何快速上手這些技術。雖然專案名稱叫做 Practice
但是內容為當前前端最火的框架實踐,而且符合生產環境下的開發流程規範,推薦學習
14、ieaseMusic:基於網易雲音樂 API 開發的第三方客戶端,支援 Linux、Mac OS 系統。成熟的 JS 桌面應用產品,顏值很高,音樂資源豐富
15、ts-utility-plugins:使用原生 TS 構建特效、外掛、業務的實踐教程專案。脫離各種框架實現原生的特效以及外掛
PHP 專案
16、PHP-Interview-QA:《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網路協議、資料結構與演算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分
17、wizard:一款基於 Laravel 開發框架的開源文件管理系統。目前已經在多家公司部署使用,支援:Markdown、Swagger 文件管理,公司內部的統一身份認證系統(LDAP)等功能
Python 專案
18、PySnooper:Python 的第三方除錯庫。讓你通過裝飾器方法,方便的知道每一行程式執行後的結果,而不需要再手動增加 print
展示過程資料、除錯程式。示例程式碼:
import pysnooper
@pysnooper.snoop()
def number_to_bits(number):
if number:
bits = []
while number:
number, remainder = divmod(number, 2)
bits.insert(0, remainder)
return bits
else:
return [0]
number_to_bits(6)
# 輸出如下
Starting var:.. number = 6
15:29:11.327032 call 4 def number_to_bits(number):
15:29:11.327032 line 5 if number:
15:29:11.327032 line 6 bits = []
New var:....... bits = []
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
....
19、Python-100-Days:《Python 100 天從新手到大師》—— Python 的入門學習資料,學習曲線低。非專業人士也能上手學習,適合新手入門
20、Zvm:一款用 Python 實現的簡易 JVM。實現功能如下:class 檔案解析、類載入、執行時資料區、指令直譯器、基本指令集、簡易 GC、簡易執行緒、簡易 JDK 庫,可以執行基本的 Java class 檔案。程式碼量少,模組清晰,適合用來學習 JVM 的基本結構和實現
21、city-vein:用公交路線資料,還原城市結構。通過資料視覺化手段,還原了 30 多個城市的城市結構。該專案中有資料獲取和處理的指令碼,而且該專案充分體現了資料視覺化帶來的便利和效果,易於激發學習程式設計的熱情。線上瀏覽
Ruby 專案
22、huginn:基於 Ruby 開發的自動化處理任務工具。可以監控事物然後根據編寫好的邏輯進行處理(IFTTT),比如:監控天氣然後通過微信提醒你帶傘、追的小說或者動漫更新通知、聚合資訊傳送等。它框架穩定、生態活躍,有了它從而讓你的生活更加有效率,快去試試吧
Swift 專案
23、Brooklyn:炫酷的蘋果電腦螢幕保護程式
24、PopMenu:一款簡單、漂亮、方便、靈活自定義的彈出選單元件。如果你的 App 需要一款靈活好看的彈出選單的話,那麼 PopMenu 值得你一試
其它
25、commit-messages-guide:Git 提交描述(commit)的編寫指南,中文
26、weekly:《阿里雲前端技術週刊》
27、algo:必知必會的資料結構和演算法程式碼答案(多種程式語言)
28、vim-bootstrap:一個簡單、易用的 .vimrc
配置檔案生成工具,也可通過網站點選生成。支援 Vim、NeoVim、NeoVim-Qt、MacVim 和 GVim。特點:
- 輕量:包含少且必要的外掛
- 易用:適合在vim中成功存活的入門者
- 易於定製:只需選擇使用的語言,即可獲得對應配置
- 先進的外掛管理器:使用 Vim-Plug 管理外掛,簡單易用、速度快
- 支援多種程式語言
29、hacker-laws:程式設計師工作中可能使用到的定律、原則的講解,這些原則多應用於我們的開發和設計中,開卷有益
教程
30、vscode-extension-samples:官方 VS Code 開發擴充套件外掛的程式碼例項集合
31、3d-game-shaders-for-beginners:有關如何為 3D 遊戲實施 SSAO、景深、照明、法線貼圖等效果的教程。包含示例程式碼(C++)與 Demo,更便於理解和學習
機器學習
32、bentoml:一個機器學習工具用來打包和釋出模型。幫助資料科學家用不到 5 分鐘把在 ipython notebook 裡的模型釋出到生產環境
%%writefile iris_classifier.py
from bentoml import BentoService, api, env, artifacts
from bentoml.artifact import PickleArtifact
from bentoml.handlers import DataframeHandler
# You can also import your own python module here and BentoML will automatically
# figure out the dependency chain and package all those python modules
@artifacts([PickleArtifact('model')])
@env(conda_pip_dependencies=["scikit-learn"])
class IrisClassifier(BentoService):
@api(DataframeHandler)
def predict(self, df):
# arbitrary preprocessing or feature fetching code can be placed here
return self.artifacts.model.predict(df)
33、stanford-cs-229-machine-learning:史丹佛 CS229 教程講義文件,該文件內容細緻、條理清晰,方便入門者作為讀書筆記學習。中文版
34、mlcourse.ai:一套機器學習課程。課程全面細緻,同時帶有 demo 以及進階的 Kaggle 比賽的樣例,非常適合初學者逐步的深入學習
35、lihang-code:機器學習領域經典書籍《統計學習方法》的課件和程式碼。這個專案提供了課件、程式碼資源,敘述從具體問題或例項入手,由淺入深,闡明思路,給出必要的數學推導,便於讀者掌握統計學習方法的實質,學會運用
36、maskrcnn-benchmark:Facebook 開源的 PyTorch 版本的 Mask-RCNN。研究人員可以按照教程、示例程式碼逐步進行實現
換種方式閱讀
- 網站: https://hellogithub.com
- GitBook: https://gitbook.hellogithub.com
宣告
如果你發現了好玩、有意義的開源專案 點選這裡 分享你覺得有意思的專案。
歡迎轉載,請註明出處和作者,同時保留宣告。