《HelloGitHub》第 53 期

削微寒發表於2020-08-28

興趣是最好的老師,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](https://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 公眾號

相關文章