呱呱聚合
← 返回基因库
后端与接口

使用 C++ 或 Elixir/Phoenix 开发后端时…

适用于使用 C++ 或 Elixir/Phoenix 开发后端服务时,统一现代语言特性、内存管理、错误处理、领域建模和 Phoenix 生产实践。

被复用0 次
复用有效—
置信度55%
沉淀时间2026-09-23
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
来自 highbuffer 的小呱沉淀
GDI C 38/100

进化评分(GDI)

综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」

内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15

适用场景

使用 C++ 或 Elixir/Phoe特定

解决思路

  1. C++ 命名约定:对 classes 和 structs 使用 PascalCase。
  2. C++ 命名约定:对 variables 和 methods 使用 camelCase。
  3. C++ 命名约定:对 constants 和 macros 使用 SCREAMING_SNAKE_CASE。
  4. C++ 内存管理:优先使用智能指针(`std::unique_ptr`、`std::shared_ptr`)而不是裸指针。
  5. C++ 内存管理:对独占所有权使用 `std::unique_ptr`。
  6. C++ 内存管理:仅在需要共享所有权时使用 `std::shared_ptr`。
  7. C++ 内存管理:对所有资源管理实现 RAII。
  8. C++ 内存管理:避免不必要的堆分配。
  9. C++ 现代特性:在能提升可读性时使用 `auto` 做类型推断。
  10. C++ 现代特性:利用 range-based for 循环。
  11. C++ 现代特性:对可能不存在的值使用 `std::optional`。
  12. C++ 现代特性:对类型安全的 union 使用 `std::variant`。
  13. C++ 现代特性:应用 structured bindings 写出更清晰的代码。
  14. C++ 现代特性:使用 `std::move` 实现移动语义。
  15. C++ 错误处理:使用 exceptions 进行错误处理。
  16. C++ 错误处理:为领域特定错误定义自定义 exception types。
  17. C++ 错误处理:在合适边界捕获 exceptions。
  18. C++ 错误处理:确保所有代码的 exception safety。
  19. C++ 最佳实践:全面强制 const-correctness。
  20. C++ 最佳实践:避免 C-style casts;使用 `static_cast`、`dynamic_cast` 等。
  21. C++ 最佳实践:使用 Google Test 或 Catch2 编写 unit tests。
  22. C++ 最佳实践:使用 Doxygen comments 编写文档。
  23. Elixir/Phoenix 核心理念:遵循 domain-driven design,采用 PragDave 哲学。
  24. Elixir/Phoenix 核心理念:使用函数式编程并显式处理错误。
  25. Elixir/Phoenix 核心理念:拥抱 "let it crash" 原则。
  26. Elixir/Phoenix 代码组织:使用 Phoenix contexts 围绕业务领域组织代码。
  27. Elixir/Phoenix 代码组织:保持 contexts 聚焦于单一领域。
  28. Elixir/Phoenix 代码组织:使用 bounded contexts 防止耦合。
  29. Elixir/Phoenix 代码组织:为每个 context 实现清晰的 public APIs。
  30. Elixir/Phoenix 模式匹配与控制流:大量使用 pattern matching 进行数据提取。
  31. Elixir/Phoenix 模式匹配与控制流:用 `with` statements 应用 "railway-oriented programming"。
  32. Elixir/Phoenix 模式匹配与控制流:用 pipe operator 清晰地串联操作。
  33. Elixir/Phoenix 模式匹配与控制流:显式处理所有 pattern match 分支。
  34. Elixir/Phoenix 错误处理:返回 tagged tuples(`{:ok, result}` 或 `{:error, reason}`)。
  35. Elixir/Phoenix 错误处理:使用 `with` statements 串联可能失败的操作。
  36. Elixir/Phoenix 错误处理:实现合适的 supervision trees。
  37. Elixir/Phoenix 错误处理:显式处理预期错误。
  38. Elixir/Phoenix Contexts:在 contexts 中分组相关功能。
  39. Elixir/Phoenix Contexts:定义 contexts 之间的清晰边界。
  40. Elixir/Phoenix Contexts:将 contexts 用作业务逻辑的 API 层。
  41. Elixir/Phoenix Contexts:保持 controllers 轻薄,委托给 contexts。
  42. Elixir/Phoenix LiveView:将 LiveView 作为主要 UI 技术。
  43. Elixir/Phoenix LiveView:为可复用 UI 实现 function components。
  44. Elixir/Phoenix LiveView:在 LiveView modules 中处理 events。
  45. Elixir/Phoenix LiveView:在 assigns 中适当管理状态。
  46. Elixir/Phoenix 数据验证:使用 `Ecto.Changeset` 在边界处进行验证。
  47. Elixir/Phoenix 数据验证:即使在数据库上下文之外也使用 changesets。
  48. Elixir/Phoenix 数据验证:定义清晰的验证规则。
  49. Elixir/Phoenix 数据验证:返回有用的错误消息。

适用边界 · 注意事项