Go

Go语言调试与开发专家,解决并发、内存、依赖等棘手问题

安装使用

复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:

帮我安装这个 AI Skill:Go。
它的用途是:Go语言调试与开发专家,解决并发、内存、依赖等棘手问题
详细介绍见:https://321skill.com/skills/go-x-2/
请根据该页面的说明完成安装。

使用示例

'我的Go服务运行一段时间后内存持续增长,pprof显示goroutine数量上万,怀疑是goroutine泄漏。帮我分析下面这段代码中goroutine的创建和退出逻辑。' 它会检查goroutine是否在return前没有被正确关闭,检查channel是否阻塞,建议使用context.WithCancel或sync.WaitGroup控制生命周期,并给出修复后的代码。

介绍

该技能专为解决Go语言开发中常见的棘手问题而设计,包括goroutine泄漏、数据竞争、nil接口、slice/map的意外行为、go.mod依赖冲突、net/http服务挂死、死锁、通道关闭、内存泄漏等。当出现“all goroutines are asleep - deadlock!”、“concurrent map writes”、“send on closed channel”、“assignment to entry in nil map”或go test -race报告数据竞争时,它能快速定位根因并提供修复方案。此外,还覆盖了交叉编译、cgo、build tags、go:embed、静态容器构建、测试稳定性、GOGC/GOMEMLIMIT调优等场景。

使用方式简单直接:将Go代码或错误信息粘贴给AI,或描述具体现象(如“服务内存持续增长”、“定时器未释放”),它会分析代码逻辑、生成诊断建议、提供修复代码示例,并解释原理。支持交互式调试,可逐步引导排查。

适合Go后端开发工程师、全栈开发者、测试工程师、运维工程师等需要频繁处理Go并发、内存、依赖问题的技术人员。也适用于学习Go语言进阶特性的开发者,帮助理解Go的运行时机制和最佳实践。

注意:该技能聚焦于Go语言本身的特性,不适合用于Kubernetes operator或框架内部逻辑的调试。对于大型项目的代码重构或架构设计,建议结合其他技能使用。使用时请提供尽量完整的上下文(如代码片段、错误堆栈、go.mod内容),以获得更精准的分析。

核心特点

专注于Go语言特有的并发陷阱和内存模型(如goroutine调度、逃逸分析、接口判空),而非通用编程助手;能直接解析Go运行时错误信息并给出针对性修复。

注意事项

不适合Kubernetes operator、框架内部实现、非Go语言项目,以及纯业务逻辑设计。

常见问题

这个Skill能帮我调试Go数据竞争吗?

可以。提供`go test -race`的输出和可疑代码,它会分析竞争条件并给出修复建议(如加锁、使用channel、原子操作等)。

如何处理Go内存泄漏?

提供pprof堆栈或代码片段,技能会分析goroutine数量、定时器、连接泄漏等,并推荐使用`go tool pprof`或`runtime/pprof`定位泄漏点。