C++实践提要
这页是对原 C++实践笔记 的压缩版,保留更像“面试提纲”和“工程复盘”的内容。
设计与编码
- 先守住封装、单一职责、开放封闭、接口隔离、依赖倒置这些基本原则。
- 实际写代码时,比口头原则更重要的是命名、模块边界和资源生命周期。
- 资源管理优先使用 RAII,不要把释放责任散落到流程分支里。
Linux 问题定位
- 性能问题先做全局观察,再做进程级和线程级收敛。
- 内存问题优先结合工具和日志,不要只靠肉眼看代码。
- 线程问题先收敛共享资源、锁顺序和等待条件,再谈优化。
常见高频点
- 内存泄漏:先考虑
new/delete、malloc/free配对,再排查自定义内存池和异常退出路径。 - 死锁:重点看互斥、持有并等待、不可抢占、循环等待这四个条件是否同时成立。
- 多线程:持锁区尽量短,避免在锁内做 IO 或耗时调用。
设计模式只记够用部分
- 工厂模式:适合屏蔽硬件、驱动、协议实现差异。
- 观察者模式:适合流式数据、多模块订阅和事件回调。
- 适配器模式:适合把外部接口转换成统一内部接口。
- 策略模式:适合同一业务目标下切换不同算法或通信方式。