所有 Skills
找到 8542 个 Skills
Skills 列表

golang-code-style
Golang 代码风格约定——行长度与换行、变量声明、控制流清晰度、何时注释有益或有害。在编写或审查 Go 代码、询问风格或清晰度、或建立项目编码标准时使用。不适用于命名约定(→ 参见 `samber/cc-skills-golang@golang-naming` 技能)、linter 配置(→ 参见 `samber/cc-skills-golang@golang-lint` 技能)或文档注释(→ 参见 `samber/cc-skills-golang@golang-documentation` 技能)。
samber
golang-error-handling
地道的 Golang 错误处理——创建、使用 %w 包装、errors.Is/As、errors.Join、自定义错误类型、哨兵错误、panic/recover、单一处理规则、使用 slog 的结构化日志、HTTP 请求日志中间件,以及用于生产环境错误的 samber/oops。旨在使日志在规模上可用于日志聚合第三方工具。在 Go 代码中创建、包装、检查或记录错误时应用。有关 samber/oops 的详细信息,请参阅 `samber/cc-skills-golang@golang-samber-oops` 技能;有关 slog 处理器生态系统,请参阅 `samber/cc-skills-golang@golang-samber-slog` 技能。
samber
golang-performance
Golang 性能优化模式与方法论——如果存在 X 瓶颈,则应用 Y。涵盖内存分配减少、CPU 效率、内存布局、GC 调优、池化、缓存和热路径优化。当性能分析或基准测试已识别出瓶颈,且需要正确的优化模式来修复时使用。也用于执行性能代码审查,以提出改进建议或有助于快速识别性能提升的基准测试。不适用于测量方法论(→ 参见 `samber/cc-skills-golang@golang-benchmark` 技能)或调试工作流(→ 参见 `samber/cc-skills-golang@golang-troubleshooting` 技能)。
samber
golang-design-patterns
地道的 Golang 设计模式——函数选项、构造函数、错误流与级联、资源管理与生命周期、优雅关闭、弹性、架构、依赖注入、数据处理、流式处理等。在明确选择架构模式、实现函数选项、设计构造函数 API、设置优雅关闭、应用弹性模式或询问哪种地道的 Go 模式适合特定问题时应用。
samber
golang-testing
生产级 Go 测试——表格驱动测试、testify 套件与模拟、并行测试、模糊测试、测试夹具、基于 goleak 的协程泄漏检测、快照测试、代码覆盖率、集成测试、惯用测试命名。在编写或审查 Go 测试、选择测试方法、配置 Go 测试 CI、或调试不稳定/慢速测试时使用。有关 testify 特定 API,请参见 `samber/cc-skills-golang@golang-stretchr-testify`;有关测量方法,请参见 `samber/cc-skills-golang@golang-benchmark`。
samber
golang-security
Golang 安全最佳实践与漏洞防护。涵盖注入(SQL、命令、XSS)、密码学、文件系统安全、网络安全、Cookie、密钥管理、内存安全与日志记录。适用于编写、审查或审计 Go 代码的安全性,或处理涉及密码学、I/O、密钥管理、用户输入处理或身份验证的高风险代码。包含安全工具的配置。
samber
golang-concurrency
Golang 并发模式。在编写或审查涉及 goroutine、channel、select、锁、同步原语、errgroup、singleflight、工作池或扇出/扇入管道的并发 Go 代码时使用。当检测到 goroutine 泄漏、竞态条件、channel 所有权问题,或需要在 channel 和互斥锁之间做出选择时也会触发。
samber
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