mcpField
B
backend-development

backend-development

github.com/mindrally开发289767 次安装3 周前更新
代码仓库

关于 backend-development

面向 C++ 与 Elixir/Phoenix 后端开发的技能指南,涵盖代码组织、错误处理和资源管理等实践。

主要功能

  1. 01C++ 命名与内存管理规范
  2. 02现代 C++ 特性使用建议
  3. 03Phoenix contexts 领域组织
  4. 04模式匹配与错误处理
  5. 05LiveView 与 Ecto 验证实践

适用场景

  1. 01制定 C++ 代码评审准则
  2. 02组织 Phoenix 业务上下文
  3. 03处理后端资源与错误
  4. 04编写 LiveView 和数据验证代码

安装

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

$npx skills add https://github.com/mindrally/skills --skill backend-development

安装后在 Claude Code 中输入/backend-development确认已加载。

详细介绍

后端开发

你是 C++ 和 Elixir/Phoenix 后端开发专家。

C++ 开发

命名约定
  • 类和结构体使用 PascalCase
  • 变量和方法使用 camelCase
  • 常量和宏使用 SCREAMING_SNAKE_CASE
内存管理
  • 优先使用智能指针(std::unique_ptr、std::shared_ptr),而非原始指针
  • 独占所有权时使用 std::unique_ptr
  • 仅在需要共享所有权时使用 std::shared_ptr
  • 使用 RAII 管理所有资源
  • 避免不必要的堆分配
现代 C++ 特性
  • 在有助于提高可读性时,使用 auto 推导类型
  • 充分利用基于范围的 for 循环
  • 对可能不存在的值使用 std::optional
  • 使用 std::variant 实现类型安全的联合
  • 使用结构化绑定,让代码更简洁
  • 使用 std::move 实现移动语义
错误处理
  • 使用异常处理错误
  • 为特定领域的错误定义自定义异常类型
  • 在适当的边界捕获异常
  • 确保所有代码都具备异常安全性
最佳实践
  • 全面遵循 const 正确性
  • 避免使用 C 风格的强制类型转换;改用 static_cast、dynamic_cast 等
  • 使用 Google Test 或 Catch2 编写单元测试
  • 使用 Doxygen 注释编写文档

Elixir 和 Phoenix 最佳实践

核心理念
  • 遵循 PragDave 理念进行领域驱动设计
  • 使用函数式编程,并明确处理错误
  • 践行“任其崩溃”(let it crash)原则
代码组织
  • 使用 Phoenix contexts,围绕业务领域组织代码
  • 让每个 context 专注于单一领域
  • 使用限界上下文,避免耦合
  • 为每个 context 实现清晰的公共 API
模式匹配和控制流
  • 广泛使用模式匹配提取数据
  • 使用 with 语句实现“铁路式编程”
  • 使用管道操作符整洁地串联操作
  • 明确处理所有模式匹配情况
错误处理
  • 返回带标签的元组({:ok, result} 或 {:error, reason})
  • 使用 with 语句串联可能失败的操作
  • 实现恰当的监督树
  • 明确处理预期错误
Phoenix contexts
  • 在 contexts 中归类相关功能
  • 明确划分 contexts 之间的边界
  • 将 contexts 用作业务逻辑的 API 层
  • 保持控制器精简,将工作委托给 contexts
LiveView
  • 将 LiveView 作为主要的 UI 技术
  • 实现函数组件以复用 UI
  • 在 LiveView 模块中处理事件
  • 在 assigns 中适当管理状态
数据验证
  • 使用 Ecto.Changeset 在边界处进行验证
  • 即使在数据库上下文之外,也使用 changesets
  • 定义清晰的验证规则
  • 返回有帮助的错误消息

评论

支持 Markdown