tag go

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

@go / 博客 RSS 訂閱

FLY的狐狸 - gtoken v2.0.0 正式發佈,基於 GoFrame 的 token 插件

本次更新: 此版本主要架構全面更新,發佈 v2.X.X,不再兼容 v1.X.X,升級需謹慎 架構全面升級,版本更新到 v2.X.X,不再兼容 v1.X.X 通過 go get -u -v github.com/goflyfox/gtoken/v2 獲取最新版本,升級需謹慎 獨立 Token、Codec、Cache 接口,方便擴展 採用 goframe 標準中間件方式認證,調用更加直觀

token , go , 後端

收藏 評論

江湖十年 - 在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題

公眾號首發地址:https://mp.weixin.qq.com/s/r8mqOUIoCu0713XcH3P1-Q 在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。 有限狀態機 在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghus

面試 , 架構設計 , 代碼優化 , go , 後端

收藏 評論

王中陽講編程 - 字節的後端實習二面,八股盛宴!

新的一週,祝你開心! 好久沒分享面經了,今天來個大的---字節的後端實習二面,簡直就是八股盛宴,問的太多太全面了。 面經詳解 1. 數據庫的隔離級別有哪些? 數據庫事務隔離級別主要分為四種,從低到高依次為: 讀未提交(Read Uncommitted) 允許事務讀取其他事務未提交的數據,可能導致髒讀、不可重複讀和幻讀。 讀已提交(Read Committ

面試 , go , 後端

收藏 評論

Hunter - Golang基礎筆記三之數組和切片

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記三之數組和切片 這一篇筆記介紹 Golang 裏的數組和切片,以下是本篇筆記目錄: 數組定義和初始化 數組屬性和相關操作 切片的創建 切片的長度和容量 切片的擴容 切片操作 1、數組定義與初始化 第一篇筆記的時候介紹過數組的定義與初始化,這裏再介紹一下。 數組是具有固定長度的相同類型元素的序列。 這裏有兩個點

數組 , slice , 擴容 , go

收藏 評論

soroqer - Array 與 Slice 的源碼分析與高效使用-Golang 🔥

在 Go 語言中,數組(array)和切片(slice)是兩種不同的數據結構,它們在內存分配機制上存在着顯著差異。深入理解這些差異及原理並恰當使用,能夠幫助我們提高代碼的執行效率。 在使用上,由於語法糖的存在,很多初學者對於二者並不敏感。數組的寫法是 [n]int,切片則是 []int,區別僅在於是否在 [] 中體現其長度。 從實現上講,slice 是 array 的一種封裝再實現,將長度不可變的

性能優化 , 內存 , 數組 , slice , go

收藏 評論

Hunter - Golang基礎筆記八之函數

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記八之函數 本篇筆記介紹 Golang 裏函數相關的內容,以下是本篇筆記目錄: 函數的定義語法 函數返回值 可變參數函數 匿名函數 閉包 1、函數的定義語法 函數的定義格式如下: func 函數名(參數列表) (返回值列表) { 函數體 } 比如下面是一個兩數相加返回其和的函數: func add(a, b in

函數 , 閉包 , go , 後端

收藏 評論

Hunter - Golang基礎筆記九之方法與接口

本文首發於公眾號:Hunter後端 原文鏈接:Golang基礎筆記九之方法與接口 本篇筆記介紹 Golang 裏方法和接口,以下是本篇筆記目錄: 方法 接口 用結構體實現類的功能 1、方法 首先介紹一下方法。 方法是與特定類型關聯的函數,我們在實現一個函數前,綁定一個類型,就實現了這個類型的方法。 比如我們想實現一個結構體的方法,可以如下操作: type Person struc

方法 , 接口 , 類型判斷 , go , 後端

收藏 評論

Ansurfen - 我開發了一個編譯成 VBScript 的現代編程語言 - Hulo

嘿,VBScript 愛好者們! 我最近在做一個編譯器/轉譯器項目,想要解決一些在 Windows 腳本開發中遇到的“老大難”問題。 你知道 VBScript 最令人頭疼的是什麼嗎? 就是那種 冗長的語法 和 有限的語言能力,一旦想實現稍微複雜一點的邏輯,就會陷入繁瑣的拼接和調試地獄。 於是我開始思考—— 有沒有可能用一種更現代、更清爽的語言來寫腳本,然後自動生成 VBScript?

開源軟件 , vbs , 編程語言 , 編譯器 , go

收藏 評論

Ansurfen - 耗時一週,我的編程語言 Hulo 新增 Bash 轉譯和包管理工具

嘿,腳本開發者們! 還記得上週我介紹的那個能編譯成 VBScript 的現代編程語言 Hulo 嗎?這周它又有了重大更新! 🚀 本週重磅更新 1. Bash 轉譯器正式上線! 是的,你沒看錯!Hulo 現在不僅支持 VBScript,還支持 Bash 了! 這意味着你可以用同一套現代語法,同時生成 Windows 和 Linux/macOS 的腳本: // main.hl class User

vbs , bash , 編程語言 , 編譯器 , go

收藏 評論

江湖十年 - 在 Go 中為什麼推薦使用空結構體作為 Context 的 key

公眾號首發地址:https://mp.weixin.qq.com/s/TGNG34qJTI7SZOENidYBOA 我曾在《Go 中空結構體慣用法,我幫你總結全了!》一文中介紹過空結構體的多種用法,本文再來補充一種慣用法:將空結構體作為 Context 的 key 來進行安全傳值。 NOTE: 如果你對 Go 語言中的 Context 不夠熟悉,可以閲讀我的另一篇文章《Go 併發控制:con

面試 , go , 後端

收藏 評論

soroqer - Map 的源碼分析、內存分配、擴容機制-Golang 🔥

Go 語言的 map 是內置的鍵值對(Key-Value)集合類型,是基於哈希表實現的高效數據結構,用於高效存儲和查找數據。其核心特性如下: 無序性:map 中的鍵值對存儲順序不固定,無法通過索引訪問(區別於切片)。 鍵唯一性:鍵(Key)必須唯一,重複插入同一鍵會覆蓋舊值。 動態大小:map 會根據存儲的數據量自動擴容,無需手動管理內存。 通過深入理解 map 的源碼和內存分配,開發者

內存分配 , map , 擴容 , 源碼分析 , go

收藏 評論

Hunter - LeetCode熱題一之兩數之和

本文首發於公眾號:Hunter後端 原文鏈接:LeetCode熱題一之兩數之和 題目 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出和為目標值 target 的那兩個整數,並返回它們的數組下標。 你可以假設每種輸入只會對應一個答案,並且你不能使用兩次相同的元素。 你可以按任意順序返回答案。 題目來源 此題來源於 LeetCode 題庫序號 1。 L

leetcode , go , 後端 , Python

收藏 評論

soroqer - Channel 的源碼分析與高效使用-Golang 🔥

“不要通過共享內存來通信,而要通過通信來共享內存”。這句話精準概括了 Go 併發模型的核心哲學——而承載這一哲學的核心原語,正是 channel(通道)。 要深入理解 channel,我們需要從 runtime 包的源碼層面分析其核心結構、關鍵操作(創建、發送/接收、關閉)的實現邏輯,以及底層如何通過同步機制(鎖、等待隊列)實現協程(Goroutine)間的安全通信。 以下源碼基於 go1.24.

channel , 效率 , 源碼分析 , go

收藏 評論

江湖十年 - Go 官方推薦的 Go 項目文件組織方式

公眾號首發:https://mp.weixin.qq.com/s/JwEPt3oZ3aY8ZzKddwnpiA 剛開始接觸 Go 的開發者大概都會遇到一個問題:我該如何組織我的 Go 項目?這種問題當然沒有標準答案,不過 Go 官方下場,給了廣大 Gopher 一個推薦模板。本文就來帶大家一起來學習一下 Go 官方對於 Go 項目佈局的指導原則。 本文以 Go 官方博客「Organizing a

服務器開發 , 面試 , go , 後端 , Web

收藏 評論

gvison - 三步搞定 Go 分佈式任務!sasynq 庫讓異步任務變得如此簡單

Go 後台任務的“坑”,你踩過幾個? 在 Go 應用開發中,總有一些任務不適合現場完成,比如: 發郵件/發短信:用户點擊按鈕後,還要乾等?體驗太糟糕! 大計算量任務:生成報表、數據分析,CPU 一直被佔,其他請求全卡住? 定時任務:凌晨跑統計、每小時同步數據,難道要寫個死循環 time.Sleep? 所以,聰明的我們會把這些任務扔進異步任務隊列,讓後台“工人”(Worker)慢慢處理。

定時任務 , 分佈式 , go

收藏 評論

要出家的扁豆 - [leetcode]876. 鏈表的中間結點

示例 輸入:head = [1,2,3,4,5] 輸出:[3,4,5] 解釋:鏈表只有一箇中間結點,值為 3 。 輸入:head = [1,2,3,4,5,6] 輸出:[4,5,6] 解釋:該鏈表有兩個中間結點,值分別為 3 和 4 ,返回第二個結點。 思路 數組 鏈表轉存數組,有順序下標,根據長度判斷中間點。 遍歷鏈表 新建數組 鏈表填充到數組中 返回數

leetcode , go

收藏 評論

Ansurfen - Hulo語言架構:從源代碼到目標代碼的完整流程

最近這一段時間忙着工作和開發Hulo編程語言,滿打滿算已經過了三個月多了。心血來潮,想梳理下Hulo編程語言的開發流程,也順帶以個人的視角解讀下編程語言是如何從零開始誕生的。希望通過這篇文章,能夠為對編程語言實現感興趣的開發者提供一個實踐性的參考,同時也記錄下這段充滿挑戰和收穫的開發歷程。 架構 Hulo語言的定位是批處理腳本的編譯器,最終經過編譯後的目標語言是Bash、Batch、VBS、Pow

批處理 , 教程 , 知識 , 編程語言 , go

收藏 評論

煩惱的沙發 - 別再手擼了,6個Go庫加持,寫代碼快得飛起

剛從 PHP/Java 轉 Go 的同學,是不是會覺得Go 的標準庫是挺牛,啥都有,但真要搓個像樣的Web應用出來,好像又什麼都得自己手擼。路由、配置、ORM……結果項目還沒開始,人已經勸退了。 過來人告訴你,這思路不對。地道的Gopher,早就學會用使用工具了。今天,我就掏出我壓箱底的寶貝,聊聊那6個幾乎成了Go項目標配的神器。 坐穩了,發車! Gin: Web開發的事實標準 想用Go寫API?

開發工具 , go , 後端

收藏 評論

CodeSheep - 我天,Java 已淪為老四。。

略想了一下才發現,自己好像有大半年都沒有關注過 TIOBE 社區了。 TIOBE 編程社區相信大家都聽過,這是一個查看各種編程語言流行程度和趨勢的社區,每個月都有榜單更新,每年也會有年度榜單和總結出爐。 昨晚在家整理瀏覽器收藏夾時,才想起了 TIOBE 社區,於是打開看了一眼最近的 TIOBE 編程語言社區指數。 沒想到,Java 居然已經跌出前三了,並且和第一名 Python 的差距也進一步拉

JAVA , c , go , Javascript , Python

收藏 評論

gvison - Sponge:一個重構Go開發體驗的框架,幫助你在開發項目中"開掛"

前言 Go 語言簡潔、高效、併發性能超神,簡直是後端開發的一股清流。喜歡它的純粹,愛它那 “less is more” 的哲學。但説實在的,這份“純粹”有時候也意味着咱得“白手起家”,從零開始搭輪子。 每天寫着相似的 “樣板代碼”(Boilerplate Code),一遍又一遍地處理着數據庫的增刪改查(CRUD),為 HTTP 和 gRPC 服務手寫着數據綁定和服務註冊...... 是不是感覺身體

框架 , grpc , 開發工具 , gin , go

收藏 評論

Linker - Go源碼學習(基於1.24.1)-slice擴容機制-實踐才是真理

本文起於一次驗證slice擴容機制的測試,搜索引擎和AI給我們關於slice擴容機制的解釋大多是“低於1024翻倍,超過則乘1.25倍”(以下用“1024機制”代指),但是在我基於go1.24.1的結果卻完全不是這麼回事,難道是營銷號太多誤導我們了嗎?以下將結合源碼學習,實踐是檢驗真理的唯一標準。 一. 驗證我們隨手搜到的“1024機制” a := make([]int, 0, 512)

源碼學習 , slice , 擴容 , go

收藏 評論

得物技術 - 可擴展系統設計的黃金法則與Go語言實踐|得物技術

一、引言:為什麼需要可擴展的系統? 在軟件開發領域,需求變更如同家常便飯。一個缺乏擴展性的系統,往往在面對新功能需求或業務調整時,陷入“改一行代碼,崩整個系統”的困境。可擴展性設計的核心目標是:讓系統能夠以最小的修改成本,適應未來的變化。對於Go語言開發者而言,利用其接口、併發、組合等特性,可以高效構建出適應業務演進的系統。 本文將從架構設計原則、編碼實踐、架構實現模式、驗證指標到演進路線,系統講

開發工具 , go , 後端

收藏 評論

粘豆煮包 - 腦抽研究生Go併發-1-基本併發原語-下-Cond、Once、Map、Pool、Context

Once 單例對象:在整個應用程序的生命週期中,只有一個實例存在,並提供一個全局統一的訪問點來獲取這個唯一的實例 應用場景:數據庫連接池,全局配置管理器,日誌記錄器 (Logger) Once 是在 Go 語言中實現線程安全的單例模式的完美且最地道的工具 使用 Once 可能出現的 2 種錯誤 第一種錯誤:死鎖 ​ once.Do()中再次調用once.Do() 第二種錯誤

goroutine , 知識 , 併發 , go , 後端

收藏 評論

探索雲原生 - HAMi vGPU 原理分析 Part4:Spread&Binpack 高級調度策略實現

上篇我們分析了 hami-scheduler 工作流程,知道了 hami-webhook、hami-scheduler 是怎麼配合工作的。 本文為 HAMi 原理分析的第四篇,分析 hami-scheduler 在調度時是如何選擇節點的,即:Spread、Binpack 等高級調度策略是怎麼實現的。 !--more-- 這篇文章我們解決最後一個問題:_Spread、Binpack 等高級調度策略

容器 , kubernetes , gpu , 人工智能 , go

收藏 評論