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

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