《HelloGitHub》第 31 期


公告

網站新增了 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:深度學習、機器學習論文集合(英文)


換種方式閱讀

聲明

如果你發現了好玩、有意義的開源項目 點擊這里 分享你覺得有意思的項目。

歡迎轉載,請注明出處和作者,同時保留聲明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM