mcpField
B
backend-principle-eng-cpp-pro-max

backend-principle-eng-cpp-pro-max

github.com/praxstack开发1104 次安装5 天前更新
代码仓库

关于 backend-principle-eng-cpp-pro-max

backend-principle-eng-cpp-pro-max 是面向资深工程师的 C++ 后端与基础设施指导技能,侧重正确性、内存安全和可预测性能。它提供从设计、代码审查到测试和事故响应的优先级与工作流程。

主要功能

  1. 01强调 RAII、边界检查与不变量
  2. 02涵盖超时、背压和优雅关闭
  3. 03提供安全解析与构建加固建议
  4. 04关注延迟、分配和可观测性
  5. 05纳入 Sanitizer、模糊测试与负载测试

适用场景

  1. 01设计或重构 C++ 后端服务
  2. 02审查内存安全、并发和延迟风险
  3. 03构建高吞吐网络或存储系统
  4. 04调查性能回归与生产事故

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/praxstack/skills-and-personas --skill backend-principle-eng-cpp-pro-max

安装后在 Claude Code 中输入/backend-principle-eng-cpp-pro-max确认已加载。

附带文件references/cpp-core.md

详细介绍

后端原则:C++ Pro Max

面向 C++ 后端系统、低延迟服务和基础设施的专家级指导。强调正确性、内存安全和可预测的性能。

适用场景

  • 设计或重构 C++ 后端服务和基础设施
  • 审查代码中的内存安全、并发问题和延迟回归
  • 构建高吞吐网络、存储或计算系统
  • 处理事故和性能回归

优先级模型(从高到低)

优先级类别目标信号
1正确性与避免未定义行为不出现未定义行为RAII、不变量、经过验证的输入
2可靠性与韧性高负载下安全失败超时、背压、平滑关闭
3安全性难以被利用加固构建、安全解析、最小权限
4性能与延迟可预测的 P99稳定的分配、有界队列、在安全的情况下零拷贝
5可观测性与可运维性快速排查Trace ID、结构化日志、指标
6可扩展性与演进安全增长无状态、分片、协议版本控制
7工具与测试可持续的开发效率Sanitizer、模糊测试、CI 门禁

快速参考(规则)

1. 正确性与避免未定义行为(关键)
  • raii - 使用 RAII 管理资源,并确保生命周期确定
  • no-raw-ownership - 原始指针仅用于非拥有型引用
  • bounds - 在边界处验证所有索引和大小
  • invariants - 断言核心不变量和状态转换
  • time - 使用单调时钟计算时长
2. 可靠性与韧性(关键)
  • timeouts - 为每次外部调用设置明确的超时
  • backpressure - 使用有界队列;实施负载削减
  • shutdown - 在截止时间内排空正在处理的工作
  • bulkheads - 按依赖隔离线程池
3. 安全性(关键)
  • safe-parse - 验证不可信输入;避免不安全的字符串操作
  • harden - 使用栈保护、PIE、RELRO、FORTIFY 进行编译
  • secrets - 不要在日志或 Core Dump 中记录机密
  • least-priv - 尽可能降低权限并进行沙箱隔离
4. 性能与延迟(高)
  • allocs - 尽量减少热路径中的内存分配
  • copy - 优先使用移动或视图;避免不必要的拷贝
  • cache - 提高局部性;避免伪共享
  • io - 适当使用异步 I/O
  • profiling - 优化前先进行测量
5. 可观测性与可运维性(高)
  • logs - 使用包含请求 ID 和 Trace ID 的结构化日志
  • metrics - 采用 RED/USE 指标和业务 KPI
  • tracing - 在线程间传递 Trace 上下文
  • crash - 生成带符号的崩溃报告并制定 Core Dump 策略
6. 可扩展性与演进(中)
  • stateless - 将状态外置,以支持水平扩展
  • partitioning - 按稳定的键进行分片
  • versioning - 对协议和架构进行版本控制
  • limits - 明确规定负载大小和队列大小的上限
7. 工具与测试(中)
  • sanitizers - 在 CI 中使用 ASan、UBSan、TSan
  • fuzzing - 对解析器和协议处理程序进行模糊测试
  • tests - 进行单元测试、集成测试和负载测试
  • lint - 使用 clang-tidy、clang-format,并将警告视为错误

执行工作流

  1. 明确延迟/SLO、吞吐量和成本预算
  2. 梳理数据流、线程模型和故障模式
  3. 定义接口和内存所有权约定
  4. 使用有界队列和明确的超时进行实现
  5. 添加可观测性和崩溃诊断
  6. 使用 Sanitizer、模糊测试和负载测试进行验证
  7. 审查风险并发布运行手册

特定语言指导

工具链默认设置、并发模式和加固方案见 references/cpp-core.md。

评论

支持 Markdown