tag go

標籤
貢獻245
449
05:15 PM · Oct 25 ,2025

@go / 博客 RSS 訂閱

探索雲原生 - ArgoWorkflow教程(八)---基於 LifecycleHook 實現流水線通知提醒

本篇介紹一下 ArgoWorkflow 中的 ExitHandler 和 LifecycleHook 功能,可以根據流水線每一步的不同狀態,執行不同操作,一般用於發送通知。 !--more-- 1. 概述 本篇介紹一下 ArgoWorkflow 中的 ExitHandler 和 LifecycleHook 功能,可以根據流水線每一步的不同狀態,執行不同操作,一般用於發送通知。 比如當某個步驟,或

devops , 雲原生 , cicd , jenkins , go

收藏 評論

donnie4w - go-logger v0.27.0 - 併發性能為官方庫 10 倍

go-logger 是一個高性能的 golang 日誌庫,旨在提供快速、輕量級的日誌記錄功能 Github 使用文檔 v0.27.0 更新內容 優化內存分配 優化寫數據性能 增加日誌屬性自定義函數 增加各個日誌級別格式化打印函數 説明 性能優化是該版本最重要的更新內容。性能優化的結果: 極高併發性能:極高的併發寫數據性能,比官方庫或同類型日誌庫高10倍以上。特別在Linux環境中,

logger , 服務器 , 高性能 , 日誌 , go

收藏 評論

張飛的豬 - GoLang協程Goroutiney原理與GMP模型詳解

本文原文地址:GoLang協程Goroutiney原理與GMP模型詳解 什麼是goroutine Goroutine是Go語言中的一種輕量級線程,也成為協程,由Go運行時管理。它是Go語言併發編程的核心概念之一。Goroutine的設計使得在Go中實現併發編程變得非常簡單和高效。 以下是一些關於Goroutine的關鍵特性: 輕量級:Goroutine的創建和切換開銷非常小。與操作系統級別的線

gmp , 多線程 , go

收藏 評論

風流倜儻的傷痕 - 索引與性能優化

title: 索引與性能優化 date: 2024/12/15 updated: 2024/12/15 author: cmdragon excerpt: 索引是數據庫性能優化的重要工具,通過建立索引,可以加速數據的檢索和查詢操作,從而提高數據庫的響應速度。雖然索引能顯著改善數據訪問性能,但不當的使用也可能導致性能下降。 categories: 前端開發 tags

swoole , php , JAVA , go , 後端

收藏 評論

江湖十年 - Go 源碼是如何解決測試代碼循環依賴問題的?

公眾號首發地址:https://mp.weixin.qq.com/s/j5vKNxl2keMF7oPT5M0XnA 最近我寫了一篇講解 context 包源碼的文章《Go 併發控制:context 源碼解讀》,在閲讀源碼的過程中,我在 context 包測試代碼中發現了一個解決循環依賴的小技巧,在此分享給大家。 x_test.go 解決循環依賴 context 包源碼目錄結構如下: https:/

面試 , 單元測試 , 源碼分析 , go , 後端

收藏 評論

axiaoxin - Ghostty 終端默認快捷鍵列表

文章目錄 Ghostty 終端默認快捷鍵列表 基本操作 分屏操作 光標和選擇操作 其他操作 物理按鍵綁定 特殊按鍵説明 注意事項 結語 Ghostty 提供了豐富的默認快捷鍵,用户可以通過這些快捷鍵快速執行各種操作。以下是 Ghostty 的默認快捷鍵列表,這些快捷鍵可以通過keybind配置進行自定義。 Ghostty 終端默認快捷

編輯器 , vim , 程序員 , go , 前端

收藏 評論

江湖十年 - Go 併發控制:sync.WaitGroup 詳解

首發地址:https://mp.weixin.qq.com/s/-FtDLcHW39vgvqSMUVM-yw 前段時間我在《Go 併發控制:errgroup 詳解》一文中講解了 errgroup 的用法和源碼,通過源碼我們知道 errgroup 內部是使用 sync.WaitGroup 實現的,那麼本文就更進一步,來探索下 sync.WaitGroup 源碼是如何實現的。 使用示例 sync.Wa

面試 , 併發 , 併發編程 , go , 後端

收藏 評論

tim_xiao - 併發控制-文件鎖

