struct 到底实现了哪些接口?让 Go 的隐式接口更友好一点

Posted on 五 10 7月 2026 in Tech • Tagged with Go, interface, gopls, golangci-lint, uml, plantuml, mermaid, best-practice, backend

Go 的隐式接口(duck typing)写起来很爽,但代价是"看不见"——一个 struct 到底实现了哪些接口,光看代码根本一眼看不出来。这篇不改语言、不等官方,从编译期断言、gopls 双向跳转、golangci-lint、go generate 到自己写工具生成 UML 类图(附开源项目 gouml),一层层把可发现性补回来,附可跑的例子和一份可落地清单。


Continue reading

Channel 还是锁?聊聊 Go 里那些好用的并发模式

Posted on 二 07 7月 2026 in Tech • Tagged with Go, concurrency, channel, mutex, goroutine, pattern, backend

做后端的,跟高并发、大流量打交道是家常便饭。分而治之是基本思想,多进程、多线程、多路复用、异步是基本手段。到了 Go 这里,最常被问的一个问题是:面对资源竞争,到底该用 Channel 还是互斥锁?这篇给一个能记住的判断口诀,再把 Go 里几种真正好用的并发模式一个个拆开讲——附可跑的代码和一张选型清单。


Continue reading

一个字符串引发的血案:从 C 到 Go 的 rune,字符串是怎么一步步进化的

Posted on 一 06 7月 2026 in Tech • Tagged with string, unicode, c, cpp, java, python, go, rune, encoding

字符串看着最简单,坑却最深。从 C 的一根 char 指针,到 C++ 的 std::string,到 Java/Python 的对象化,再到 Go 的 rune,这一路演进本质上就在解决三个问题:谁管内存、长度怎么算、一个"字"到底是什么。这篇按时间线把它们串起来,讲清楚每一步为什么这么设计、又留下了什么坑。


Continue reading

Go 服务用 AI 写代码:工具链白送了半套 harness,你只是没拧紧

Posted on 四 11 6月 2026 in Tech • Tagged with AI, harness, golang, go, testing, golangci-lint, ci

同样用 AI 写代码,Go 后端比 Spring Boot 那套好伺候——因为 Go 的工具链(gofmt / go vet / go test -race / -cover)天生白送了半套 harness。问题是,白送的不等于拧紧的,多数团队连这半套都没接进 CI 闸门。本文讲清楚 AI 在 Go 项目里真正爱翻的三块(吞错误、并发竞态、幻觉依赖),怎么先把白送的工具链拧紧,再用 AGENTS.md、internal 边界、depguard、表驱动测试、golangci-lint 把缺的那半套补上,并给出可直接抄的配置、CI 闸门和行动 / 检查清单。


Continue reading

PERM 模型与 Casbin:把云端授权从代码里抠出去

Posted on 二 02 6月 2026 in Tech • Tagged with authorization, casbin, perm, go, cloud, security

PERM 元模型把 Policy、Effect、Request、Matchers 四块拼图抽象出来,让一份配置文件就能撑起 ACL、RBAC、ABAC 各种授权花样。Casbin 是这套理论的工程化身,本文用 Go 例子拆开讲它怎么工作,顺便和 OPA 比一比。


Continue reading

从零构建一个迷你 Zoom:Lazy Rabbit Meeting 架构全解析

Posted on 日 08 3月 2026 in Tech • Tagged with WebRTC, Go, Vue.js, SFU, 视频会议, 实时通信, Architecture

详细讲解如何用 Go + Vue.js + WebRTC 从零构建一个具备完整功能的迷你视频会议系统,包含 SFU 引擎、JMPP 信令协议、屏幕共享、服务端录制和 Docker 部署。


Continue reading

Go crypto/tls Config.Clone session resumption pitfalls (CVE-2025-68121)

Posted on 三 25 2月 2026 in Tech • Tagged with go, security, tls, cve

