《HelloGitHub》第 52 期

削微寒發表於2020-07-28

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

簡介

分享 GitHub 上有趣、入門級的開源專案。

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

  • 會程式設計的可以貢獻程式碼
  • 不會程式設計的可以反饋使用這些工具中的 Bug
  • 幫著宣傳你覺得優秀的專案
  • Star 專案⭐️

在瀏覽、參與這些專案的過程中,你將學習到更多程式設計知識提高程式設計技巧找到程式設計的樂趣

? 最後 HelloGitHub 這個專案就誕生了 ?


以下為本期內容|每個月 28 號釋出最新一期|點選檢視往期內容

C 專案

1、SimpleKernel:一個用來練手的簡單核心專案。提供了各個階段完成度不同的核心,可以選擇從自己喜歡的地方開始

2、raspberry-pi-os:基於樹莓派的作業系統開發教程(還未完結)。你的樹莓派在吃灰嗎?把它插上電用來學習開發作業系統吧

C# 專案

3、perfview:微軟開源的效能分析工具。配套的教程視訊

C++ 專案

4、GuiLite:引用方便的 C++ 全平臺 GUI 庫。能夠使用在 PC 端、移動裝置、物聯網裝置甚至是沒有作業系統的微控制器,還支援多種開發語言和三方庫

5、html-plus-plus:這個庫讓你可以使用 C++ 模板編寫 HTML。HTML 文件被表示為一個單一的、深層巢狀的型別,相當於 HTML 的模版引擎。程式碼簡單可供新手學習和使用,示例程式碼:

#include <iostream>
#include "html++.h"

int main()
{
  html<
    head<
      title<"Help Me.">
    >,
    body<
      h1<"The horror!">,
      p<"Someone has probably done this before, but I can see why it didn't catch on.">,
      a<"href=https://github.com/csb6/html-plus-plus", "For science">
    >
  > page;

  std::cout << page.content;
  return 0;
}

Go 專案

6、gotty:能夠把終端執行的命令展示到網頁上的工具。安裝和執行命令如下:

安裝:go get github.com/yudai/gotty
執行:gotty [options] <command> [<arguments...>]

7、algo:Golang 程式設計師面試中的問題和解答集合。該專案目前完成了大部分的資料結構和演算法部分,準備相關面試的小夥伴可以閱讀學習起來了

8、logrus:可能是 Go 目前最受歡迎的第三方日誌庫。日誌首先要能讓人看懂,其次是程式易於處理日誌包含的內容,logrus 也許能讓你輕鬆快速實現上述兩點

9、websocket:Go 的 websocket 三方庫。看看它和標準庫的對比,你就知道為什麼它會出現在本期月刊中了

Java 專案

10、FlappyBird:Java 標準庫實現的 Flappy Bird。優化了遊戲難度並加入移動型水管,增加可玩性。沒有采用第三方庫和遊戲引擎、專案結構簡單、程式碼註釋完整,適合 Java 初學者做為程式設計入門實戰專案

11、metersphere:一站式的開源企業級持續測試平臺。適應場景包括:測試跟蹤、介面測試、效能測試等,相容 JMeter 等開源標準,能夠幫助開發和測試團隊充分利用雲彈性進行高度可擴充套件的自動化測試。測試同學的福音

12、incubator-iotdb:清華大學軟體學院自主研發並開源的時間序列資料管理引擎。能夠有效應對工業物聯網領域時間序列數量多、寫入頻率高、資料亂序到達、秒級聚合等場景。官方網站有系統設計文件和使用手冊,作為初學者,可以系統的學習資料庫系統的完整設計和實現。在 IoTDB 社群可以與國內使用者直接交流、收集需求、設計功能、效能優化,每個改進點都可以看到直接效果。還可以體驗 Apache 開源軟體的工作模式,與世界各地的開發者交流想法,也有機會成為 Apache Committer、PMC 等

13、MyBookshelf:免費開源的安卓小說閱讀軟體,能夠自定義訂閱小說資料來源。支援:

  • 全域性狀態列沉浸
  • 自定義多執行緒搜尋、快取
  • 支援一鍵快取
  • 點選章節名跳轉小說目錄
  • 自定義字型、閱讀背景、文字顏色、背景顏色
  • 等等

