tag go

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

@go / 博客 RSS 訂閱

amc - JSON 這麼可愛,讓我們用千字短文吃透它吧!

JSON,一個偉大的協議,前端工程師的卓越發明!相信 99% 的程序員都認識 JSON,它作為前後端交互的熱門協議,因其易理解、簡單、靈活和超強的可讀性,得到了互聯網的廣泛歡迎,甚至很多微服務之間的傳輸協議中也得到應用。 但是筆者在開發一個 Go 的 JSON 編解碼庫的過程中,除了自己趟過各種奇奇怪怪的問題之外,也認識到廣大程序員們對 JSON 各種奇奇怪怪的用法和使用姿勢。在處理解決這些問題之

utf-8 , JAVA , unicode , go , Json

收藏 評論

gvison - 使用現代化測試工具 k6 壓測 kratos、go-zero、sponge三個微服務框架

在當今的軟件開發世界中,性能測試和負載測試至關重要。HTTP和gRPC是兩種常用的通信協議,許多系統依賴它們進行數據交換和服務調用。然而,選擇合適的測試工具來確保這些通信協議的性能和穩定性至關重要。本文將詳細探討使用k6測試HTTP和gRPC的優勢,吸引讀者從其他測試工具轉為使用k6工具。 k6簡介 k6 是一個現代化的開源負載和性能測試工具,使用go語言開發。它以其簡單易用、功能強大、可擴展性高

grpc , 微服務 , 壓測 , HTTP , go

收藏 評論

alwaysbeta - Go 語言 select 都能做什麼?

原文鏈接: Go 語言 select 都能做什麼? 在 Go 語言中,select 是一個關鍵字,用於監聽和 channel 有關的 IO 操作。 通過 select 語句,我們可以同時監聽多個 channel,並在其中任意一個 channel 就緒時進行相應的處理。 本文將總結一下 select 語句的常見用法,以及在使用過程中的注意事項。 基本語法 select 語句的基本語法如下: sele

面試 , select , go

收藏 評論

soroqer - Go語言面向對象特性之--多態與繼承的實現機制

最近突然想起來過去寫過的 C++ 與 Java,索性探討一下,Golang 是不是面嚮對象語言,是否有其標誌性的多態與繼承? 1. 引言 面向對象編程的核心範式圍繞封裝、繼承與多態展開。傳統語言(如Java、C++)通過類與繼承體系實現這一目標:類定義數據結構與方法,繼承建立類型層級,多態通過父類引用指向子類實例實現。Go語言在設計初期即明確拒絕傳統類繼承模型,其官方文檔指出:“Go不是傳統意義上

組合 , 多態 , 繼承 , 接口 , go

收藏 評論

侯磊 - 【golang】go語言中map導致的內存泄漏問題

go語言的map回收機制 在 Golang 中的 map 結構,在刪除鍵值對的時候,並不會真正的刪除,只是標記當前的key狀態為empty。我們下面的程序作為例子,看看當我們在刪除map中鍵值對時的內存變化,並瞭解如才能真正實現對鍵值對的垃圾回收。 程序基本流程為:在initMap()中,向map結構中插入10000對鍵值對,然後在全部刪除,通過runtime.MemStats打印內存使用情況。

內存泄漏 , 垃圾回收 , go

收藏 評論

kevinwan - 服務發現原理分析與源碼解讀

在微服務架構中,有許多繞不開的技術話題。比如服務發現、負載均衡、指標監控、鏈路追蹤,以及服務治理相關的超時控制、熔斷、降級、限流等,還有RPC框架。這些都是微服務架構的基礎,只有打牢這些基礎,才敢説對微服務是有了一點理解,出門也好意思和別人打招呼了,被人提問的時候也能侃侃而談了,線上出了問題往往也能尋根溯源內心不慌了,旁邊的女同事小芳看着你的時候也是滿眼的小可愛了。 在《微服務實踐》公眾號,之前寫

grpc , go-zero , web開發 , 服務發現 , go

收藏 評論

香吧香Blog - Go語言Panic異常服務崩潰

轉載請註明出處:   一、 Go 的異常處理哲學:顯式錯誤處理   與 Java語言使用try-catch進行“控制流逆轉”的異常處理不同,Go 語言的設計哲學是“錯誤是值”。 多返回值與錯誤值 Go 函數通常返回一個(result, error)對。調用者必須顯式地檢查這個error值。 file, er

棧展開 , 控制流 , 後端開發 , JAVA , go

收藏 評論

王中陽講編程 - 深度討論:GoFrame是否真能復刻Laravel的開發體驗?