CVE-2025-68121 涉及 Go crypto/tls 的两个会话恢复(session resumption)问题:Config.Clone 复制了自动生成的 session ticket keys,导致不同 tls.Config 之间意外共享会话票据;以及服务端在判断会话是否可恢复时,只检查 leaf 证书过期而忽略完整证书链,可能让过期链条下的会话继续被恢复。


Continue reading

为什么要尽量少用 Go 里的 unsafe

Posted on 三 11 2月 2026 in Tech • Tagged with Go, unsafe, memory-safety, best-practices

unsafe 能绕过类型系统做“危险动作”,但代价是内存安全、可移植性和可维护性;什么时候非用不可、怎么用才不踩雷,一文说清。


Continue reading

Debug Build 的两种哲学:C++ 宏 vs Go 链接器注入

Posted on 二 03 2月 2026 in Tech • Tagged with C++, Go, build, debugging, compilation, best-practices

从 C++ 的 -DDEBUG 宏到 Go 的 -ldflags -X,聊聊两种语言在"条件编译"上的不同哲学,以及 Go 独有的 Build Tags 玩法。


Continue reading

悲观锁、乐观锁、无锁:Go 并发控制的三种姿势

Posted on 三 28 1月 2026 in Tech • Tagged with Go, concurrency, lock, mutex, atomic, channel, performance

并发编程最怕什么?数据竞争。解决数据竞争最常见的方法是加锁,但锁也分三六九等。本文用 Go 代码实战,带你理解悲观锁、乐观锁、无锁三种并发控制策略的原理、实现和适用场景。


Continue reading

Go 程序崩溃分析实战:从 Coredump 到根因定位

Posted on 五 23 1月 2026 in Tech • Tagged with Go, debugging, coredump, delve, crash, panic

一篇关于 Go 程序崩溃分析的实战指南,涵盖 coredump 生成、分析方法和预防措施


Continue reading

用 Eino 构建 AI Agent:Go 开发者的 LangChain 终于来了

Posted on 三 14 1月 2026 in AI • Tagged with Go, AI-agent, eino, LLM, cloudwego

字节跳动开源的 Eino 框架,让 Go 开发者也能优雅地构建 AI Agent——本文带你从零开始,用 Go 写一个智能穿衣助手


Continue reading

警惕!你的 Go 程序正在偷偷"泄漏" —— 详解 Goroutine Leak

Posted on 六 13 12月 2025 in Tech • Tagged with Go, goroutine-leak, memory-leak, troubleshooting, performance

以为有了 GC 就可以高枕无忧?太天真了!Go 程序中最隐秘的杀手 —— Goroutine Leak,正在悄悄吃掉你的内存。本文带你深入现场,手把手教你如何发现、排查并彻底消灭它。


Continue reading

Go 微服务访问控制之 Casbin 实践指南

Posted on 日 13 7月 2025 in Tech • Tagged with journal, blog, Go, casbin, authentication, authorization, microservices

详细介绍如何在 Go 微服务中集成 Casbin 实现灵活的访问控制,包括 JWT 认证和基于角色的权限管理


Continue reading

通过通信来共享内存, 而不是通过共享内存来通信

Posted on 三 26 3月 2025 in Tech • Tagged with Go, blog

| Abstract | 通过通信来共享 | | --------------|------------------------| | Authors | Walter Fan | | Category | learning note | | Status | v1.0...


Continue reading

go 语言的常见陷阱

Posted on 二 25 3月 2025 in Tech • Tagged with Go, blog

| Abstract | go 语言的常见陷阱 | | --------------|------------------------| | Authors | Walter Fan | | Category  | learning note  | | Status | v...


Continue reading

边车模式的协议设计

Posted on 六 22 3月 2025 in Tech • Tagged with Go, pattern

| Abstract | 边车模式的协议设计 | | --------------|------------------------| | Authors | Walter Fan | | Category  | learning note  | | Status | v1...


Continue reading

用 WebRTC 和 Pion 打造一款网络录音机

Posted on 日 09 3月 2025 in Tech • Tagged with Go, blog

| Abstract | 用 WebRTC 和 Pion 打造一款网络录音机 | | --------------|------------------------| | Authors | Walter Fan | | Category  | learning note  |...


Continue reading