所有 Skills
找到 4065 个 Skills
Skills 列表

golang-naming
Go(Golang)命名规范——涵盖包、构造函数、结构体、接口、常量、枚举、错误、布尔值、接收器、getter/setter、函数选项、缩写、测试函数和子测试名称。在编写新的 Go 代码、审查或重构、选择命名替代方案(New vs NewTypeName、isConnected vs connected、ErrNotFound vs NotFoundError、StatusReady vs StatusUnknown 在 iota 0 处)、讨论 Go 包名(utils/helpers 反模式)或询问 Go 命名最佳实践时使用此技能。当用户提到 MixedCaps vs snake_case、ALL_CAPS 常量、getter 的 Get 前缀或错误字符串大小写时也会触发。请勿用于不涉及命名决策的通用 Go 实现问题。
samber
golang-context
Go 语言中惯用的 context.Context 用法——跨 API 边界传播、取消、超时和截止时间、请求作用域的值、用于超出请求存活期的后台工作的 context.WithoutCancel。适用于设计跨层级的 context 传播、调试泄漏或未过期的 context、在 context.Background/TODO/WithoutCancel 之间选择、或在 context 中存储值。不适用于仅将 ctx 作为第一个参数接受的代码。
samber
golang-data-structures
Golang 数据结构 — 切片(内部机制、容量增长、预分配、slices 包)、映射(内部机制、哈希桶、maps 包)、数组、container/list/heap/ring、strings.Builder 与 bytes.Buffer、泛型集合、指针(unsafe.Pointer、weak.Pointer)以及复制语义。在选择或优化 Go 数据结构、实现泛型容器、使用 container/ 包、unsafe 或 weak 指针,或对切片/映射内部机制有疑问时使用。
samber
golang-database
Go数据库访问综合指南——参数化查询、结构体扫描、可空列、事务、隔离级别、SELECT FOR UPDATE、连接池、批量处理、上下文传播及迁移工具。适用于编写、审查或调试与PostgreSQL、MariaDB、MySQL或SQLite交互的Golang代码;用于数据库测试;或关于database/sql、sqlx、pgx的问题。不生成数据库模式或迁移SQL。
samber
golang-documentation
全面的 Golang 项目文档指南,涵盖 godoc 注释、README、CONTRIBUTING、CHANGELOG、Go Playground、示例测试、API 文档和 llms.txt。在编写或审查文档注释、文档、添加代码示例、搭建文档站点或讨论文档最佳实践时使用。适用于库和应用程序/CLI。
samber
golang-safety
防御性 Golang 编码,防止恐慌、静默数据损坏和微妙的运行时错误。在遇到 nil 恐慌、append 别名、map 并发访问、浮点数比较陷阱或零值设计问题时使用。也用于审查代码的 nil 安全性、数值转换溢出、资源生命周期问题(循环中的 defer)或切片和映射的防御性复制。
samber
golang-modernize
将 Golang 代码现代化,使用最新的语言特性、标准库改进和惯用模式。在编写或审查 Go 代码并检测到旧式模式时,或遇到弃用警告时主动触发。当用户明确要求现代化、Go 版本升级或 CI/工具链刷新时也可使用。
samber
golang-project-layout
提供设置 Golang 项目布局和工作区的指南。适用于启动新 Go 项目、组织现有代码库、设置包含多个包的单一仓库、创建包含多个 main 包的 CLI 工具、决定 cmd/internal/pkg 目录约定,或讨论包重构、包拆分、模块拆分时使用。
samber
golang-troubleshooting
系统化地排查 Go 程序问题——找到并修复根本原因。在遇到 Go 代码中的错误、崩溃、死锁或意外行为时使用。涵盖调试方法论、常见 Go 陷阱、测试驱动调试、pprof 设置与捕获、Delve 调试器、竞态检测、GODEBUG 追踪以及生产环境调试。从任何“出问题了”的情况开始。不适用于分析性能剖析或基准测试(→ 参见 `samber/cc-skills-golang@golang-benchmark` 技能)或应用优化模式(→ 参见 `samber/cc-skills-golang@golang-performance` 技能)。
samber
golang-lint
Go 项目的代码检查(Linting)最佳实践与 golangci-lint 配置指南 — 涵盖 Linter 运行、.golangci.yml 配置、//nolint 警报抑制、Lint 输出解析以及 Linter 选型。适用于配置 golangci-lint、咨询 Lint 告警或 nolint 抑制规则、搭建代码质量工具链,以及挑选 Linter 的场景。当用户提及 golangci-lint、go vet、staticcheck 或 revive 时亦可使用。
samber
golang-popular-libraries
推荐生产就绪的 Golang 库和框架。当用户明确要求库建议、想要比较替代方案、需要为特定任务选择库,或正在向项目添加新依赖时应用。
samber
golang-observability
Go 日常可观测性——生产环境中始终开启的信号。涵盖使用 slog 的结构化日志、Prometheus 指标、OpenTelemetry 分布式追踪、使用 pprof/Pyroscope 的持续性能分析、服务端 RUM 事件追踪、告警和 Grafana 仪表盘。适用于为 Go 服务添加生产监控埋点、设置指标或告警、添加 OpenTelemetry 追踪、关联日志与追踪、将遗留日志库(zap/logrus/zerolog)迁移到 slog、为新功能添加可观测性,或实现符合 GDPR/CCPA 规范的客户数据平台(CDP)追踪。不适用于临时深度性能调查(→ 参见 `samber/cc-skills-golang@golang-benchmark` 和 `samber/cc-skills-golang@golang-performance` 技能)。
samber
golang-dependency-management
Golang 项目的依赖管理策略——go.mod 管理、安装/升级包、最小版本选择、漏洞扫描、过时依赖跟踪、二进制体积分析、Dependabot/Renovate 配置、冲突解决以及 go.work 工作区。在添加、删除或升级 Go 依赖、审计漏洞、解决版本冲突或设置自动依赖更新时使用。
samber
golang-structs-interfaces
Golang 结构体和接口设计模式——组合、嵌入、类型断言、类型分支、接口隔离、通过接口进行依赖注入、结构体字段标签、指针接收者与值接收者。在设计 Go 类型、定义或实现接口、嵌入结构体或接口、编写类型断言或类型分支、为 JSON/YAML/DB 序列化添加结构体字段标签、或选择指针接收者与值接收者时使用此技能。当用户询问“接受接口,返回结构体”、编译时接口检查或组合小接口为大接口时也使用此技能。
samber
golang-cli
Golang CLI 应用程序开发。在构建、修改或审查 Go CLI 工具时使用——特别是命令结构、标志处理、配置分层、版本嵌入、退出码、I/O 模式、信号处理、Shell 补全、参数验证和 CLI 单元测试。当代码使用 cobra、viper 或 urfave/cli 时也会触发。对于 cobra 特定 API → 参见 `samber/cc-skills-golang@golang-spf13-cobra` 技能;对于 viper 配置分层 → 参见 `samber/cc-skills-golang@golang-spf13-viper` 技能。
samber
golang-dependency-injection
Go 语言依赖注入(DI)综合指南。涵盖 DI 的重要性(可测试性、松耦合、关注点分离、生命周期管理)、手动构造函数注入以及 DI 库对比(google/wire、uber-go/dig、uber-go/fx、samber/do)。在设计服务架构、设置依赖注入、重构紧耦合代码、管理单例或服务工厂时,或当用户询问 Go 中的控制反转、服务容器或依赖编排时,使用此技能。如需特定 DI 库,→ 请参阅 `samber/cc-skills-golang@golang-google-wire`、`samber/cc-skills-golang@golang-uber-dig`、`samber/cc-skills-golang@golang-uber-fx` 或 `samber/cc-skills-golang@golang-samber-do` 技能。
samber
golang-grpc
提供gRPC使用指南、protobuf组织方式以及适用于Golang微服务的生产就绪模式。在实现、审查或调试gRPC服务器/客户端、编写proto文件、设置拦截器、使用状态码处理gRPC错误、配置TLS/mTLS、使用bufconn进行测试或处理流式RPC时使用。
samber
golang-benchmark
Golang 基准测试、性能分析和性能测量。用于编写、运行或比较 Go 基准测试,使用 pprof 分析热点路径,解释 CPU/内存/跟踪分析结果,使用 benchstat 分析结果,设置 CI 基准回归检测,或使用 Prometheus 运行时指标调查生产性能。当开发者需要对特定性能指标进行深入分析时也可使用——本技能提供测量方法,而 `samber/cc-skills-golang@golang-performance` 提供优化模式。
samber
golang-continuous-integration
使用 GitHub Actions 为 Golang 项目配置 CI/CD 流水线——包括测试、代码检查、SAST、安全扫描、代码覆盖率、Dependabot、Renovate、GoReleaser、代码审查自动化和发布流水线。在设置或改进 Go 项目 CI、配置 GitHub Actions 工作流、添加代码检查器或安全扫描器、自动化依赖更新或添加质量门时使用。
samber
golang-stretchr-testify
stretchr/testify 的全面指南,涵盖 Golang 测试中的 assert、require、mock 和 suite 包。适用于使用 testify 编写测试、创建 mock、设置测试套件或选择 assert 与 require 的场景。涵盖 testify 断言、mock 期望、参数匹配器、调用验证、套件生命周期以及 Eventually、JSONEq 和自定义匹配器等高级模式。当代码库导入 github.com/stretchr/testify 时应用。
samber
golang-stay-updated
提供了解Go语言最新动态的资源,包括新闻、社区和值得关注的人物。在寻找Go学习资源、发现新库、寻找社区渠道或跟进Go语言变化和版本发布时使用。
samber
golang-samber-lo
Golang 的函数式编程辅助工具库,基于 samber/lo — 500 多个类型安全的泛型函数,用于切片、映射、通道、字符串、数学、元组和并发(Map、Filter、Reduce、GroupBy、Chunk、Flatten、Find、Uniq 等)。核心不可变包(lo)、并发变体(lo/parallel 即 lop)、原地修改(lo/mutable 即 lom)、惰性迭代器(lo/it 即 loi,Go 1.23+)以及实验性 SIMD(lo/exp/simd)。适用于使用或采用 samber/lo 时、代码库导入 github.com/samber/lo 时、或在 Go 中实现函数式风格数据转换时。不适用于流式管道(→ 参见 `samber/cc-skills-golang@golang-samber-ro` 技能)。
samber
golang-samber-do
使用 samber/do 在 Golang 中进行依赖注入——服务容器、生命周期管理、作用域、健康检查、优雅关闭和模块组织。适用于使用或采用 samber/do 时,代码库导入 github.com/samber/do 或 github.com/samber/do/v2 时,或者将手动构造函数注入重构为 DI 容器时。
samber
golang-samber-oops
在 Golang 中使用 samber/oops 进行结构化错误处理——错误构建器、堆栈跟踪、错误码、错误上下文、错误包装、错误属性、面向用户与开发者的消息、恐慌恢复以及日志集成。适用于正在使用或采用 samber/oops 的场景,或代码库已导入 github.com/samber/oops 的情况。
samber