在以往的項目中,遇到高併發大流量需求做併發控制的時候一般都使用redis分佈式鎖或者mysql加鎖處理高併發情況。最近遇到一個php項目,沒有安裝redis,由於某種原因也不考慮使用mysql加鎖控制併發,所以採用文件鎖的方式控制併發,整理了下代碼 php版本 class FileLock { /** @var string 鎖名稱 唯一性 */ private string $k

高併發 , php , go

收藏 評論

tim_xiao - 微信支付API V3 簽名認證go版本

以 商户單號查詢轉賬單 為例演示 https://pay.weixin.qq.com/doc/v3/merchant/4012716437 package main import ( "crypto" "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/base64" "encoding/pe

微信支付 , go

收藏 評論

smile - golang的單元測試

基於代碼架構設計 + 第三方工具 -- 改善單測代碼質量 單元測試代碼難寫? 代碼架構設計不夠完善,從上到下的交互的邊界不夠清晰,可能在業務層存在調用第三方系統的地方 // bad package service func learnGo() { // ... // 針對業務代碼,認為第三方系統不穩定,輸出的結果不固定,系統內部的是穩定的 // 單元測試需要將不穩定的

單元測試 , go

收藏 評論

gvison - Sponge與DeepSeek協作:一種突破傳統開發後端服務的解決方案,打造高效後端開發新範式

背景介紹 技術演進背景 隨着 DeepSeek 等開源 AI 工具的崛起,智能編程助手正在重塑軟件開發流程。對於開發者而言,AI 輔助編碼已為生產力工具。雖然目前 AI 尚無法直接根據需求文檔和指定技術棧生成完整生產級項目,但在特定場景下已展現出驚人潛力:基於詳細邏輯描述生成代碼片段準確率可達 80%以上。目前AI 在項目的工程化能力方面仍顯不足,而Sponge框架則在工程化能力表現出色,兩者恰好

代碼生成 , deepseek , go , Web

收藏 評論

江湖十年 - Go 併發控制:sync.Map 詳解

我們知道,Go 中的 map 類型是非併發安全的,所以 Go 就在 sync 包中提供了 map 的併發原語 sync.Map,允許併發操作,本文就帶大家詳細解讀下 sync.Map 的原理。 使用示例 sync.Map 提供了基礎類型 map 的常用功能,使用示例如下: package main import ( "fmt" "sync" ) func main() {

面試 , 併發 , 併發編程 , go , 後端

收藏 評論

litao-2071 - GO單元測試&集成測試的 mock 方案

GO單元測試集成測試的 mock 方案 在單元測試或集成測試中,不希望依賴原始數據庫或者説給原始數據庫帶去髒數據,我們往往使用Mock的方式進行模擬, 當然單元測試和集成測試中的側重點同,下面會介紹 基於數據打樁、啓動模擬數據庫等解決方案。 我們通過下面這個案例來説明幾種mock方式的優劣勢和適用場景 案例: 需要mock 下面這個 數據庫操作接口 TestRepo // TestEntity

mock , 單元測試 , 集成測試 , go

收藏 評論

江湖十年 - Go 併發編程:如何實現一個併發安全的 map

上週發佈的文章「Go 併發控制:sync.Map 詳解」有讀者反饋説我寫的太難了,上來就挑戰源碼,對新手不夠友好。所以這篇文章算作補充,從入門到進階的順序講解一下在 Go 中如何自己實現一個併發安全的 map。 內置 map 首先,我們來測試一下 Go 語言內置 map 併發安全性,示例如下: https://github.com/jianghushinian/blog-go-example/tr

面試 , 併發 , 併發編程 , go , 後端

收藏 評論

Java陳序員 - 數據處理神器!一款強大的數據處理命令行工具!

大家好,我是 Java陳序員。 我們在日常開發中,經常會操作使用一些 JSON、YAML、XML 等格式的數據,對數據進行增刪改查和轉換操作。 今天,給大家分享一款強大的數據處理命令行工具,一行命令搞定數據操作! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 dasel —— 一款用於處理和操作多種數據格式的命令行工具,支持對

github , yaml , go , Json

收藏 評論

gvison - Sponge如何解決傳統Go開發Web和gRPC服務的五大痛點?

引言 在傳統的 Go 語言 Web 服務和微服務開發中,開發者常常面臨諸多痛點,這些問題不僅降低了開發效率,還增加了維護成本。為了解決這些問題,Go 開發框架 Sponge 應運而生。本文將詳細説明傳統開發的痛點,並闡述為何需要 Sponge 來應對這些挑戰。 傳統開發的痛點 1. 繁瑣的開發流程 Web 服務:例如使用 Gin 框架時,需要手動配置路由、處理 HTTP 請求、編寫中間件等,代

框架 , 低代碼 , go

收藏 評論

axiaoxin - Go 1.24 新特性一覽

Go 1.24震撼登場,帶來顯著性能提升與諸多新功能,如泛型類型別名、優化工具鏈及標準庫增強。可藉助os.Root實現安全文件系統操作,運用testing.B.Loop優化基準測試,利用runtime.AddCleanup完善資源管理,還有weak包優化內存、crypto包保障FIPS 140 - 3合規。速升級,提升Go應用效率與安全! 文章目錄 語言特性更新 泛

資訊 , 編程語言 , 程序員 , go

收藏 評論

axiaoxin - Go 語言泛型用法詳解

本文將帶你從零開始,理解Go 泛型的概念、語法、使用方式,並配有示例代碼,幫助你快速上手。 文章目錄 什麼是泛型? 1. 泛型函數 示例:一個求長度的泛型函數 2. 泛型結構體 示例:一個通用的盒子 3. 泛型集合(Set) 示例:一個通用的集合 4. 泛型通道(Channel) 示例

編程語言 , 泛型 , go , 後端

收藏 評論

江湖十年 - 如何基於 Go 語言設計一個簡潔優雅的分佈式任務系統

在當今雲計算與微服務盛行的時代,分佈式任務系統已成為支撐大規模業務的核心基礎設施。今天就來為大家分享下如何基於 Go 語言從零設計和實現一個架構簡潔且擴展性強的分佈式任務系統。 前置概念 本文會設計並實現一個分佈式任務系統,這裏我們要先明確兩個概念。 分佈式:在我們將要實現的分佈式任務系統中,分佈式是指我們的服務可以部署多個副本,這樣才能確保服務更加穩定。 任務:這裏的任務是指異步任務,可能

面試 , 架構設計 , 分佈式系統 , go , 後端

收藏 評論

江湖十年 - 在 Go 中如何使用分佈式鎖解決併發問題?

在分佈式系統中,協調多個服務實例之間的共享資源訪問是一個經典的挑戰。傳統的單機鎖(如 sync.Mutex)無法實現跨進程工作,此時就需要用到分佈式鎖了。本文將介紹 Go 語言生態中基於 Redis 實現的分佈式鎖庫 redsync,並探討其使用方法和實現原理。 分佈式鎖 首先我們來探討下為什麼需要分佈式鎖?當我們編寫的程序出現資源競爭的時候,就需要使用互斥鎖來保證併發安全。而我們的服務很有可能不

面試 , 分佈式鎖 , 併發 , go , 後端

收藏 評論

amc - 騰訊 tRPC-Go 教學——(8)通過泛 HTTP 能力實現和觀測 MCP 服務

最近 MCP 大火,其實 tRPC 也可以提供泛 HTTP 接入的能力。內網其實已經對 mcp-go 進行了封裝並支持,但是相關代碼還沒有同步到開源版上。 不過實際上,在 tRPC 框架也是可以接入各種泛 HTTP 能力的。本文就以 mcp-go 和 tRPC 結合作為引子,也介紹一下在 Cursor 等 AI 生產力工具中如何開發和使用 MCP 能力吧。 系列文章 騰訊 tRPC-Go 教學

llm , 騰訊 , cursor , rpc , go

收藏 評論

靦腆的拖把 - Golang領域Beego框架的中間件開發實戰:高效擴展與優化

隨着Go語言在開發領域的廣泛應用,越來越多的開發者選擇Beego框架來構建高效、靈活的Web應用。作為一款基於Go語言的MVC框架,Beego不僅提供了高性能的路由、ORM、會話管理等功能,還允許開發者自定義中間件來擴展框架的功能,提高應用的可維護性和靈活性。 中間件是Web應用中的核心組件之一,它能夠在請求處理的過程中對請求和響應進行攔截、處理、修改或記錄。通過使用中間件,開發者可以在不修改核

中間件 , beego , go

收藏 評論

江湖十年 - 使用 Uber automaxprocs 正確設置 Go 程序線程數

公眾號首發地址:https://mp.weixin.qq.com/s/5wrYaHXBpuN0WxKAaNNp-A 我們知道 Go 語言沒有直接對用户暴露線程的概念,而是通過 goroutine 來控制併發。不過,在 Go 程序啓動時,其背後的調度器往往是多線程運行的。在 Go 語言的 GMP 調度模型中,P 決定着同時運行的 goroutine 數,我們可以通過環境變量 GOMAXPROCS 或

面試 , 容器技術 , 併發編程 , go , 後端

收藏 評論

江湖十年 - Go 語言中你不知道的 io.Discard 妙用

公眾號首發:https://mp.weixin.qq.com/s/no995DjgiS3muyPSt2QhUg 在 Go 語言中,io.Discard 是一個實現了 io.Writer 接口的特殊變量,用於丟棄所有寫入的數據。 io.Discard 在 Go 1.15 及之前版本中是放在 io/ioutil 包中實現的。而在 Go 1.16 版本,得以正式轉正,被實現在 io 包中。本文我們來一起

goland , 編程技巧 , 面試 , go , 後端

收藏 評論