golang 每日一庫之工作流引擎 Temporal
Temporal 是一個開源的分佈式工作流編排系統,旨在簡化構建和運行可靠、可擴展的長時間運行的後端應用程序。它最初是由 Uber 的 Cadence 系統演變而來,現在由 Temporal Technologies 公司主導開發。目前已被 Coinbase、Netflix、Box、Snap 等大規模應用。核心功能—-1. 分佈式工作流編排Temporal 支持在多臺機器上協調執行復雜的業務邏 ⌘ Read more
Golang 字符串拼接 6 種方法性能對比與最佳實踐
在 Go 語言中,字符串 (string) 是不可變 (immutable) 的數據類型,這意味着每次字符串拼接操作實際上都會創建一個新的字符串對象。對於需要頻繁拼接字符串的場景,選擇合適的方法對性能有顯著影響。本文將全面分析 6 種常見的字符串拼接方式,並通過基準測試揭示它們的性能差異。6 種字符串拼接方法詳解1. 直接使用+運算符funcconcatOperator(s string, n i ⌘ Read more
Golang 字符串拼接 6 種方法性能對比與最佳實踐
在 Go 語言中,字符串 (string) 是不可變 (immutable) 的數據類型,這意味着每次字符串拼接操作實際上都會創建一個新的字符串對象。對於需要頻繁拼接字符串的場景,選擇合適的方法對性能有顯著影響。本文將全面分析 6 種常見的字符串拼接方式,並通過基準測試揭示它們的性能差異。6 種字符串拼接方法詳解1. 直接使用+運算符funcconcatOperator(s string, n i ⌘ Read more
Golang in Vim ⌘ Read more
Golang in Vim ⌘ Read more
golang 基礎之 errgroup
Golang 的擴展併發庫 golang.org/x/sync/errgroup 提供了對多協程任務進行管理和錯誤處理的便利功能。與基礎的 sync.WaitGroup 相比,errgroup.Group 在等待所有任務完成的同時,還會自動捕獲第一個非 nil 錯誤並返回。如果通過 WithContext 創建 Group,當任一子任務返回錯誤時,errgroup 會取消關聯的 Context,從 ⌘ Read more
golang 基礎之 errgroup
Golang 的擴展併發庫 golang.org/x/sync/errgroup 提供了對多協程任務進行管理和錯誤處理的便利功能。與基礎的 sync.WaitGroup 相比,errgroup.Group 在等待所有任務完成的同時,還會自動捕獲第一個非 nil 錯誤並返回。如果通過 WithContext 創建 Group,當任一子任務返回錯誤時,errgroup 會取消關聯的 Context,從 ⌘ Read more
golang 每日一庫之 bsm-redislock
bsm/redislock 是一個用於 在 Go 語言中實現基於 Redis 的分佈式鎖(distributed lock) 的開源庫,由 bsm 組織開發和維護。它實現了基於 Redis 的 SET NX PX 命令模式的分佈式鎖,兼容 Redlock 算法的核心思想,但更簡單和輕量。簡介–基於 Redis 單實例實現分佈式鎖 遵循 Redis 官方推薦的 SET resource-na ⌘ Read more
golang 每日一庫之 bsm-redislock
bsm/redislock 是一個用於 在 Go 語言中實現基於 Redis 的分佈式鎖(distributed lock) 的開源庫,由 bsm 組織開發和維護。它實現了基於 Redis 的 SET NX PX 命令模式的分佈式鎖,兼容 Redlock 算法的核心思想,但更簡單和輕量。簡介–基於 Redis 單實例實現分佈式鎖 遵循 Redis 官方推薦的 SET resource-na ⌘ Read more
golang 每日一庫之 goflow
goflow 是一個基於 Go 語言的高性能、可擴展、分佈式的工作流框架。它允許開發者以編程方式將分佈式工作流定義爲任務的有向無環圖(DAG),並通過多個工作節點(Worker)均勻分配負載來執行任務。核心特性—-1. DAG 構建與任務編排goflow 允許用戶以 DAG 的形式定義工作流,每個節點代表一個任務,邊表示任務之間的依賴關係。這種結構使得任務的執行順序清晰,便於管理複雜的工作流程 ⌘ Read more
golang 每日一庫之 goflow
goflow 是一個基於 Go 語言的高性能、可擴展、分佈式的工作流框架。它允許開發者以編程方式將分佈式工作流定義爲任務的有向無環圖(DAG),並通過多個工作節點(Worker)均勻分配負載來執行任務。核心特性—-1. DAG 構建與任務編排goflow 允許用戶以 DAG 的形式定義工作流,每個節點代表一個任務,邊表示任務之間的依賴關係。這種結構使得任務的執行順序清晰,便於管理複雜的工作流程 ⌘ Read more
golang 每日一庫之 go-workflow
go-workflow 是一個基於 Go 語言開發的超輕量級工作流引擎,設計靈感來源於 Java 的 Activiti,但進行了深度簡化和解耦,特別適用於微服務架構下的流程控制需求。特點微服務架構友好 :go-workflow 僅關注流程流轉邏輯,完全解耦用戶、組織等業務數據,便於與各類系統集成。 JSON 流程定義 :採用 JSON 數組替代傳統的 BPMN 模 ⌘ Read more
golang 每日一庫之 go-workflow
go-workflow 是一個基於 Go 語言開發的超輕量級工作流引擎,設計靈感來源於 Java 的 Activiti,但進行了深度簡化和解耦,特別適用於微服務架構下的流程控制需求。特點微服務架構友好 :go-workflow 僅關注流程流轉邏輯,完全解耦用戶、組織等業務數據,便於與各類系統集成。 JSON 流程定義 :採用 JSON 數組替代傳統的 BPMN 模 ⌘ Read more
golang 開發 OA 系統,工作流引擎選型
我想開發一套企業內部使用 OA 系統,使用 golang gin 開發,讓 AI 推薦了幾個流程管理的庫,即工作流引擎。發現大部分找到的都是 Java Sprint Boot 的實現,但是我還是希望用 golang gin 去實現。畢竟 golang gin 目前用的最順手,也積累了大量的內部功能庫,而且服務器資源佔用低。加上是集團內幾個公司一塊使用,使用現成的開源實現,也達不到要求,估計也很難改 ⌘ Read more
golang 開發 OA 系統,工作流引擎選型
我想開發一套企業內部使用 OA 系統,使用 golang gin 開發,讓 AI 推薦了幾個流程管理的庫,即工作流引擎。發現大部分找到的都是 Java Sprint Boot 的實現,但是我還是希望用 golang gin 去實現。畢竟 golang gin 目前用的最順手,也積累了大量的內部功能庫,而且服務器資源佔用低。加上是集團內幾個公司一塊使用,使用現成的開源實現,也達不到要求,估計也很難改 ⌘ Read more
golang 每日一庫之 redsync
redsync 是一個用 Go 編寫的分佈式互斥鎖(Distributed Mutex)庫,基於 Redis 實現。其主要目標是在分佈式系統中爲多個進程或服務之間提供互斥訪問的機制,確保同一時間內只有一個客戶端可以訪問共享資源。核心功能—-redsync 實現了 Redlock 算法(由 Redis 創始人 antirez 提出),該算法旨在在分佈式環境中實現安全、健壯的鎖。基本原理使用多個獨 ⌘ Read more
golang 每日一庫之 redsync
redsync 是一個用 Go 編寫的分佈式互斥鎖(Distributed Mutex)庫,基於 Redis 實現。其主要目標是在分佈式系統中爲多個進程或服務之間提供互斥訪問的機制,確保同一時間內只有一個客戶端可以訪問共享資源。核心功能—-redsync 實現了 Redlock 算法(由 Redis 創始人 antirez 提出),該算法旨在在分佈式環境中實現安全、健壯的鎖。基本原理使用多個獨 ⌘ Read more
golang gin 基於 Casbin 實現權限控制
最近在使用 golang gin 開發一套公司內部的人事管理系統,但是發現權限管理比之前搞的系統要複雜不少, 所以我想借機瞭解一下傳說中的 Casbin 權限控制庫,看看是否可以借鑑一下。涉及權限控制的需求場景———–人事部門負責人需要能看到所有的人事數據 人事部門的普通 HR,只能看到部分部門的人事數據。即只能看到自己負責的部門數據 IT 部門或者行政部門指定人員,能看 ⌘ Read more
golang gin 基於 Casbin 實現權限控制
最近在使用 golang gin 開發一套公司內部的人事管理系統,但是發現權限管理比之前搞的系統要複雜不少, 所以我想借機瞭解一下傳說中的 Casbin 權限控制庫,看看是否可以借鑑一下。涉及權限控制的需求場景———–人事部門負責人需要能看到所有的人事數據 人事部門的普通 HR,只能看到部分部門的人事數據。即只能看到自己負責的部門數據 IT 部門或者行政部門指定人員,能看 ⌘ Read more
支付寶證書原理和使用 Golang 集成
支付寶證書驗證機制是保障交易安全的核心環節,主要是基於 PKI(公鑰基礎設施)體系構建。其驗證流程包含以下幾個關鍵部分:1,證書體系支付寶使用兩套證書,應用證書和支付寶根證書。應用證書由開發者上傳到支付寶開放平臺,支付寶根證書用於驗證支付寶返回數據的真實性。2,簽名驗證流程請求時,開發者使用私鑰對請求參數簽名,支付寶使用應用公鑰驗證。響應時,支付寶使用私鑰對返回數據簽名,開發者使用支付寶公鑰驗證。 ⌘ Read more
支付寶證書原理和使用 Golang 集成
支付寶證書驗證機制是保障交易安全的核心環節,主要是基於 PKI(公鑰基礎設施)體系構建。其驗證流程包含以下幾個關鍵部分:1,證書體系支付寶使用兩套證書,應用證書和支付寶根證書。應用證書由開發者上傳到支付寶開放平臺,支付寶根證書用於驗證支付寶返回數據的真實性。2,簽名驗證流程請求時,開發者使用私鑰對請求參數簽名,支付寶使用應用公鑰驗證。響應時,支付寶使用私鑰對返回數據簽名,開發者使用支付寶公鑰驗證。 ⌘ Read more
Golang 接口加鎖與數據庫事務的重要性:從紅包漏洞看系統安全
在分佈式系統和高併發場景中,接口加鎖和數據庫事務處理是保障數據一致性和系統安全的關鍵機制。本文將通過一個真實的紅包系統漏洞案例,探討 Golang 中接口加鎖的實現方式、數據庫事務的正確使用方法,以及忽視這些機制可能帶來的嚴重後果。一、Golang 接口加鎖機制爲什麼需要接口加鎖?在高併發場景下,多個請求可能同時訪問通過一個資源(如用戶賬戶餘額),如果沒有適當的鎖機制,會導致競態條件,造成數據不一 ⌘ Read more
Golang 接口加鎖與數據庫事務的重要性:從紅包漏洞看系統安全
在分佈式系統和高併發場景中,接口加鎖和數據庫事務處理是保障數據一致性和系統安全的關鍵機制。本文將通過一個真實的紅包系統漏洞案例,探討 Golang 中接口加鎖的實現方式、數據庫事務的正確使用方法,以及忽視這些機制可能帶來的嚴重後果。一、Golang 接口加鎖機制爲什麼需要接口加鎖?在高併發場景下,多個請求可能同時訪問通過一個資源(如用戶賬戶餘額),如果沒有適當的鎖機制,會導致競態條件,造成數據不一 ⌘ Read more
Goreleaser: 快速創建 Golang 項目發佈頁面
原文鏈接: https://typonotes.com/posts/2025/05/19/goreleaser-release-app-in-github/項目可以通過 renovate-bot 進行以來變更管理, 當依賴內容變化後, 可以幫助我們創建 PR。https://github.com/tangxin/k8s-image-syncer/pullsgoreleaser 可以爲 go 項 ⌘ Read more
Goreleaser: 快速創建 Golang 項目發佈頁面
原文鏈接: https://typonotes.com/posts/2025/05/19/goreleaser-release-app-in-github/項目可以通過 renovate-bot 進行以來變更管理, 當依賴內容變化後, 可以幫助我們創建 PR。https://github.com/tangxin/k8s-image-syncer/pullsgoreleaser 可以爲 go 項 ⌘ Read more
@prologic@twtxt.net I remember going through your “introduction to Golang”, I don’t remember the URL, but I vividly remember going through it, and I was lost at chapter one. So, about that “mastering” the core in hours, “I don’t believe you.” (insert I don’t believe you meme animated GIF here). LOL.
@kat@yarn.girlonthemoon.xyz I don’t like Golang much either, but I am not a programmer. This little site, Go by example might explain a thing or two.
i wish it was realistic for me to learn golang but every single time i try to comprehend any go code i’m like What the fuck am i looking at. why is all of this so short and condensed GIVE ME VERBOSE CODE
Golang 業務邏輯 WASM 化實踐指南
爲什麼選擇 WASM 邊緣計算?在物聯網和 5G 加速普及的當下,邊緣計算對低延遲和離線能力的需求暴增。傳統容器方案(如 Docker)在邊緣設備上面臨三大痛點:資源消耗大:x86 容器鏡像通常超過 100MB,ARM 設備運行效率低下 冷啓動慢:Node.js/Python 等解釋型語言啓動時間超過 500ms 安全風險:系統級隔離存在逃逸風險 WebAssembly(WASM ⌘ Read more
Golang 業務邏輯 WASM 化實踐指南
爲什麼選擇 WASM 邊緣計算?在物聯網和 5G 加速普及的當下,邊緣計算對低延遲和離線能力的需求暴增。傳統容器方案(如 Docker)在邊緣設備上面臨三大痛點:資源消耗大:x86 容器鏡像通常超過 100MB,ARM 設備運行效率低下 冷啓動慢:Node.js/Python 等解釋型語言啓動時間超過 500ms 安全風險:系統級隔離存在逃逸風險 WebAssembly(WASM ⌘ Read more
golang 每日一庫之依賴注入庫 samber-do
do 是 Go 語言中一個輕量級的依賴注入(Dependency Injection, DI)容器,由 samber 開發。它基於 Go 1.18+ 泛型實現,爲 Go 提供了一個類型安全的 DI 方案。do 庫的設計理念是簡化服務組件之間的依賴管理,取代手工創建依賴關係的繁瑣工作,使不同組件之間鬆散耦合、更易測試與維護。與反射型 DI 框架不同,do 在註冊和解析依賴時不使用反射,因此性能開銷很 ⌘ Read more
golang 每日一庫之依賴注入庫 samber-do
do 是 Go 語言中一個輕量級的依賴注入(Dependency Injection, DI)容器,由 samber 開發。它基於 Go 1.18+ 泛型實現,爲 Go 提供了一個類型安全的 DI 方案。do 庫的設計理念是簡化服務組件之間的依賴管理,取代手工創建依賴關係的繁瑣工作,使不同組件之間鬆散耦合、更易測試與維護。與反射型 DI 框架不同,do 在註冊和解析依賴時不使用反射,因此性能開銷很 ⌘ Read more
Hiring: Sr. Golang Developer| Remote (Brazil and Argentina) | A new challenge awaits!
1 points posted by Fabio Chapola ⌘ Read more
Creating an MCP Server Using Go
1 points posted by Elton Minetto ⌘ Read more
Golang 日誌實時告警實現方案(Windows-Linux-Debian)
在 Golang 中實現跨平臺的日誌實時告警,可以通過以下幾種方式實現:通用實現方案1. 使用日誌監控庫package mainimport(“log”“os”“time”“github.com/hpcloud/tail”// 跨平臺文件跟蹤”github.com/robfig/cron”// 定時任務)funcsetupLogMonitor(logPath string){ t, err := ⌘ Read more
Golang 日誌實時告警實現方案(Windows-Linux-Debian)
在 Golang 中實現跨平臺的日誌實時告警,可以通過以下幾種方式實現:通用實現方案1. 使用日誌監控庫package mainimport(“log”“os”“time”“github.com/hpcloud/tail”// 跨平臺文件跟蹤”github.com/robfig/cron”// 定時任務)funcsetupLogMonitor(logPath string){ t, err := ⌘ Read more
基於 Golang 和 WebSocket 實現屏幕共享方案
在遠程協作、在線教學、監控等場景中(當然啦!還有其他的用途,這裏就不說了,懂得都懂),屏幕共享是一項非常重要的技術。本文將介紹如何使用 Golang 開發一個基於 WebSocket 的屏幕共享系統,實現遠程查看電腦屏幕的功能。技術原理整個屏幕共享的流程如下:定時截圖:使用kbinani/screenshot 進行屏幕捕獲,每隔 100ms 採集一次屏幕。 圖片壓縮:爲了減少數據傳輸量,將截 ⌘ Read more
golang 每日一庫之 aceld-zinx
aceld/zinx 是一個基於 Go 語言開發的輕量級、高併發 TCP 服務器框架,專注於簡化遊戲服務器、長連接應用及消息中轉服務的開發。其設計目標是提供清晰的結構和高度可擴展性,幫助開發者快速構建高性能網絡服務。以下從核心特性、架構設計、應用場景等方面詳細介紹:一、核心特性輕量級與高併發 基於 Go 的 Goroutine 協程模型,實現高效併發處理,支持海量連接。 提供線程池(W ⌘ Read more
極簡 HTTP 客戶端,Resty 如何讓 Golang 請求效率翻倍?
Resty 是一個基於 Golang 標準庫 net/http 構建的高效、易用的 HTTP 客戶端庫。它通過鏈式調用、自動化處理和豐富的擴展功能,極大簡化了 HTTP 請求的發送與響應處理流程,尤其適合與 RESTful API 交互的場景。Resty 的核心優勢———–鏈式調用:支持直觀的鏈式語法,提升代碼可讀性。自動序列化:輕鬆將結構體轉爲 JSON/XML,自動解析響應內容。 ⌘ Read more
利用 Katana 作爲 Go 庫實現高性能 Web 爬蟲
在信息收集、安全測試等領域,高性能、高併發的 Web 爬蟲工具是核心基礎設施之一。ProjectDiscovery 出品的 Katana 是一個基於 Golang 編寫的輕量級爬蟲,它默認以 CLI 工具形式提供。但實際上,它也可以作爲庫被直接集成進你的 Go 項目中,從而實現更靈活的定製。本文將介紹:Katana 的設計理念與功能,如何將 Katana 作爲庫引入到我們的項目當中,如何編寫自定義 ⌘ Read more
golang 每日一庫之高性能無鎖隊列 bruceshao-lockfree
bruceshao/lockfree 是一個基於 Go 語言實現的高性能無鎖隊列庫,旨在通過無鎖(Lock-Free)算法提升多線程環境下的併發性能。其設計靈感來源於 Java 的 Disruptor 框架,但針對 Go 語言的特性進行了優化,適用於高吞吐量、低延遲的場景,如實時數據處理、高頻交易系統等。以下是該庫的核心特性、實現原理、性能對比及使用場景的詳細分析:核心特性無鎖設計基於 CAS(C ⌘ Read more
使用 Golang-WebSocket 實現按鍵記錄
在 Web 開發和安全研究中,監聽用戶輸入是一項重要的功能,比如在在線代碼編輯器、遊戲按鍵綁定或快捷鍵管理中,我們可能需要記錄用戶的按鍵輸入。本文將介紹如何使用 Golang + WebSocket 實現一個簡單的按鍵記錄系統。按鍵監聽的原理在 Web 端,我們可以使用 JavaScript 的事件監聽器來捕獲用戶的鍵盤輸入事件。JavaScript 提供了 keydown、keypress 和 ⌘ Read more
golang 每日一庫之 base64Captcha
今天要介紹的庫 mojocn/base64Captcha 是一個用於 Go 語言的高效驗證碼生成庫,支持圖片、音頻等多種驗證碼格式,並且可以通過 base64 編碼輸出,方便前端直接使用。該庫廣泛用於 Web 應用、REST API 以及需要身份驗證的系統中,以增強安全性。主要功能——–支持多種驗證碼類型數字驗證碼 (DriverDigit):僅包含數字,適用於一般驗證碼場 ⌘ Read more
golang 每日一庫之 go-pinyin
go-pinyin 漢字轉拼音庫今天要介紹的庫是一個拼音庫,這個庫相對比較冷門,但是開發過母嬰類 app 的道友可能知道。go-pinyin 是一個用於將漢字轉換爲拼音的 Golang 庫,提供多種模式,支持帶音調、無音調、首字母提取等功能。該庫適用於拼音搜索、漢字排序、文本轉換等場景。安裝——使用 go get 下載安裝:go get -u github.com/mozillazg/go ⌘ Read more
i really wanna learn golang it looks fun and capable and i can read it kind of but every time i try it i’m immediately stuck on basic concepts like “what the fuck is a pointer” (this has been explained to me and i still don’t get it). i did have types explained to me as like notes on code which makes sense a bit but i’m mostly lost on basic code concepts
golang 每日一庫之 gopsutil
shirou/gopsutil 是一個用 Go 語言實現的跨平臺系統信息採集庫,其設計靈感來源於 Python 的 psutil。它爲開發者提供了一套統一、簡潔的 API,用於獲取底層操作系統的各項指標數據,如 CPU、內存、磁盤、網絡、主機信息以及進程狀態等。下面我們將從多個方面詳細介紹這個庫的功能、設計特點、使用示例以及應用場景。庫簡介——跨平臺支持 gopsutil ⌘ Read more
使用 Golang-OpenCV 獲取攝像頭視頻流: 從原理到實踐
在現代計算機視覺應用中,實時視頻處理是一個重要的功能,例如監控系統、人臉識別、手勢檢測等。而 Go 語言結合 OpenCV 可以高效地實現攝像頭數據的採集和處理。在本篇文章將會簡單的講解,OpenCV 處理視頻流的基本步驟,原理和如何使用 gocv 這個庫來讀取攝像頭畫面。安裝 OpenCV因爲我用的是 mac 電腦所以,我使用 homebrew 進行 opencv 的安裝,其他平臺例如 arch ⌘ Read more
Golang 擴展 osquery,讓系統查詢更強大!
在深圳有很多老闆都很奇葩,比如我的前老闆,需求是半夜給的,效果是要早上看到的,我要感謝我的的前老闆,讓我接觸到了聞所未聞的新奇技術。今天要分享的內容是 osquery 這個東西,不知道各位萬能的網友們知不知道。osquery 是一個強大的開源工具,它能讓我們像查詢數據庫一樣獲取操作系統信息。而 osquery-go 則是官方提供的 Golang SDK,可以讓我們擴展 osquery,添加自定義查 ⌘ Read more
golang 每日一庫之 volatiletech-authboss
Authboss 是一個強大且可擴展的 Go 語言認證(authentication)和授權(authorization)框架,適用於 Web 應用程序。它提供了一套完整的用戶身份驗證方案,包括用戶註冊、登錄、註銷、賬號恢復、密碼重置、OAuth2、雙因素認證(2FA)等功能,使開發者能夠快速構建安全的身份認證系統。核心特性——–模塊化設計 :Authboss 由多個獨立的 ⌘ Read more