《HelloGitHub》第 53 期

興趣是最好的老師,HelloGitHub 就是幫你找到興趣!

簡介

分享 GitHub 上有趣、入門級的開源項目。

這是一個面向編程新手熱愛編程對開源社區感興趣 人群的月刊,月刊的內容包括:各種程式語言的項目讓生活變得更美好的工具書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社區中。

  • 會編程的可以貢獻程式碼
  • 不會編程的可以回饋使用這些工具中的 Bug
  • 幫著宣傳你覺得優秀的項目
  • Star 項目⭐️

在瀏覽、參與這些項目的過程中,你將學習到更多編程知識提高編程技巧找到編程的樂趣

🎉 最後 HelloGitHub 這個項目就誕生了 🎉


以下為本期內容|每個月 28 號發布最新一期|點擊查看往期內容

C 項目

1、baulk:一個用 C 編寫的極簡 Windows 包管理器。易於使用、免安裝、不修改系統環境變數,能夠和 Windows Terminal 集成、添加到右鍵菜單。可以說是一個精簡版的 Scoop

2、LCUI:一個使用 C 開發的圖形介面開發庫。可藉助 XML 和 CSS 構建簡單的跨平台桌面應用,提供與網頁類似的開發體驗。因此,你可以使用它輕鬆做出十分漂亮的介面。與 Electron 不同,它只是一個應用了部分 Web 技術的傳統 GUI 開發庫

C# 項目

3、Windows-Auto-Night-Mode:設置定時自動切換 Windows 10 深色和淺色主題的工具

C++ 項目

4、flameshot:操作簡單、功能強大的截圖工具

CSS 項目

5、css-sweeper:一個只用 HTML 和 CSS 實現的掃雷遊戲。在線試玩

6、papercss:手繪風格的 CSS 庫

Go 項目

7、go-internals:關於 Go 程式設計語言內部實現原理的講解。中文翻譯

8、livego:基於 Go 實現的直播服務項目

9、LeetCode-Go:《LeetCode Cookbook》是幫助開發者在 LeetCode 上做題,提供解題思路和程式碼的項目。目前已經收錄了 500+ 道題的題解和程式碼,程式碼都是 runtime beats 100%,程式碼全部都是用 Go 語言實現。在線閱讀

10、ginrpc:簡化 go-gin 框架註冊路由方式,自動生成 Swagger/Markdown 文檔。示例程式碼:

type ReqTest struct {
	UserName    string `json:"user_name" binding:"required"` // 帶校驗方式
}

type Hello struct {
}

// Hello [grpc-go](//github.com/grpc/grpc-go) 模式
// @Router /hello_ruter [post,get]
func (s *Hello) Hello(c *gin.Context, req ReqTest) (*ReqTest, error) {
	fmt.Println(req)
	return &req,nil
}

func main() {
	base := ginrpc.New(ginrpc.WithGroup("xxjwxc"))
	router := gin.Default()
	base.Register(router, new(Hello)) // 對象註冊 like(go-micro)
	router.Run(":8080")
}

Java 項目

11、D8gerAutoCode:IDEA Java 程式碼自動生成插件。支援自動生成單表增刪改查、分頁、注釋等

12、java8-tutorial:手把手教你 Java8 的語言特性。項目中還更新了 Java11 的新特性

13、CalendarView:一個優雅強大的 Android 日曆控制項,支援周視圖、自定義周起始等功能

14、tutorials:該項目是 Spring 框架下的小型、單一功能的教程和示例程式碼集合。主要是 Spring、Spring Boot、Spring Security 等方面

JavaScript 項目

15、remote-browser:實現用 JavaScript 語言控制 Chrome 和 Firefox 瀏覽器的庫。可輕鬆實現自動化測試、抓取數據等功能

16、MazeBattles.com:使用 Node.js 和 Socket.io 實現的在線迷宮遊戲。入口在左上角出口在右下角,通過 [a][w][s][d] 按鍵移動位置。支援多人和單人兩種模式,點擊 「Show Solution」 可展示迷宮的解(BFS 演算法實現)。在線試玩