最近賊有意思,發現了一個賬號,專門發PHP轉Go的帖子,哎呦喂,這不正是我3年前做的事情嗎?哈哈。 尤其看到他寫的安利GoFrame教程的文章,有點刺激到我了,一看他就沒我用的多,用的溜,因為我不僅在公司用GoFrame做過商業項目,還寫過專欄,出過教程。 作為一名深耕PHP多年的開發者,Laravel的優雅與高效早已刻入我的開發習慣。當業務需求朝着高併發、高性能方向升級,Go語言成為必然選擇

php , go , 後端

收藏 評論

gvison - 手寫CRUD的時代結束了!低代碼框架Sponge重新定義Go開發效率極限

作為Go開發者,愛它的簡潔,愛它的併發,愛它的性能。但説句心裏話,你有沒有被實現一個簡單API到底要寫多少代碼這個問題困擾過? 從定義struct,到寫handler,再到service、repository,最後註冊路由、處理錯誤、寫文檔……一套流程下來,真正的核心業務邏輯可能就幾行,剩下的全是在寫"膠水代碼"和"八股文"。 我們總開玩笑説自己是"面向CV編程工程師",但夜深人靜的時候,你有沒有

grpc , 低代碼 , gin , go , 後端

收藏 評論

蘇琢玉 - PHP 日誌系統的最佳搭檔:一個 Go 寫的遠程日誌收集服務

之前折騰了一個 PHP 日誌系統,終於能讓項目的錯誤信息乖乖地記錄到日誌裏了。但問題又來了:日誌是存了,可我怎麼知道它什麼時候爆炸了? 有些錯誤輕微到無關緊要,有些錯誤嚴重到能把整個系統送走,但如果我要知道這些錯誤,我得 SSH 進服務器,然後手動去翻日誌,效率低得要死。而且,多個服務器運行着同樣的代碼,有的報錯,有的沒事,我根本不知道到底哪裏出了問題。 於是,為了在 bug 出現的時候第一時間收

日誌分析 , php , go

收藏 評論

海生 - protobuf 使用其他消息類型message的三種方式

更方便的在微信公眾號閲讀文章可以關注公眾號:海生的go花園 在我們寫protobuf最基礎的是有 基本的數字,字符串,枚舉類型組成,在這些基礎的類型基礎上,我們組合成一個message類型。 接下來我們探討一下,如何在message裏面再使用其他的message類型。 方式一:使用其他消息類型作為字段類型 您可以使用其他消息類型作為字段類型。 例如,我們想在SearchResp

protobuf , go

收藏 評論

gvison - 一鍵生成 HTTP + gRPC 混合架構微服務代碼:更簡單、更靈活、更兼容的微服務系統構建方式

在現代微服務架構中,單純依賴 gRPC 並不能覆蓋所有的應用場景,因此結合 HTTP 協議可以提供更加全面的服務支持。本文將介紹如何通過一鍵生成 HTTP + gRPC 通用混合架構的微服務代碼,以構建更靈活、更兼容的微服務系統。 為什麼選擇 HTTP + gRPC 服務? 兼容性更強 瀏覽器支持: HTTP 是 Web 應用的基礎,允許瀏覽器直接訪問,而 gRPC 需要額外

grpc , 微服務 , HTTP , gin , go

收藏 評論

粘豆煮包 - 腦抽研究生Go併發-1-基本併發原語-上-Mutex、RWMutex、WaitGroup

基本併發原語 臨界區:避免程序中併發訪問或修改造成嚴重後果。 數據庫、共享數據結構、I/O 設備、連接池中的連接 同步原語 包含:互斥鎖 Mutex、讀寫鎖 RWMutex、併發編排 WaitGroup、條件變量 Cond、Channel 等 適用場景: 共享資源 任務編排:goroutine + WaitGroup/Channel 消息傳遞:goroutine +Channel。

goroutine , 知識 , concurrency , go , 後端

收藏 評論

Yuan_sr - Select多路複用

在某些場景下我們需要同時從多個通道接收數據。通道在接收數據時,如果沒有數據可以接收將會發生阻塞,而select就可以同時監聽一個或多個channel,直到其中一個channel準備好。 select的使用類似於switch語句,它有一系列case分支和一個默認的分支。每個case會對應一個通道的通信(接收或發送)過程。select會一直等待,直到某個case的通信操作完成時,就會執行case分支對

goroutine , select , go

收藏 評論

liuyuede - golang中的字符串

0.1、索引 https://waterflow.link/articles/1666449874974 1、字符串編碼 在go中rune是一個unicode編碼點。 我們都知道UTF-8將字符編碼為1-4個字節,比如我們常用的漢字,UTF-8編碼為3個字節。所以rune也是int32的別名。 type rune = int32 當我們打印一個英文字符hello的時候,我們可以得到s的長度為5,因

字符串 , go

收藏 評論

liuyuede - golang垃圾回收

