公告
網站新增了 Web 服務器排行榜、數據庫排行榜
《HelloGitHub》第 31 期
興趣是最好的老師,HelloGitHub 就是幫你找到興趣!

簡介
分享 GitHub 上有趣、入門級的開源項目。
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人群的月刊,月刊的內容包括:各種編程語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社區中。
- 會編程的可以貢獻代碼
- 不會編程的可以反饋使用這些工具中的 Bug
- 幫着宣傳你覺得優秀的項目
- Star 項目⭐️
在瀏覽、參與這些項目的過程中,你將學習到更多編程知識、提高編程技巧、找到編程的樂趣。
🎉 最后 HelloGitHub 這個項目就誕生了 🎉
以下為本期內容|每個月 28 號發布最新一期|點擊查看往期內容
C 項目
1、obs-studio:由 OBS 項目維護的免費開源流媒體和錄制程序。該程序支持 Windows 7、macOS 10.10、Ubuntu 14.04 操作系統。可用於直播和屏幕錄制,下載地址

2、Algorithms_C:各種基礎算法、數據結構的 C 語言實現。這個TheAlgorithms 開源組織的項目包含基礎算法的各種編程語言的示例代碼
C++ 項目
3、CppCon2018:CppCon 2018 幻燈片和資料
Go 項目
4、wxpay:Go 的微信支付 SDK。微信系的 SDK,填補 Go 在微信支付開發界的空白。支持刷卡支付、統一下單、查詢訂單、撤銷訂單、關閉訂單等。示例代碼如下:
// 創建支付賬戶
account1 := wxpay.NewAccount("appid", "mchid", "apiKey", false)
account2 := wxpay.NewAccount("appid", "mchid", "apiKey", false)
// 新建微信支付客戶端
client := wxpay.NewClient(account1)
// 設置證書
account.SetCertData("證書地址")
// 設置支付賬戶
client.setAccount(account2)
// 設置http請求超時時間
client.SetHttpConnectTimeoutMs(2000)
// 設置http讀取信息流超時時間
client.SetHttpReadTimeoutMs(1000)
// 更改簽名類型
client.SetSignType(HMACSHA256)
5、thunder:Facebook GraphQL 協議的 Go 語言版本。相比之前的其它 GraphQL 庫,通過反射結構體的 tag 可以自動生成 schema 給前端,更加便於開發。示例代碼:
// Friend is a small struct representing a person.
type Friend struct {
FirstName string
Last string `graphql:"lastName"` // use a custom name
Added time.Date `graphql:"-"` // don't expose over graphql
}
// FullName builds a friend's full name.
func (f *Friend) FullName() string {
return fmt.Sprintf("%s %s", f.FirstName, f.Last)
}
// registerFriend registers custom resolvers on the Friend type.
//
// Note: registerFriend wouldn't be necessary if the type only
// had the default struct field resolvers above.
func registerFriend(schema *schemabuilder.Schema) {
object := schema.Object("Friend", Friend{})
// fullName is a computed field on the Friend{} object.
object.FieldFunc("fullName", Friend.FullName)
}
6、wechat-go:微信網頁版 API 的 Go 實現。支持模擬微信網頁版的登錄、聯系人、消息收發、機器人回復等功能。示例代碼片段:
func main() {
// 創建session, 一個session對應一個機器人
// 二維碼顯示在終端上
session, err := wxweb.CreateSession(nil, nil, wxweb.TERMINAL_MODE)
if err != nil {
logs.Error(err)
return
}
// 注冊插件, 所有插件默認是開啟的
faceplusplus.Register(session)
replier.Register(session)
switcher.Register(session)
gifer.Register(session)
// 你也可以自己選擇關閉插件里的handler(消息處理器)
session.HandlerRegister.DisableByName("faceplusplus")
// 登錄並接收消息
if err := session.LoginAndServe(false); err != nil {
logs.Error("session exit, %s", err)
}
}
7、gitea:一個極易安裝、運行快速、安裝簡單、使用體驗良好的自建 Git 服務。采用 Go 作為后端語言,支持 Linux、 macOS、Windows 等,在線Demo。安裝步驟如下:
$ git clone https://github.com/go-gitea/gitea
$ cd gitea
$ TAGS="bindata" make generate all
$ ./gitea web
Java 項目
8、XChart:用於繪制數據的輕量級 Java 庫。示例代碼:
double[] xData = new double[] { 0.0, 1.0, 2.0 };
double[] yData = new double[] { 2.0, 1.0, 0.0 };
// Create Chart
XYChart chart = QuickChart.getChart("Sample Chart", "X", "Y", "y(x)", xData, yData);
// Show it
new SwingWrapper(chart).displayChart();
// Save it
BitmapEncoder.saveBitmap(chart, "./Sample_Chart", BitmapFormat.PNG);
// or save it in high-res
BitmapEncoder.saveBitmapWithDPI(chart, "./Sample_Chart_300_DPI", BitmapFormat.PNG, 300);

9、AndroidAutoSize:學習成本極低的 Android 屏幕適配方案,已被知名 APP 用於線上產品

10、MyPerf4J:一個針對高並發、低延遲應用設計的高性能 Java 性能監控和統計工具。特性:
- 高性能: 單線程支持每秒 1000 萬次 響應時間的記錄,每次記錄只花費 73 納秒
- 無侵入:采用 JavaAgent 方式,對應用程序完全無侵入,無需修改應用代碼
- 低內存:采用內存復用的方式,整個生命周期只產生極少的臨時對象,不影響應用程序的 GC
- 高精度:采用納秒來計算響應時間
- 高實時:支持秒級監控,最低 1 秒

