命名规范
来源:互联网 发布: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、不要制造庞然大物的类、文件,滚屏真的看的眼花;
阅读全文
1 0
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- 命名规范
- OC学习之路(10)
- 【Codeforces 796 A. Buying A House】
- 判断有没有关注公众号
- Java变量类型
- Struts2文件上传 超过大小限制无法跳转至指定input页面问题,浏览器提示连接已重置?根本原因
- 命名规范
- Android 图片选择器(第二种)
- 疯狂Kotlin讲义
- oralce查看某张表占用空间大小
- Android 屏幕适配方案
- Handler实现倒计时
- Kotlin实战
- FCC--Boo who(BOOL类型检查)
- docker 学习笔记(未完)