《HelloGitHub》第 31 期

公告

網站新增了 Web 服務器排行榜數據庫排行榜javascript

《HelloGitHub》第 31 期

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

簡介

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

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

  • 會編程的能夠貢獻代碼
  • 不會編程的能夠反饋使用這些工具中的 Bug
  • 幫着宣傳你以爲優秀的項目
  • Star 項目⭐️

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

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


如下爲本期內容|每月 28 號發佈最新一期|點擊查看往期內容linux

C 項目

一、obs-studio:由 OBS 項目維護的免費開源流媒體和錄製程序。該程序支持 Windows 七、macOS 10.十、Ubuntu 14.04 操做系統。可用於直播和屏幕錄製,下載地址git

二、Algorithms_C:各類基礎算法、數據結構的 C 語言實現。這個TheAlgorithms 開源組織的項目包含基礎算法的各類編程語言的示例代碼github

C++ 項目

三、CppCon2018:CppCon 2018 幻燈片和資料web

Go 項目

四、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)

五、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)
}

六、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)
    }
}

七、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 項目

八、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);

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

十、MyPerf4J:一個針對高併發、低延遲應用設計的高性能 Java 性能監控和統計工具。特性:

  • 高性能: 單線程支持每秒 1000 萬次 響應時間的記錄,每次記錄只花費 73 納秒
  • 無侵入:採用 JavaAgent 方式,對應用程序徹底無侵入,無需修改應用代碼
  • 低內存:採用內存複用的方式,整個生命週期只產生極少的臨時對象,不影響應用程序的 GC
  • 高精度:採用納秒來計算響應時間
  • 高實時:支持秒級監控,最低 1 秒

JavaScript 項目

十一、chrome-plugin-demo:Chrome 插件開發完整教程,可用來學習插件開發

十二、TypeScript-React-Starter:由 Microsoft 建立,該項目詳細介紹瞭如何使用 TS 基於 create-react-app 建立 React 項目模版的步驟。TS 出現使得 JS 具備了強類型語言的嚴謹性,而且還保留了JS的靈活。React 是目前超火的前端框架,二者的結合很是值得學習

1三、d3:D3 的全稱是(Data-Driven Documents),該庫提供了各類簡單易用的函數,大大簡化了 JavaScript 操做數據的難度。該庫的使用是數據可視化必須掌握的技術,入門教程示例 demo

1四、33-js-concepts:該項目介紹了每一個 Javascript 開發者應該知道的 33 個概念。列舉了 Javascript 中很是常見的 33 個概念,對於深刻了解 Javascript 語言有很大的幫助。中文閱讀

Python 項目

1五、awslogs:一個簡單的命令行工具,用於在本地查詢 Amazon CloudWatch 日誌,強大的支持多實例日誌彙總查看。簡單的查看命令:awslogs get /var/logs/syslog ALL -s1d

1六、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 的打印日誌比較簡潔、規範,設置統1、簡單(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

1七、supervisor:Python 開發的一個 C/S 服務,是 Linux/Unix 系統下的一個進程管理工具,不支持 Windows 系統。它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用 Supervisor 管理的進程,當一個進程意外被殺死,supervisort 監聽到進程死後,會自動將它從新啓動,很方便的作到進程自動恢復的功能,提升系統、服務的穩定性,多用於生產環境

Swift 項目

1八、gifski-app:Gifski這個開源程序能夠將一系列圖片或一段視頻轉化爲高質量的gif,高質量是這個程序最大的特點,下面咱們將從使用與評價兩個方面來介紹這個程序。Gifski實際上適用於windows,mac以及linux三個平臺,惟一不一樣的是,mac平臺上的gifski內置了視頻分幀工具,所以能夠直接把視頻拖入程序窗口便可生成gif,而其它平臺上則只能使用第三方程序分幀後才能處理,而且要在命令行中運行

其它

1九、zh-google-styleguide:Google 開源項目風格指南 (中文版)

20、README:該項目介紹了 GFM 的語法和示例展現。GitHub 的 Markdown 語法在標準的語法基礎上作了擴充,稱之爲 GitHub Flavored Markdown,簡稱 GFM。友好的 README 是項目的第一印象,這點很重要

2一、puppeteer-api-zh_CN:Puppeteer 中文文檔(與官方保持同步)

2二、quick-SQL-cheatsheet:SQL 速查表,中文查閱

2三、awesome-algorithm:Leetcode 題解及經典算法實現,實現語言包含 Python、Java、C++、JS

機器學習

2四、nndl:《神經網絡與深度學習》該課程主要介紹神經網絡與深度學習中的基礎知識、主要模型(卷積神經網絡、遞歸神經網絡等)以及在計算機視覺、天然語言處理等領域的應用。在線閱讀

2五、pwc:深度學習、機器學習論文集合(英文)


換種方式閱讀

  • 網站: https://hellogithub.com
  • GitBook: https://gitbook.hellogithub.com

聲明

若是你發現了好玩、有意義的開源項目 點擊這裏 分享你以爲有意思的項目。

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

相關文章
相關標籤/搜索