- private/protected函数使用小驼峰,如createWindow
- public函数使用大驼峰,如CreateWindow
- 时间变量前缀,tmXXX表示time_t类型,ulXXX表示uint64_t类型,uXXX表示uint32_t类型
- 命名空间无特殊情况统一小写
- 分层设计时,某一层的门面头文件不可包含另一层的门面头文件,如ui/ui.h不可包含dao/dao.h
- 代码段推荐注释方法

- 头文件#ifndef定义方式推荐如下,VS“菜单-工具”自带了GUID生成工具

- 当无法确定一个函数或类应该归到哪个模块时,考虑低耦合(迪米特)和单一职责原则
- 对象前缀用a,引用前缀用r,指针前缀用p,迭代器前缀用it,索引前缀用i,char前缀用c,char*前缀用psz,double前缀用d,float前缀用f
- 类成员前缀m_,静态成员s_,全局g_,结构体成员前不加m_
- 只会在一个地方使用的函数最好写成函数内lambda,以免引起其他地方勿调,同时这也是封装和解耦的体现
- 某块逻辑只会在一个地方使用(迪米特原则要求不要写可能会被勿调的接口或函数),但又担心将来需求变动导致该逻辑要被复用?——用lambda来降低可能变动的需求对类设计的影响。参考https://blog.csdn.net/xk641018299/article/details/121871361
- 枚举类型命名规范,类型名“E”开头,成员名以类型名去掉E加下划线开头,如下:

常引用作为函数返回值可以延长函数局部变量的生命周期,合理利用此特性可以使得代码更简洁,如下【参考】:
- 非必要情况下(如仅在局部使用的数据结构,或实在想不出一个满意的变量名),使用std::tuple代替struct;
- 对于通过多继承实现的类,在进行拆箱时,尽量使用C++风格的类型转换,不要使用C的强制转换,否则极有可能会出现诡异的“指针漂移”问题;
- 推荐接口类命名以“I”打头,如IClass,抽象类以“Ab”打头,如AbClass;
- 不要暴露不必要的接口,不要增加不必要的参数,即最少知道原则。
个人编码习惯——C++(持续更新)
于 2021-11-23 13:46:53 首次发布
本文详细介绍了C++编程中关于函数命名、变量前缀、头文件包含、代码注释和接口设计的一系列规范。强调了私有/保护函数、公共函数的驼峰命名,以及时间、整型变量的前缀约定。此外,还讨论了如何遵循迪米特原则、单一职责原则,以及使用lambda表达式以减少不必要的接口和提高代码封装性。文中还提及了枚举命名规范、常引用的使用技巧、多继承时的类型拆箱建议,以及接口类和抽象类的命名约定。整体内容旨在提升代码质量和可维护性。

&spm=1001.2101.3001.5002&articleId=121408129&d=1&t=3&u=01dda4ef1a05444eb33afe062f37f24e)
7525

被折叠的 条评论
为什么被折叠?



