分享 GitHub 上有趣、入門級的開源項目。
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人群的月刊,月刊的內容包括:各種程式語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社區中。
- 會編程的可以貢獻代碼
- 不會編程的可以反饋使用這些工具中的 Bug
- 幫著宣傳你覺得優秀的項目
- Star 項目⭐️
在瀏覽、參與這些項目的過程中,你將學習到更多編程知識、提高編程技巧、找到編程的樂趣。
最後 HelloGitHub 這個項目就誕生了
C++ 項目
1、modern-cpp-features:該項目介紹了現代 C++(C++11 以及之後的版本)語言和庫的新特性。它能夠幫助大家更快地入手新時代的 C++
2、CPlusPlusThings:這是一個適合 C++ 初學者從入門到進階的教程。解決了面試者想要深入 C++ 及如何入坑 C++ 的問題。除此之外,該倉庫拓展了更加深入的語法分析、多線程並發等的知識,是一個比較全面的 C++ 從入門學習到進階提升的項目
Go 項目
3、7days-golang:用 Go 在 7 天時間內實現 Web 框架、分布式緩存等應用的實戰教程
4、cli:GitHub 官方基於 Go 語言開發的命令行 GitHub 工具。用它可以在終端中執行 GitHub 的常用的管理 Issue、切分支、Clone 等操作
Java 項目
5、FXGLGames:此項目包含 FXGL 框架構建的遊戲示例。該遊戲框架無需安裝或設置開箱即用,遊戲可以輕鬆打包到單個可執行文件.jar。示例代碼:
public class BasicGameApp extends GameApplication {
@Override
protected void initSettings(GameSettings settings) {
settings.setWidth(800);
settings.setHeight(600);
settings.setTitle("Basic Game App");
}
public static void main(String[] args) {
launch(args);
}
}
6、quarkus-quickstarts:Quarkus 開源的 Java 多種框架 demo 項目集合。這些示例項目可以快速啟動、結構清晰,初學者可用作 Java 的實戰項目,老手可以當作項目腳手架。啟動示例:
mvn quarkus:dev
mvn clean package -Pnative
./target/amqp-quickstart-1.0-SNAPSHOT-runner
JavaScript 項目
7、showdoc:一款基於 JavaScript 實現的開源在線文檔工具。支持:多端編輯查看、權限管理、文檔導出、Markdown 語法等,功能雖不多但已足夠用了。推薦自建自用、小團隊內部使用
8、qier-progress:這是一個用於緩解用戶焦慮,給予用戶請求回饋的頂部進度條。該項目使用 ts 重構了萬星 star 的 nprogress 項目,打包體積更小、且支持了多彩模式、自定義高度和顏色等,最重要的是有良好的類型註解。該項目結構簡單、代碼量也比較少,非常利於學習 ts 相關用法和作為實戰項目。示例代碼:
const qprogress = new QProgress()
qprogress.start()
qprogress.finish()
9、image-compress-without-backend:一個純前端在線圖片壓縮小工具。即無需上傳照片到伺服器,一切都在瀏覽器端完成,快速而高效。非常適用於圖片壓縮後質量要求不是很高的場景,比如:移動端圖片展示等
10、breathe-relaxer:一個在線放鬆網站的項目。帶上耳機,點開網站然後深呼吸
11、wx-promise-pro:支持 finnaly、typescript 的微信小程序異步解決方案。特性:
- 方便集成:一處引用,處處使用
- 把微信小程序所有異步 API promise 化並掛在到 wx.pro 對象下
- 支持 ES2018 finally 特性
- 支持 TypeScript 開發
import { promisifyAll, promisify } from 'wx-promise-pro'
// promisify all wx『s api
promisifyAll()
// promisify single api
promisify(wx.getSystemInfo)().then(console.log)
Objective-C 項目
12、simplenote-macos:一款 macOS 上免費開源的記事本應用
PHP 項目
13、clean-code-php:PHP 代碼的整潔之道,整理了一系列整潔代碼實操。小到變量細道 SOLID 都有涉獵,中文譯版
14、ext-collections:一個 C 語言實現的 PHP 擴展庫。提供了類似 Java stream API 和 kotlin.collections 的一系列庫函數,方便開發者優雅、快速地操作 PHP 數組。
- 提供了豐富的 PHP 數組操作函數,有助於提高開發效率和代碼的可讀性
- 使用 C 語言實現,比同類 PHP 實現性能更高
- 初學者可以通過閱讀此項目代碼幫助自己入門 PHP 擴展開發
$employees = [
['name' => 'Alice', 'sex' => 'female', 'age' => 35],
['name' => 'Bob', 'sex' => 'male', 'age' => 29],
['name' => 'David', 'sex' => 'male', 'age' => 40],
['name' => 'Benjamin', 'sex' => 'male', 'age' => 32]
];
// Trying to get an array of names of male employees,
// sorted by the descending order of their age.
$names = Collection::init($employees)
->filter(function ($value) {
return $value['sex'] == 'male';
})
->sortedByDescending(function ($value) {
return $value['age'];
})
->map(function ($value) {
return $value['name'];
})
->toArray();
// You got $names == ['David', 'Benjamin', 'Bob'].
Python 項目
15、wttr.in:一個 Python 實現的命令行查看天氣工具
16、activitywatch:一個記錄你的時間都花在哪的 Python 項目。支持 Web 可視化,效果如下
17、akshare:一款基於 Python 的開源金融數據接口庫。提供了股票、期貨、期權、基金、數字貨幣等金融產品的基本數據、實時和歷史行情數據、衍生數據,包含數據採集、數據清洗、到數據落地的一套開源工具。滿足了金融數據科學家、數據科學愛好者在金融數據獲取方面的需求。示例代碼:
import akshare as ak
bond_df = ak.bond_spot_deal()
print(bond_df)
債券簡稱 成交凈價(元) 最新收益率(%) 漲跌(BP) 加權收益率(%) 交易量(億)
0 19國開15 98.97 3.5750 1.00 3.5826 None
1 19附息國債03 99.82 2.7714 0.14 2.7772 None
2 19附息國債11 99.87 2.8000 0.25 2.7963 None
3 19附息國債04 100.82 2.9832 -1.54 2.9747 None
4 15附息國債05 102.95 3.0359 -1.41 3.0359 None
18、repoll:基於 Django 開發的 redis 集群管理、監控工具。功能包括:標準化申請流程、管理配置、監控接口等,減輕了運維人員的痛苦
Swift 項目
19、Mos:一個用於在 macOS 上平滑滑鼠滾動效果或單獨設置滾動方向的小工具。讓你的滾輪爽如觸控板般絲滑
其它
20、devops-exercises:這個倉庫包含了 DevOps(開發運維)常見、流行服務相關的面試問題和回答,推薦給從事運維的同學
21、book:《Rust 程式語言》這是官方出品的關於 Rust 的入門書籍
22、OnlineToolsBook:該項目收集了一些有趣、實用的在線工具網站,點開即用
23、my-mac-os:該項目羅列了作者自用、收集的 macOS 上實用、炫酷的軟體。我從中找到好幾個炫酷、實用提高工作的工具,你也趕快來挑挑吧
24、structured-text-tools:用於處理結構化文本數據(日誌、JSON、YAML 等)的命令行工具列表
25、incubator-apisix:一個雲原生、高性能、可擴展的微服務 API 網關。它是基於 Nginx 和 etcd 來實現,和傳統 API 網關相比,APISIX 具備動態路由和插件熱加載,適合微服務體系下的 API 管理
26、app-ideas:該收集了各類應用的想法,並按照易學程度把應用進行劃分。你可以通過這個項目提高編程技術、學習新技術
最後:
上面都是自己整理好的!我就把資料貢獻出來給有需要的人!順便求一波關注,哈哈~各位小夥伴關注我後私信【Java】就可以免費領取噠