JavaScript 項目
11、chrome-plugin-demo:Chrome 插件開發完整教程,可用來學習插件開發
12、TypeScript-React-Starter:由 Microsoft 創建,該項目詳細介紹了如何使用 TS 基於 create-react-app 創建 React 項目模版的步驟。TS 出現使得 JS 具有了強類型語言的嚴謹性,並且還保留了JS的靈活。React 是目前超火的前端框架,兩者的結合非常值得學習
13、d3:D3 的全稱是(Data-Driven Documents),該庫提供了各種簡單易用的函數,大大簡化了 JavaScript 操作數據的難度。該庫的使用是數據可視化必須掌握的技術,入門教程,示例 demo
14、33-js-concepts:該項目介紹了每個 Javascript 開發者應該知道的 33 個概念。列舉了 Javascript 中非常常見的 33 個概念,對於深入了解 Javascript 語言有很大的幫助。中文閱讀
Python 項目
15、awslogs:一個簡單的命令行工具,用於在本地查詢 Amazon CloudWatch 日志,強大的支持多實例日志匯總查看。簡單的查看命令:awslogs get /var/logs/syslog ALL -s1d

16、CUP:CUP 基礎庫是百度開源的 Python 語言基礎庫,致力將 DEV 從涉及底層操作、Util 操作類解放出來,使其更關注構建 service 上層業務邏輯。
目前已涵蓋了構建一個服務的各個方面,大家可以從基礎庫的代碼結構、wiki、doc 中進行簡單了解。
cup
|-- cache.py module 緩存相關模塊 ( Memory cache related module )
|-- decorators.py module python 修飾符,比如 @Singleton 單例模式 (Decorators of python)
|-- err.py module 異常 exception 類, Exception classes for CUP
|-- __init__.py module 默認__init__.py, Default __init__.py
|-- log.py module 打印日志類,CUP 的打印日志比較簡潔、規范,設置統一、簡單(cup logging module)
|-- mail.py module 發送郵件 ( CUP Email module (send emails))
|-- net package 網絡相關操作( Network operations, such as net handler parameter tuning )
|-- oper.py module 一些混雜操作(Mixin operations)
|-- platforms.py module 跨平台、平台相關操作函數(Cross-platform operations)
|-- res package 資源獲取、實時用量統計等,所有在 /prco 可獲得的系統資源、進程、設備等信息 ( Resource usage queries (in /proc)、Prcoess query、etc )
|-- shell package 命令 Shell 操作 pakcage ( Shell Operations、cross-hosts execution )
|-- services package 構建服務支持的類(比如心跳、線程池 based 執行器等等) Heartbeat、Threadpool based executors、file service、etc
|-- thirdp package 第三方依賴純 Py 模塊( Third-party modules:pexpect、httplib2 )
|-- timeplus.py module 時間相關的模塊(Time related module)
|-- unittest.py module 單元測試支持模塊( Unittest、assert、noseClass )
|-- util package 線程池、可打斷線程、語義豐富的配置文件支持( ThreadPool、Interruptable-Thread、Rich configuration、etc )
|-- version.py module 內部版本文件,CUP Version
17、supervisor:Python 開發的一個 C/S 服務,是 Linux/Unix 系統下的一個進程管理工具,不支持 Windows 系統。它可以很方便的監聽、啟動、停止、重啟一個或多個進程。用 Supervisor 管理的進程,當一個進程意外被殺死,supervisort 監聽到進程死后,會自動將它重新啟動,很方便的做到進程自動恢復的功能,提高系統、服務的穩定性,多用於生產環境
Swift 項目
18、gifski-app:Gifski這個開源程序可以將一系列圖片或一段視頻轉化為高質量的gif,高質量是這個程序最大的特色,下面我們將從使用與評價兩個方面來介紹這個程序。Gifski實際上適用於windows,mac以及linux三個平台,唯一不同的是,mac平台上的gifski內置了視頻分幀工具,因此可以直接把視頻拖入程序窗口即可生成gif,而其它平台上則只能使用第三方程序分幀后才能處理,並且要在命令行中運行

其它
19、zh-google-styleguide:Google 開源項目風格指南 (中文版)
20、README:該項目介紹了 GFM 的語法和示例展示。GitHub 的 Markdown 語法在標准的語法基礎上做了擴充,稱之為 GitHub Flavored Markdown,簡稱 GFM。友好的 README 是項目的第一印象,這點很重要
21、puppeteer-api-zh_CN:Puppeteer 中文文檔(與官方保持同步)
22、quick-SQL-cheatsheet:SQL 速查表,中文查閱
23、awesome-algorithm:Leetcode 題解及經典算法實現,實現語言包含 Python、Java、C++、JS
機器學習
24、nndl:《神經網絡與深度學習》該課程主要介紹神經網絡與深度學習中的基礎知識、主要模型(卷積神經網絡、遞歸神經網絡等)以及在計算機視覺、自然語言處理等領域的應用。在線閱讀
25、pwc:深度學習、機器學習論文集合(英文)
換種方式閱讀
- 網站: https://hellogithub.com
- GitBook: https://gitbook.hellogithub.com
聲明
如果你發現了好玩、有意義的開源項目 點擊這里 分享你覺得有意思的項目。
歡迎轉載,請注明出處和作者,同時保留聲明。