0.1、索引 https://waterflow.link/articles/1664943418972 文中提到的垃圾回收算法是基於go1.16之後的,讓我們直接進入正題吧。 1、什麼時候需要垃圾回收? Go 更喜歡在堆棧上分配內存,因此大多數內存分配最終都會在棧上。 這意味着 Go 每個 goroutine 都有一個堆棧,並且在可能的情況下,Go 會將變量分配給這個堆棧。 Go 編譯器試圖通

垃圾回收 , go

收藏 評論

vistart - 從簡單到複雜:多進程環境下的加權隨機選擇算法

引言 在分佈式系統中,我們經常需要實現負載均衡、流量分配、A/B 測試等功能。這些場景的核心問題是:如何按照預設的權重比例,在多個候選項中進行隨機選擇? 更具挑戰性的是,當多個進程同時運行、隨時可能加入或退出時,如何保證整體的選擇分佈仍然符合預期的權重比例? 本文將從最簡單的均勻隨機選擇開始,逐步深入到加權隨機選擇,最後解決多進程環境下的分佈一致性問題,並給出嚴格的數學證明。 完整代碼:https

選擇器 , 數學 , 隨機訪問 , 概率 , go

收藏 評論

gvison - 一個企業級高質量開發框架 sponge,幫助你大幅提高開發效率和降低開發難度

在當今快節奏的軟件開發環境中,提高效率至關重要。開發人員持續尋求工具和技術,以縮短開發時間併產出更高質量的應用程序。本文將介紹一款創新性的開發框架,它可以大幅提高開發項目效率同時降低開發難度,並支持多種常用的數據庫。 如果開發只有簡單CRUD api接口的web或微服務,不需要編寫任何go代碼就可以編譯並部署到linux服務器、docker、k8s上,只需要連接到數據庫(mysql、mongodb

gorm , grpc , 微服務 , gin , go

收藏 評論

代碼保安 - 如何用Go開發一個高效的文件處理工具

Go語言在文件處理和併發方面有天然優勢,下面是一個完整的實現方案: 1. 基礎文件處理工具框架 package main import ( "bufio" "fmt" "io" "os" "path/filepath" "sync" "time" ) // FileProcessor 文件處理器接口 type FileP

Go語言 , 文件處理 , 後端開發 , go

收藏 評論

Peleus - go-carbon v2.2.14 發佈,輕量級、語義化、對開發者友好的 Golang 時間處理庫

carbon 是一個輕量級、語義化、對開發者友好的 golang 時間處理庫,支持鏈式調用。 目前已被 awesome-go 收錄,如果您覺得不錯,請給個 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安裝使用 Golang 版本大於等於 1.16 // 使用 github 庫 go get -u git

datetime , date , carbon , go

收藏 評論

amc - 每天學點 Go 規範 - 代碼不能寫太寬,那麼函數該怎麼換行呢?

公司內部的 Go 代碼規範中限制了每一行代碼的寬度。為了滿足這個規範,那些太寬的代碼行就不可避免地需要換行。換行不是普通的回車就行,如何在換行的同時,保持代碼優秀的可讀性,筆者根據日常 code review 中看到的各種模式,提出一些建議。 上一篇文章:每天學點 Go 規範 - 函數傳參時,struct 應該傳值還是引用 規範和原因 公司的 Go 規範統一要求每一行 Go 代碼不能超過 1

規範化 , 代碼規範 , go

收藏 評論

丘比特 | fd - 使用 Vue3 + Element Plus + Go 重構 ferry 工單系統

使用 Vue3 + Element Plus + Go 重構 ferry 工單系統 項目介紹 2020 年 7 月 13 日,我第一次提交了 ferry 工單系統的代碼,當時其實就是想將自己心中構思的工單系統實現出來。出乎意料的收到了大家關注,同時登上了 github 和 gitee 的榜單,讓這個系統讓更多的人知道了。 由於之前架構設計的有些許潦草,所以部分地方其實拓展起來是有點乏力的。且技術大

workflow , vue3 , go

收藏 評論

王中陽講編程 - 手把手教你用 GoFrame 實現 RBAC 權限管理,從零到一搞定後台權限系統

最近在優化電商後台項目的時候,權限管理這塊踩了不少坑。今天就把我的實戰經驗分享出來,希望能幫到正在做類似需求的朋友們。 前言 做後台管理系統,權限管理幾乎是綁死的需求。但説實話,很多教程要麼講得太理論,要麼代碼不完整跑不起來。 我們這次正好優化了一下 GoFrame 電商項目,做了一套完整的 RBAC 權限系統,從數據庫設計到中間件實現,全程實戰代碼。文章有點長,建議先收藏,慢慢看。 一、先搞清楚

goframe , go

收藏 評論