写了几年代码之后发现原先的代码基本看不懂了,很大程度上是因为早期写代码喜欢用一些 int aa,bb之类的,所以决定建立一套自己的命名规范。
每次想到新的内容就往里面补充一点。
类的命名:
采用首字母大写的方式,格式为:对象描述+派生父类/功能描述,比如:MainActivity,TcpTools;
基类尽量采用一个单词,比如:Tools;
函数命名:
采用首字母大写的方式,格式为:动词+名词,比如:SendMessage;
保护成员函数开头加上一个下划线,如_SendMessage;
私有成员函数开头加上两个下划线,如__SendMessage;
回调函数开头加上On,如OnClick;
(2014-12-28 13:00修改)
判断是否存在/是否能用/是否XX在函数开头加Is,如IsExist
#函数可以理解为一个动作,或者一个行为,其描述应该包含如下:执行者 动作(动词+名词)(to/from/for) 接受者
再进一步分析,动作分同步和异步两种,这个是用来修饰动作的
所以一个完整的函数命名应该是: 执行者+(Async)+(动词+名词)+(To/From/For)+接受者
函数名中如果不存在主语,默认执行者是类自身;
不写From/To/For及接受者,默认动作接受者为 类自身或者名词;
不写Async,默认为同步执行;
#函数还可以描述一种状态,返回结果一般是bool型,这类函数统一用Is开头,比如IsThreadRunning()/ IsValExist()之类
接口命名:
在名称前加上I,如 ICompany
变量命名:
采用驼峰命名法,格式为:作用域+类型+对象描述//其实就是匈牙利命名法
常量和静态变量:直接采用全大写形式,格式为:类型_对象描述
其中属性部分:
g_全局变量/m_类成员变量;常量和静态变量用全大写进行描述
类型描述部分:
常用类型有:
bool b
byte by
short s
long l
float f
double d
int i
String str
Layout命名
组件名_描述
对于Button/EditText这些组件还比较好描述,只要把其所在模块及其其实现的功能写下来就成了,比如 btn_loginform_submit
但是布局就很烦了,无论是android里的layout还是html里的div,总的来说一般分为三类,
一类是定义整个大区域,其中包含很多模块,所以也应该在描述后面再加一个尾缀_zone,比如div_模块描述_zone;
二类是定义一个模块,一个模块里有很多组件,那就应该在描述后面再加一个尾缀_module,比如div_模块描述_module
三类是为放置某个组件用的,该组件属于某个模块,所以在模块描述后面加上组件描述,尾缀是_unit,比如div_模块描述_组件描述_unit
然后布局还分放在上下左右四个方位,所以还可以在后面再加个尾缀_u _d _l _r进行描述,这个尾缀看情况添加就是。
图片的前缀有:
ic-icon
bg-background
di-divider
clr-color
图片的后缀有:
nor-normal,图片普通状态
hl-hight light,图片高亮状态
press-图片按下状态
select-图片选择状态
#缩写这玩意还是够受,除非约定俗成,不然用了缩写就是为日后debug找麻烦...
缩写规则:
因为变量名变得越来越长了,所以要建立一套适合的缩写规则
一般来说,较长的单词就采用首字母+中间字母+尾字母的方式,但是缩写不要滥用,只有在一些常用的而且一看就能看出来的单词上才使用此缩写规则
Buffer buf
Background bg
Database db //LocalDB //RemoteDB
Dialog dlg
Icon ic
Message msg
Tmporary tmp
组件缩写:
Button-btn // Radios Button-rbtn // ImageButton-ibtn
Layout-lyt //
View-v // ImageView-iv // ListView-lv // TextView-tv
EditText-et
ScrollView-sclv