个人编码习惯——C++(持续更新)

本文详细介绍了C++编程中关于函数命名、变量前缀、头文件包含、代码注释和接口设计的一系列规范。强调了私有/保护函数、公共函数的驼峰命名,以及时间、整型变量的前缀约定。此外,还讨论了如何遵循迪米特原则、单一职责原则,以及使用lambda表达式以减少不必要的接口和提高代码封装性。文中还提及了枚举命名规范、常引用的使用技巧、多继承时的类型拆箱建议,以及接口类和抽象类的命名约定。整体内容旨在提升代码质量和可维护性。
  1. private/protected函数使用小驼峰,如createWindow
  2. public函数使用大驼峰,如CreateWindow
  3. 时间变量前缀,tmXXX表示time_t类型,ulXXX表示uint64_t类型,uXXX表示uint32_t类型
  4. 命名空间无特殊情况统一小写
  5. 分层设计时,某一层的门面头文件不可包含另一层的门面头文件,如ui/ui.h不可包含dao/dao.h
  6. 代码段推荐注释方法
  7. 头文件#ifndef定义方式推荐如下,VS“菜单-工具”自带了GUID生成工具
  8. 当无法确定一个函数或类应该归到哪个模块时,考虑低耦合(迪米特)和单一职责原则
  9. 对象前缀用a,引用前缀用r,指针前缀用p,迭代器前缀用it,索引前缀用i,char前缀用c,char*前缀用psz,double前缀用d,float前缀用f
  10. 类成员前缀m_,静态成员s_,全局g_,结构体成员前不加m_
  11. 只会在一个地方使用的函数最好写成函数内lambda,以免引起其他地方勿调,同时这也是封装和解耦的体现
  12. 某块逻辑只会在一个地方使用(迪米特原则要求不要写可能会被勿调的接口或函数),但又担心将来需求变动导致该逻辑要被复用?——用lambda来降低可能变动的需求对类设计的影响。参考https://blog.csdn.net/xk641018299/article/details/121871361
  13. 枚举类型命名规范,类型名“E”开头,成员名以类型名去掉E加下划线开头,如下:
  14. 常引用作为函数返回值可以延长函数局部变量的生命周期,合理利用此特性可以使得代码更简洁,如下【参考】:
  15. 非必要情况下(如仅在局部使用的数据结构,或实在想不出一个满意的变量名),使用std::tuple代替struct;
  16. 对于通过多继承实现的类,在进行拆箱时,尽量使用C++风格的类型转换,不要使用C的强制转换,否则极有可能会出现诡异的“指针漂移”问题;
  17. 推荐接口类命名以“I”打头,如IClass,抽象类以“Ab”打头,如AbClass;
  18. 不要暴露不必要的接口,不要增加不必要的参数,即最少知道原则。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xktesla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值