tag go

標籤
貢獻242
350
05:15 PM · Oct 25 ,2025

@go / 博客 RSS 訂閱

alwaysbeta - 使用 Go 語言實現二叉搜索樹

原文鏈接: 使用 Go 語言實現二叉搜索樹 二叉樹是一種常見並且非常重要的數據結構,在很多項目中都能看到二叉樹的身影。 它有很多變種,比如紅黑樹,常被用作 std::map 和 std::set 的底層實現;B 樹和 B+ 樹,廣泛應用於數據庫系統中。 本文要介紹的二叉搜索樹用的也很多,比如在開源項目 go-zero 中,就被用來做路由管理。 這篇文章也算是一篇前導文章,介紹一些必備知識,下一篇再

數據結構 , 算法 , 二叉樹 , go

收藏 評論

江湖十年 - 萬字長文:在 Go 中如何優雅的使用 wire 依賴注入工具提高開發效率?上篇

如果你做過 Java 開發,那麼想必一定聽説或使用過依賴注入。依賴注入是一種軟件設計模式,它允許將組件的依賴項外部化,從而使組件本身更加模塊化和可測試。在 Java 中,依賴注入廣泛應用於各種框架中,幫助開發者解耦代碼和提高應用的靈活性。本文就來介紹下什麼是依賴注入,以及在 Go 語言中如何實踐依賴注入,提高 Go 項目的開發效率和可維護性。 什麼是依賴注入? 正如前文所述,依賴注入(depend

依賴注入 , 效率工具 , wire , go , 後端

收藏 評論

專家一百錦再 - 第8章 模塊系統

文章目錄 第8章 模塊系統 8.1 包、crate和模塊 Rust代碼組織的基本概念 包(Packages) Crate 模塊(Modules) 創建和使用模塊 基本模塊定義 模塊的可見性

redis , 開發語言 , rust , 數據庫 , Android , JAVA , go

收藏 評論

技術博主 - 阿里雲基於 Go 的微服務架構分享 - GopherChina的個人空間 -

在現代互聯網和雲原生環境中,業務系統對高併發、低延遲和快速迭代的要求越來越高。Go語言憑藉輕量級協程(Goroutine)、Channel通信模型、靜態編譯和內置高性能網絡庫,成為構建雲原生微服務和高併發系統的首選語言之一。本文結合實際互聯網項目經驗,從架構設計、服務拆分、併發優化、內存管理、網絡性能調優以及工程化建設等方面,分享Go在高併發環境下的實踐

高併發 , 微服務 , rabbitmq , Css , 前端開發 , go , HTML

收藏 評論

soroqer - unsafe.Pointer 與 uintptr-Golang

unsafe 包提供了繞過類型系統的底層內存操作能力,用於實現高性能、跨語言交互或底層數據結構。其中最核心的類型是 unsafe.Pointer 和 uintptr。 1、任意類型的指針:unsafe.Pointer unsafe.Pointer 是 Go 中唯一可以指向任意類型內存地址的指針類型,類似於 C 語言的 void*。它允許將任意類型的指針轉換為 unsafe.Pointer,並在不同

指針 , go

收藏 評論

良許 - 《C語言電子書-2026最新版》-C語言數據類型概述

大家好,我是良許,一個深耕嵌入式 12 年的老工程師,前世界 500 強高工。 我花了 3 個月時間,寫了一個 C 語言電子書,以非常通俗的語言跟大家講解 C 語言,把複雜的技術講得連小學生都能聽得懂,絕不是 AI 生成那種晦澀難懂的電子垃圾。 點擊此處免費領取 C 語言電子書 C 語言電子書目錄如下: 2.1 C語言數據類型概述 在我們的日常生活中,我們會遇到各種各樣的信息:數字、文字、圖片、

go , 後端

收藏 評論

爆裂Gopher - 淺談Goroutine的調度機制

一、什麼是Goroutine 在go語言中,每一個併發的執行單元叫作一個goroutine,與併發相對的是串行,即代碼按照順序一行一行執行,goroutine 給 go 語言提供了併發編程的能力。 當一個程序啓動時,其主函數在一個單獨的goroutine中運行,我們叫它main goroutine,新的goroutine會用go語句來創建。在語法上,go語句是一個普通的函數或方法調用前加上關鍵字g

調度器 , goroutine , 協程 , gmp , go

收藏 評論

amc - 逆微服務潮流?基於騰訊 tRPC-Go 單體化改造怎麼節省上萬核 CPU

微服務一直以來是服務治理的基本盤之一,落地到雲原生上,往往是每個 K8s pods 部署一個服務,獨立迭代、獨立運維。 但是在快速部署的時候,有時候,我們可能需要一些宏服務的優勢。有沒有一種方法,能夠 “既要又要” 呢?本文基於 tRPC-Go 服務,提出並最終實踐了一種經驗證可行的方法。 本文原文發佈在騰訊內網,隨着騰訊 tRPC 框架 正式開源, 筆者決定將敏感信息脱敏後發佈至外網,也助力 t

grpc , 微服務 , rpc , challenge , go

收藏 評論

amc - 三分鐘, 讓你學會 Go 泛型

Go 自從 1.18 版本正式推出泛型之後至今也超過半年了,但是筆者發現在實際業務開發中,大家沒有如想象中那麼廣泛地使用泛型。於是決定簡單撰一文,儘可能簡單地講解 Go 的泛型代碼的寫法。 Go 泛型的作用 Go 語言在推出之後,要求支持泛型的呼聲就一直不絕於耳。Go 在 1.17 版實驗性地推出,並且在 1.18 正式發佈。泛型要解決的問題以及適用的場景是所謂的 ”DRY“(Don't Repe

泛型 , go

收藏 評論

得物技術 - Go語言在高併發高可用系統中的實踐與解決方案|得物技術

一、引言 隨着互聯網技術的飛速發展,現代系統面臨着前所未有的併發壓力和可用性要求。從電商秒殺到社交媒體直播,從金融交易到物聯網設備接入,系統需要處理百萬級甚至千萬級的併發請求,同時保證99.999%的可用性。在這種背景下,Go語言憑藉其獨特的設計哲學和技術特性,成為了構建高併發高可用系統的首選語言之一。 Go語言自2009年誕生以來,就以 "併發性能優異、開發效率高、部署簡單"等特點受到開發者的青

go

收藏 評論

木的樹 - GO GMP調度實現原理 5w字長文史上最全

1 Runtime簡介 Go語言是互聯網時代的C,因為其語法簡潔易學,對高併發擁有語言級別的親和性。而且不同於虛擬機的方案。Go通過在編譯時嵌入平台相關的系統指令可直接編譯為對應平台的機器碼,同時嵌入Go Runtime,在運行時實現自身的調度算法和各種併發控制方案,避免進入操作系統級別的進程/線程上下文切換,以及通過原子操作、自旋、信號量、全局哈希表、等待隊列多種技術避免進入操作系統級別鎖,以此

調度器 , runtime , 原理 , go

收藏 評論

yinggaozhen - 常用的 Go 框架、庫和軟件中文收錄大全

背景介紹 大多數 Gopher 應該對於 Awesome-go 應該都不陌生。 Awesome-go 是個很優秀的項目,裏面收錄了很多優秀的用 Go 編寫的開源庫、框架、軟件 截至目前,Awesome-go 已經收錄了Web框架、機器學習、分佈式系統、編譯器、物聯網、持續集成等方方面面共計 81 類大項, 1777 個用 Go 編寫的倉庫,很多我們平常開發上所需要的庫都能在上面能找到,為我們省去了

awesome , go

收藏 評論

gvison - Go Web 開發利器:如何讓你的 Gin 服務擁有 Nginx 般的靜態文件處理能力?

前言 做過 Go Web 開發的朋友都知道,Gin 框架雖然在 API 路由處理上性能彪悍,但原生的 Static() 靜態文件服務功能相對基礎。在很多生產場景下,我們通常會習慣性地在 Go 服務前面擋一層 Nginx,專門用來處理靜態資源(JS/CSS/HTML)和緩存控制。 但有些場景下(比如內部工具、單體應用、或者不想維護複雜的 Sidecar 容器),我們希望 Go 服務本身就能像 Ngi

Nginx , gin , go , 後端

收藏 評論

陳明勇 - 一文了解 Go 接口

接口 在 Go 語言中,接口是一種抽象的類型,是一組方法的集合。接口存在的目的是定義規範,而規範的細節由其他對象去實現。我們來看一個例子: import "fmt" type Person struct { Name string } func main() { person := Person{Name: "cmy"} fmt.Println(person) // {

challenge , go , 後端

收藏 評論

徐石頭 - 代碼重構實戰

背景 用户頭像上傳功能中,服務端上傳流程如下: base64解碼成字符串 圖片寫入服務器本地臨時目錄 上傳到阿里雲OSS/七牛雲存儲 圖片審核 代碼如下 type Parms struct { Head string //客户端發送base64字符串 } func Upload(p Params){ if p.Head == ""{ return err

實戰 , 圖片上傳 , 重構 , go

收藏 評論

alwaysbeta - 推薦 10 本 Go 經典書籍,從入門到進階(含下載方式)

書單一共包含 10 本書,分為入門 5 本,進階 5 本。我讀過其中 7 本,另外 3 本雖然沒讀過,但也是網上推薦比較多的。 雖然分了入門和進階,但是很多書中這兩部分內容是都包含了的。大家看的時候可以根據自己的情況,先打好基礎,再進行進階。 有的書是開源的,可以直接在線閲讀,有的有電子書,大家可以在這裏 GitHub 找到下載方式。如果條件允許的話,買正版是最好的。 入門 《Go語言趣學指南》

程序員書籍 , 書單 , 編程語言 , 書籍 , go

收藏 評論

Hunter - Golang基礎筆記四之map

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記四之map 這一篇筆記介紹 Golang 裏 map 相關的內容,以下是本篇筆記目錄: map 的概念及其聲明與初始化 map 的增刪改查 map 的遍歷 1、map 的概念及其聲明與初始化 map,即映射,是 Golang 裏無序鍵值對的集合。 以下是創建 map 的兩種方式。 1. 使用 make 的方式創建

map , go , 後端

收藏 評論

guyan0319 - GO 匿名函數和閉包

匿名函數:顧名思義就是沒有名字的函數。很多語言都有如:java,js,php等,其中js最鍾情。匿名函數最大的用途是來模擬塊級作用域,避免數據污染的。 今天主要講一下Golang語言的匿名函數和閉包。 匿名函數 示例: 1、 package main import ( "fmt" ) func main() { f:=func(){ fmt.Println("hello

匿名函數 , 閉包 , go

收藏 評論

王中陽講編程 - 分享一下最近的面試題

分享一下訓練營內部學員最近的面經,希望對大家有幫助。 1 供應鏈跨境電商二面 外包 自我介紹 詢問 一般來説 會從哪些方面去code review 空結構體用過嗎?什麼作用?為什麼會有這個作用? 詢問 你怎麼去設計一個10萬QPS的系統。(redis單飛是什麼) 多大的服務器 或者説怎麼配置一個服務器 能撐起10W的QPS Mysql 覆蓋索引、聯合索引的概念 唯一索引和二級索引(

go , 後端

收藏 評論

asong_5eeb7a1d0da86 - 有趣的面試題:Go語言字符串的字節長度和字符個數

背景 哈嘍,大家好,我是asong。今天我們一起來看看Go語言中的rune數據類型,首先從一道面試題入手,你能很快説出下面這道題的答案嗎? func main() { str := "Golang夢工廠" fmt.Println(len(str)) fmt.Println(len([]rune(str))) } 運行結果是15和15還是15和9呢?先思考一下,一會揭

字符編碼 , 字符串處理 , go

收藏 評論

人情世故 - go-scaffold 一個基於 kratos 和 wire 依賴注入框架的腳手架

介紹 架構圖 生命週期 目錄結構 如何運行 go build 或 go run make docker-compose 熱重啓 運行子命令或腳本 依賴注入 配置 配置模型 遠程配置 監聽配置變更 日誌 錯誤處理 轉換為 HTTP 狀態碼 將 GRPC 錯誤轉換為

框架 , grpc , 依賴注入 , gin , go

收藏 評論

扒手莫扎特 - Golang-unicode

//對字符串中漢字數量進行統計 //unicode.Is() package main import ( "fmt" "unicode" ) //Han表示漢字,其它語言表達可在字符集中查詢 func main() { a := "すごい,今天你pass了English考試" count := 0 for _, v := range a {

unicode , go

收藏 評論

liangwt - 寫給go開發者的gRPC教程-錯誤處理

本篇為【寫給go開發者的gRPC教程】系列第四篇 第一篇:protobuf基礎 第二篇:通信模式 第三篇:攔截器 第四篇:錯誤處理 本系列將持續更新,歡迎關注👏獲取實時通知 基本錯誤處理 首先回顧下pb文件和生成出來的client與server端的接口 service OrderManagement { rpc getOrder(google.protobuf.StringValue)

框架 , grpc , http-2 , 微服務 , go

收藏 評論

weigeonlyyou - 部署 及 使用 etl crontab 和 etl engine

**如何部署及使用etl_crontab和etl_engine** 內容詳細,適合新人上手 1、前置條件 獲取到以下文件列表 code.bin (授權文件,必須) code.key (授權文件,必須) conf.cron (調度配置文件,使用etl_crontab必須) sys.properties (環境配置文件,使用

oracle , 大數據處理 , MySQL , etl , go

收藏 評論