主要观点:
- 指南(guidelines)和规则(rules)有区别,将指南简化为规则会使代码更难理解。
- 规则对开发者来说更方便,但可能导致代码质量下降。
- 以 C++ Core Guidelines 为例,说明了不同规则和指南的特点及相互关系。
- 指南在不同情境下可能相互矛盾,应思考其原理和适用性,而非盲目遵循。
关键信息:
- Captain Barbossa 认为《加勒比海盗》中的“法典”更像是指南而非规则。
- 规则方便但可能限制灵活性,指南更注重原因和例外。
- C++ Core Guidelines 中的多个规则和指南,如 C.20 的“零规则”、C.21 的“五规则”等。
- 对于一些服务类,持有引用数据成员可能更合适,但可能违反指南引发问题。
重要细节:
- “零规则”:能避免定义默认操作就不定义。
- “五规则”:定义或删除任何复制、移动或析构函数时,应全部定义或删除。
- C.12 指南:在可复制或可移动类型中,不要使数据成员为 const 或引用。
- 服务类中常持有对其他服务类的引用,可能违反某些指南。
总结:强调了区分指南和规则的重要性,以 C++ Core Guidelines 为例说明了两者的差异及在实际编程中的情况,提醒开发者应理性对待指南,不盲目遵循。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。