14、QMUI_Android:用於輔助快速搭建一個具備基本還原設計效果的 Android 專案。快速搭建一個 Demo App 的必備利器,官網還提供示例 App 下載,感興趣的小夥伴快去試試吧

JavaScript 專案

15、chrome-extensions-searchReplace:一款搜尋並且替換文字的谷歌外掛。在做產品 PPT 的時候,需要對某些個頁面中的一些名詞進行統一替換,這個外掛就是為了解決這個問題而誕生的。同時作者也是調研了其他類似功能的外掛,它們都包含或多或少的問題,最終作者自己動手做了這個專案。可以說這款替換外掛應該就是你最終的選擇了

16、apidoc:根據程式碼中的註釋生成 RESTful 風格的 API 文件。註釋示例:

/**
 * @api {get} /user/:id Request User information
 * @apiName GetUser
 * @apiGroup User
 *
 * @apiParam {Number} id User's unique ID.
 *
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

17、mongo-express:使用 Node.js、Express 和 Bootstrap3 編寫的 MongoDB 管理平臺

18、Zettlr:開源免費支援多種作業系統的 Markdown 編輯器。如果你想嘗試一款新的 Markdown 編輯器,它或許能滿足你對編輯器所有想法,如果還不夠那就自己動手增加吧

19、leetcode-cli:LeetCode 的命令列工具。之前我們推薦過命令列鬥地主、划水逛社群等,真正努力的人用命令列來刷演算法題!我顫抖了

Objective-C 專案

20、Zebra:用於越獄的 iOS 裝置的軟體包管理器

Python 專案

21、ar-cutpaste:AR 拷貝實物照片到 PS 軟體的工具。它可以通過 iPhone 或者 Android 手機將真實物品從周圍環境中摳出來,並貼上到 Photoshop 中,未來還會支援其它軟體

22、ncmdump:網易雲音樂下載的 NCM 檔案轉化工具

23、nginx-ui:線上修改 Nginx 配置的服務。總的來說還是能減少修改配置出錯的概率,而且不用面對漆黑枯燥的命令列了

24、python-dotenv:幫你更好的管理 Python 專案中敏感配置資訊的開源三方庫。在專案中會有一些資料庫、賬戶、KEY 等敏感資訊,這些資訊最好不要寫在原始碼中。為了降低洩漏風險,一般會通過環境變數來設定,這個庫可以很方便幫你在 Python 專案中管理這些資訊。示例程式碼:

# 安裝:pip install -U python-dotenv
# 目錄結構:
.
├── .env
└── settings.py
# 示例程式碼
# settings.py
import os
from dotenv import load_dotenv
load_dotenv()

SECRET_KEY = os.getenv("EMAIL")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")

其它

25、analytics:一個開源的輕量級 Web 訪問分析工具。如果你不想侵犯使用者的隱私,只獲取自己網站訪問的基本資料,可以試試這個專案,用來代替谷歌分析

26、data-scientist-roadmap:資料科學技能路線圖

27、nvda:一個微軟開源的免費 Windows 作業系統的無視覺桌面訪問閱讀器。通過合成器語音或者盲文點字的反饋,方便盲人和低視力人群使用執行在 Windows 作業系統下運作的電腦。也能夠讓開發者瞭解微軟的常見的輔助功能介面,如微軟 Active Accessibility、Java Access Bridge、IAccessible2 和 UI automation。希望有更多的人瞭解無障礙,NVDA 中文站

28、LeetcodeTop:國內各大網際網路公司常考的 LeetCode 題目

29、git-history:線上檢視 GitHub 開源專案中檔案的改動歷史的工具。使用方法:

1. 開啟 GitHub 上任意一個專案的檔案
2. 把地址中的 github.com 替換成 githistory.xyz
3. 訪問替換後的地址

30、github-readme-stats:在你的 README 中展示動態生成的 GitHub 統計資訊。使用簡單、樣式多樣,使用方法:

[![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=521xueweihan)](https://github.com/anuraghazra/github-readme-stats)

替換“521xueweihan”為你的 GitHub 使用者名稱

31、papirus-icon-theme:適用於 Linux 系統的免費開源 SVG 圖示主題

機器學習

32、3d-photo-inpainting:一個把單張靜態照片轉化成 3D 圖片的專案。快來嚐鮮啦,不要等朋友圈 3D 照片刷屏後才“後知後覺”


最後

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

相關文章