命名规范

来源:互联网 发布:mac的app store打不开 编辑:程序博客网 时间:2024/05/10 13:34

优雅的命名规范

命名不规范是代码可读性、可维护性、可理解性差的罪恶之源。遵守大家都习惯的命名规范能够大大提高可读性,而且你也不用在命名上浪费时间了。我特别喜欢一个词elegant,写出优雅的代码,亦或优雅地写代码。

变量命名前缀篇

变量命名我习惯使用前缀表示类型,这样能让人一眼就知道你这个变量的类型,而不用去跳转到声明处。

  • bool布尔: b
  • byte字节:by
  • char字符:ch
  • string字符串: str
  • char[]字符数组: sz
  • int整数: i或者n
  • long长整数: l
  • long long长长整数: ll
  • float浮点数: f
  • double双精度浮点数: lf
  • WORD单字: w
  • DWORD双字: dw
  • 指针:p
  • 数组:a
  • 结构体:st或t
  • 类:c
  • 枚举:e
  • 类成员变量:m_
  • 静态变量:s_
  • 全局变量:g_
  • 函数: fn

函数命名动词篇

我习惯使用小写动词+大写名词的驼峰法,例如getPswd。
你还在为不知道取什么名字而烦恼吗,试试下面的方法:
使用反义词:

  • get/set
  • take/release
  • push/pop
  • add/insert/remove
  • new/delete
  • create/destroy
  • alloc/free
  • open/close
  • start/stop
  • read/write
  • recv/send
  • up/down
  • next/prev
  • upload/download
  • load/unload
  • lock/unlock
  • show/hide
  • enter/leave

其它常用动词

  • mod(modify的缩写)
  • save
  • change
  • swtich
  • query
  • search
  • is
  • check
  • test
  • cut
  • copy
  • undo
  • unset
  • kill
  • exit
  • bind
  • clone
  • clear
  • handle
  • make
  • find
  • rfind
  • replace
  • cvt(convert的缩写)
  • 还有一个万能的do
  • 对于消息响应函数习惯以on开头

这么多动词总有一款适合你的,实在不行请有道下,切忌用拼音。

头文件防止重复包含

#ifndef XXX_H  #define XXX_H  //...  #endif // XXX_H

导入导出宏

#define XXX_CALL _stdcall#ifdef XXX_LIB    #define XXX_API #else    #ifdef XXX_DLL        #define XXX_API extern "C"__declspec(dllexport)    #else        #define XXX_API extern "C"__declspec(dllimport)    #endif#endif

结构体字节对齐方式

#ifdef WIN32    #pragma pack(push)    #pragma pack(1)    #define GCCPACKED#else    #define GCCPACKED __attribute__((packed))#endif// 在此声明结构体struct XXX{//...}GCCPACKED;#ifdef WIN32#pragma pack(pop)#endif

使用命名空间

namespace XXX{//...}

原则篇

1、命名要尽可能的精简,臭长代码没人爱;
2、一眼看不出类型和作用的变量不是好命名;
3、一眼看不出作用的函数不是好命名;
4、杜绝三次以上重复代码,如果出现请考虑使用#define、inline、function代替;
5、杜绝三层以上嵌套,可以使用如下方式替代:

if (!b1)    return;do1();if (!b2)    return;do2();if (!b3)    return;do3();

而不是

if (b1){    do1();    if (b2){        do2();        if (b3){            do3();        }    }}

6、多余注释代码请删除干净,没有人会再重新启用你的烂代码;
7、switch大量的case可以考虑使用宏定义或者表驱动;
8、不要制造庞然大物的类、文件,滚屏真的看的眼花;