興趣是最好的老師,HelloGitHub 就是幫你找到興趣!
分享 GitHub 上有趣、入門級的開源項目。
這是一個面向編程新手、熱愛編程、對開源社區感興趣 人群的月刊,月刊的內容包括:各種編程語言的項目、讓生活變得更美好的工具、書籍、學習筆記、教程等,這些開源項目大多都是非常容易上手,而且非常 Cool。主要是希望大家能動手用起來,加入到開源社區中。
在瀏覽、參與這些項目的過程中,你將學習到更多編程知識、提高編程技巧、找到編程的樂趣。
最后 HelloGitHub 這個項目就誕生了
以下為本期內容|每個月 28 號發布最新一期
1、switch-lan-play:讓您和您的朋友像在局域網中一樣玩 switch 游戲。
2、Notepads:一款基于 C# 開發的 UWP 文本編輯器。該記事本應用是由一位國人開發,采用了 Fluent Design。輕便、美觀,打開速度飛快,支持 Markdown 預覽、文件更改前后對比和多標簽頁。它沒有 VS Code 或是 Sublime 那么強,但是完全可以代替 Windows 系統自帶的筆記本應用
3、excel2json:C# 寫的把 Excel 表轉換成 json 的工具
4、ModernWpf:WPF 應用程序的現代風格控件
5、interview:C/C++ 技術面試知識集合項目。包括語言、程序庫、數據結構、算法、鏈接裝載庫等知識
6、hplayer:一個基于 C++ 實現的多畫面播放器。能播放文件源、網絡源、設備捕獲源,界面為多畫面監控網格,可自由切換多畫面風格,支持拖拽與合并。適合想要入門音視頻、播放器開發的小伙伴們學習,該項目用到的技術棧:
7、SpinKit:純 CSS 實現加載動畫的項目
8、crawlab:基于 Go 的分布式爬蟲管理平臺。支持 Python、Node.js、Go、Java、PHP 等多種編程語言以及多種爬蟲框架
9、fasthttp:高性能 Go HTTP 三方庫。性能是標準庫 net/http 數倍,關于它是怎么做到的可以通過源碼學習一下。進階的路就在面前,往前走不走看你自己嘍
10、Linkis:一款支持多種計算存儲引擎的企業級計算中間件。打通了 Spark、TiSpark、Hive 等存儲引擎,提供統一作業執行服務,支持提交 SQL、PySpark、HQL 等各種腳本的計算請求
11、concurrent:RedSpider 社區開源的《深入淺出 Java 多線程》教程。
12、FlycoTabLayout:一款容易接入、功能強大的 Android TabLayout 庫。只是很長時間沒更新和維護了,有興趣的小伙伴可以 fork 把它重新維護起來
13、toBeTopJavaer:一份全面、系統的 Java 學習教程。推薦給剛入門 Java、需要進階的小伙伴,
14、gitstalk:這是一個使用 Vue.js 開發的網頁,可以看到某一個 GitHub 用戶最近干了些什么。比如 Star、Push commit、Fork 之類的操作,還會顯示這個 GitHub 用戶的一些信息。
15、refined-github:一款 GitHub 的瀏覽器插件,支持 Chrome 和 Firefox。這款插件給 GitHub 增加了非常多強大的功能,比如一鍵合并沖突修復、等待 check 成功后合并 PR、在代碼中鏈接到 Issue/PR 和 url 等,在 README 中有詳細的功能列表,可以時常學習一下提高你的生產力
16、chroma.js:一款極小、零依賴用于各種顏色轉換的 JS 庫,幫助前端把顏色操作于股掌之間。示例代碼:
chroma.scale(['#fafa6e','#2A4858'])
.mode('lch').colors(6)
17、falcon:一款免費、開源的 SQL 可視化編輯器,具有查詢數據、可視化等功能。支持 Windows、Mac、Linux 操作系統,能夠鏈接 MySQL、PostgreSQL、SQLite 等多種數據庫,并把查詢結果通過不同形式圖表展示。
18、DoraCMS:基于 Nodejs + eggjs + Mongodb 編寫的內容管理系統。項目結構清晰、易于拓展,適合前端開發工程師做二次開發
19、sourcerer-app:提供 GitHub 用戶相關數據可視化的項目
20、PyBoy:Python 寫的 GameBoy 模擬器。不僅可以用來懷念童年,還能用這個庫寫“外掛”,之前虐你千百遍的游戲。現在用 Python 找回場子,放學別走,學校門口見!示例代碼:
21、gpustat:一個方便查詢 GPU 狀態的命令行程序
22、scalene:一個 Python 的高性能 CPU 和內存分析器。Scalene 很快、占用資源少、展示信息全面,可用來排查、優化 Python 程序占用資源過多等問題
23、Dozer:隱藏 macOS 狀態欄圖標的工具,使狀態欄看起來更整潔
24、SwiftDate:Swift 處理時間和日期的開源三方庫。示例代碼:
25、glow-sans:一個基于思源黑體、Fira Sans 和 Raleway 的開源字體項目。支持簡體中文、繁體中文與日文;思源黑體的 7 字重被擴展為 9 字重,并提供了寬度系列,全家族共 44 款字體。相比于思源黑體,未來熒黑的造型更加簡明現代,版面效果清新輕快。中宮與字面更加收斂,重心在字重之間經過了重新配置;筆畫細節處理得更干練。
26、vimium:讓你像用 Vim 一樣在瀏覽器瀏覽網頁的插件
27、bash-tutorial:Bash 教程。
28、nbnhhsh:社交平臺上通過拼音首字母縮寫指代特定詞句的情況越來越多(看不懂的流行語),該項目就是為了讓常人勉強能理解這一門另類溝通方式。
29、webrtc-book-cn:《Real-Time Communication with WebRTC》中文翻譯版,WebRTC 實時通信。在瀏覽器中提供豐富的音頻和視頻實時通信和點對點數據交換,不需要私有插件。這本書向您展示了如何使用新興的 Web 實時通信(WebRTC)技術來構建一個瀏覽器到瀏覽器通信的應用程序
30、istio-handbook:ServiceMesher 社區出品的《Istio 服務網格進階實戰》。Istio 是由 Google、IBM、Lyft 等共同開源的 Service Mesh(服務網格)框架,作為云原生時代下承 Kubernetes、上接 Serverless 架構的重要基礎設施層
31、pycorrector:中文文本糾錯工具。音似、形似錯字(或變體字)糾正,可用于中文拼音、筆畫輸入法的錯誤糾正。依據語言模型檢測錯別字位置,通過拼音音似特征、筆畫五筆編輯距離特征及語言模型困惑度特征糾正錯別字。解決了在文本識別模型處理后,對識別結果中個別詞匯錯誤進行糾錯
如果你發現了 GitHub 上有趣的項目,歡迎在 HelloGitHub 項目提 issues 告訴我們。
開源項目是眾多組織與個人分享的組件或項目,作者付出的心血我們是無法體會的,所以首先大家要心存感激、尊重。請嚴格遵守每個項目的開源協議后再使用。尊重知識產權,共建和諧開源社區。
9、Furion【國產,入選GVP】
Furion項目的作者【富察宏磊】是一位90后的優秀IT人才。
Furioin 是一款基于.NET5技術開發的功能強大、性能極致、文檔完善、示例豐富、極易入門、快速開發、極易維護的Web框架。
功能模塊
框架特點
開源地址
作者的其他優秀開源項目
基于Furion的開源案例
8、攜程 Apollo
Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景。
服務端基于Spring Boot和Spring Cloud開發,打包后可以直接運行,不需要額外安裝Tomcat等應用容器。
Java客戶端不依賴任何框架,能夠運行于所有Java運行時環境,同時對Spring/Spring Boot環境也有較好的支持。
.Net客戶端不依賴任何框架,能夠運行于所有.Net運行時環境,參考《.Net客戶端使用指南》。
更多產品介紹參見Apollo配置中心介紹。
本地快速部署請參見Quick Start。
產品特性
Gitee地址:https://gitee.com/lepdou/apollo
7、輕量級配置中心AgileConfig
基于.NetCore開發的輕量級(相對Apollo而言)配置中心,部署簡單、配置簡單,使用簡單,可以根據個人或者公司需求采用。
配置完成后即可進入系統
GitHub地址:https://github.com/kklldog/AgileConfig
GitHub中文文檔:https://github.com/kklldog/AgileConfig/blob/master/README_CN.md
開發作者的文章:https://www.cnblogs.com/kklldog/p/agile-config.html
參考博客:https://mp.weixin.qq.com/s/Cah7GgpkDa5XJxfLM_7Z8A
6、基于ASP.NET Core構建可熱插拔的插件化系統
插件化架構,又稱微核架構,指的是軟件的內核相對較小,主要功能和業務邏輯都通過插件實現的架構。
插件化架構一般有兩個核心概念:
內核通常只包含系統運行的最小功能,以及定義插件必須符合的接口;插件則是互相獨立的模塊,一般只包含單一的功能。
插件化技術并不是一個新興的技術,早期很多基于COM開發的WIN32程序其實都是插件化的系統。在.NET/.NET Core中,也有許多插件化的實現方案,例如,開源框架ABP, 開源的內容管理系統DotNetNuke, 電子商務框架NopCommerce。
《.NET Conf 2020 - 基于ASP.NET Core構建可熱插拔的插件化系統》
作者:Lamond Lu
項目地址:https://github.com/lamondlu/CoolCat
博客:http://www.cnblogs.com/lwqlun
《從零開始實現 ASP.NET Core MVC 的插件式開發》系列博客:https://mp.weixin.qq.com/s/uOtvUHkCoMu8cpnsjX4Gpg
5、eShopOnWeb
eShopOnWeb 是微軟官方基于 ASP.NET Core 5.0 構建的一個示例項目,其主要目的是:
eShopOnWeb 與另外一個eShopOnContainers互相補充。eShopOnContainers是基于微服務和容器技術的應用程序架構,支持多重部署。而eShopOnWeb相較于它就簡單的多,其是基于傳統Web應用開發,僅支持單一部署。
eShopOnWeb 應用了DDD和整潔架構的部分思想。
開源地址:https://github.com/dotnet-architecture/eShopOnWeb
電子書:https://docs.microsoft.com/zh-cn/dotnet/architecture/modern-web-apps-azure
4、eShopOnContainers
eShopOnContainers是微軟官方出品,運行在Linux、Windows和macOS上的跨平臺.NET微服務示例和基于容器的應用程序。由.NET5、Docker容器和Azure Kubernetes服務提供支持。
簡單來說:eShopOnContainers 是一個簡化版的基于.NET Core 和 Docker 等技術開發的面向微服務架構的參考應用。
雖然是簡化版的微服務參考示例,但對沒接觸過Docker、DDD、微服務的開發者來說,并不簡單。其中不僅包含了很多術語、設計模式、架構風格,還使用了一系列的常見技術(RabbitMQ、EventBus、IdentityServer4、Polly、Api Gateway、Redis、CQRS、CAP、CI/CD等),還有一些相關工具(Docker、K8S等)。所以這將是一個難啃的骨頭。
eShopOnContainers作為跨平臺的微服務架構,得益于.NET Core 能夠在 Linux 或 Windows 容器上運行。其包含基于瀏覽器的Web應用、基于Xamarin的Android、IOS、Windows/UWP 移動應用,以及服務端應用。其中服務端包含多個自治微服務(每個都擁有自己的數據/ db),并且每個微服務都有不同的實現形式(簡單的CRUD與DDD / CQRS模式)。使用Http作為客戶端應用程序之間的通信協議。支持異步通信,使用Integration Events(集成事件)和Event Bus(事件總線)進行數據更新傳播。
系統架構圖
從上圖可知,該架構主要包括兩個部分:客戶端應用和Docker主機中運行的服務端應用。
其中服務端主要包括六大微服務:
另外從上圖我們還可以清晰看出其通信架構:
系統運行效果圖
開源地址:https://github.com/dotnet-architecture/eShopOnContainers
3、ABP
ABP是用于創建現代Web應用程序的完整架構和強大的基礎設施!遵循最佳實踐和約定,為你提供SOLID開發經驗。它的設計目標是對標 Java 平臺 Spring 全家桶。
下圖展示了其強大的功能:
所有功能列表:
完善的開發文檔:https://docs.abp.io/zh-Hans/abp/latest/Getting-Started
官網:https://www.abp.io
基于ABP落地領域驅動設計-01.全景圖
基于ABP落地領域驅動設計-02.聚合和聚合根的最佳實踐和原則
基于ABP落地領域驅動設計-03.倉儲和規約最佳實踐和原則
基于ABP落地領域驅動設計-04.領域服務和應用服務的最佳實踐和原則
基于ABP落地領域驅動設計-05.實體創建和更新最佳實踐
基于ABP落地領域驅動設計-06.正確區分領域邏輯和應用邏輯
2、Dapr 分布式應用框架【微軟出品】
Dapr是微軟官網出品的一種可移植的,事件驅動的,無服務器運行時,用于構建跨云和邊緣的分布式應用程序。
Dapr通過通信共享信息,即 HTTP 和 gRPC 支持多語言等特性。
Dapr與語言無關,可以在任何托管環境上運行,包括本地開發機器、Kubernetes和公共云(如AWS、Azure和GCP)。通過利用SDK或進行簡單的HTTP或gRPC調用,將Dapr與您選擇的語言結合使用。
官網:https://dapr.io
1、Viper 微服務框架
Viper 是一個基于Anno微服務引擎開發的Dashboard項目、示例項目。Anno 底層通訊采用 grpc、thrift。自帶服務發現、調用鏈追蹤、Cron 調度、限流、事件總線等。入門簡單、安全、穩定、高可用、全平臺可監控。底層通訊可以隨意切換。
Anno 是一個分布式開發框架,同時支持 .net core3.1 、.net frameworker4.6.1。
開源地址:https://github.com/duyanming/Viper
如果表述不恰當的地方,請及時告知我,謝謝。
歡迎關注、點贊、評論、轉發,每天都能獲取IT優質內容。
#劉伯明進艙前感謝全國人民#