标签: best-practices
与该标签相关的所有文章 "best-practices".
-
tokio(四):陷阱与生产最佳实践
tokio 最常见的陷阱分为两类:阻塞运行时(在 async 上下文中做同步操作)和取消安全(Future 在 .await 点被 drop 导致状态丢失)。本文列举 10 个高频陷阱和对应的生产级修复方案,以及 runtime 配置、优雅关闭、可观测性和错误处理的最佳实践。
-
C++ 工程化(二):命名规范没有统一标准但有底线规则
C++ 没有统一的命名规范,主流风格(STL/Google/LLVM/Qt/Unreal)各自为政——这是 C++ 40 年多时代叠加的历史遗留问题。但"没有统一标准"不等于"怎么写都行":C++ 标准对保留标识符有硬性规定,违反就是 UB;宏必须全大写也是跨风格的唯一共识。实操铁律是:进入已有 codebase 严格 follow,新建项目选一个成熟 style guide 一以贯之,并用 clang-format 强制执行——风格选择的质量远不如风格一致性的质量重要。
-
Go 基础:错误处理与 Errors Are Values
Go 将错误视为普通值(error 是一个只含 Error() string 方法的 interface),通过多返回值强制调用者显式处理,而非像 Java/Python 那样用异常机制隐式传播。Go 1.13 引入 error wrapping(%w、errors.Is、errors.As),Go 1.20 引入 errors.Join 支持多错误合并。这套机制的核心优势是:控制流可见、错误可编程、无隐式传播。代价是 if err != nil 样板代码多,但 Go 团队已于 2025 年 6 月正式宣布不再追求语法层面的错误处理变更。
-
Go 并发(五):并发模式与最佳实践
Go 的并发编程远不止 goroutine + channel。生产级代码需要掌握 context 传播与取消树、errgroup 有界并发、worker pool 模式、graceful shutdown 全流程、race detector 的 CI 集成,以及至少十种常见反模式的识别与规避。本文是"如何在生产环境写出正确并发 Go 代码"的完整指南。