17、jizhi:中國風新標籤頁的 Chrome/Firefox 插件。它將在新標籤頁上展示中國傳統色的層疊波浪動畫效果,搭配經典詩詞

18、star-history:展示 GitHub 項目 Star 歷史的在線工具。支援多個項目展示在同一個圖表上,效果如下圖:

19、genal-chat:適合前端新手學習的『星空』聊天室項目。採用 Vue + socket.io 結合 TypeScript 語法構建,介面炫酷、良好的程式碼規範、支援群聊和好友搜索等功能

Python 項目

20、handcalcs:通過簡單的 Python 程式碼,生成複雜公式的工具。還記得寫論文推算演算法的時候,被一行行公式支配的恐懼嗎?該庫可以將 Python 寫的公式,展示為 LaTeX 格式,效果如下:

21、QuickCut:一款輕量、好用的開源影片處理工具。它是基於 PyQt5 開發的桌面工具,用於滿足非專業用戶的影片處理需求:壓縮影片、轉碼影片、倒放影片、合併片段、根據字幕裁切片段、自動配字幕、自動剪輯等

22、altair:強大的數據可視化 Python 庫。支援多種數據展示方式、介面簡單、效果炫酷,示例程式碼和效果如下:

import altair as alt
from vega_datasets import data

source = data.cars()
brush = alt.selection(type='interval')
points = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.condition(brush, 'Origin', alt.value('lightgray'))
).add_selection(
    brush
)

bars = alt.Chart(source).mark_bar().encode(
    y='Origin',
    color='Origin',
    x='count(Origin)'
).transform_filter(
    brush
)

points & bars

23、butterfly:又一個輕量級的 Python Web 框架。Web 框架太多了,該項目主旨是通過開發一個輕量級、可靠可用的 Web 框架,來更加深入理解 Web 開發過程中經常忽略(框架做的)但又十分重要的知識點。那句話咋說來的:我不做一遍,我就不算懂!架構圖如下:

Swift 項目

24、lottie-ios:Airbnb 開源的快速實現 APP 動畫的三方庫。還有支援 AndroidReact NativeWebWindows 等平台,動畫效果如下:

25、YLExtensions:它解決了 UITableView 及 UICollectionView 註冊和配置過程不得不寫很多重複程式碼的問題

其它

26、math-as-code:這是一份通過對比數學符號和 JavaScript 程式碼來幫助開發者更容易了解數學符號的項目

27、PowerToys:微軟開源的 Windows 系統下強大的輔助工具。比如:窗口管理、批量圖片處理、改鍵工具等,下圖是螢幕顏色選擇工具

28、first-contributions:手把手教你如何在 GitHub 第一次貢獻程式碼的教程。支援多種語言,中文

29、leek-fund:在 VSCode 中看股票和基金實時數據的插件

30、Algorithms-in-4-Steps:系統性學習演算法與數據結構的資料集合

開源書籍

31、BuildYourOwnLisp:該書教你用 C 語言實現自己的 Lisp 語言。用 1000 多行實現一個小但功能齊全的 Lisp 語言,這裡有份中文翻譯版本,但是沒有翻譯完點擊閱讀

機器學習

32、waifu2x:基於機器學習把圖片、照片變得高清。該項目使用卷積神經網路對圖片進行 1-2 倍的無損放大操作,支援降噪保證圖片品質。在線嘗試

33、Never-Blink:誰先眨眼誰就輸了的遊戲。使用 React + Flask + Dlib 技術實現的「眨眼就輸了」在線遊戲,雖然是個 demo 級別的項目,但是很有意思可以在本地運行起來找朋友一起玩一下

34、cnn-convoluter:一個支援交互的展示卷積過程的可視化工具


最後

如果你發現了 GitHub 上有趣的項目,歡迎在 HelloGitHub 項目提 issues 告訴我們。

歡迎關注 HelloGitHub 公眾號