前一段时间在做一个P2P的技术研究和产品开发,研究了一些开源的项目,包括e-mule、jxta等。趁现在的发版间隙,总结一下jxta的编码规范,今天首先总结一下jxta的命名规范,也算是对之前工作的一个总结,希望对入行的小弟们有些帮助。
一、 【函数名】
1. 单词字母统一小写
2. 下划线分割单词
如:
static char *wire_get_name(Jxta_pipe_service_impl *);
static Jxta_status wire_deny(Jxta_pipe_service_impl *, Jxta_pipe_adv*);
二、 【结构体名】
方法一:
1. 下划线作为前缀
2.单词字母统一小写
3. 下划线分割单词
如:
struct _jxta_range{
JXTA_OBJECT_HANDLE;
char *nameSpace;
char *element;
char *attribute;
char *range;
double high;
double low;
};
typedef struct _jxta_range Jxta_range;
方法二:
1. 下划线作为前缀
2. 单词首字母大写
如:
struct _HttpResponse{
HttpClient *con;
char *protocol;
int status;
char *status_msg;
char *headers;
int content_length;
char *data_buf;
apr_ssize_t data_buf_size;
};
typedef struct _HttpResponse HttpResponse;
总结:
1. 结构体名称首字母通常大写
2. 结构体名称中的单词,可以用下划线,或者通过单词首字母大写的方式进行分割。也可以两者结合,用下划线区分类型前缀和名称,用首字母大写区分名称中各单词
3. 原始定义时,通常用上下划线作为结构体名称前缀
三、 【自定义类型名】
1. 首字母大写
2. 单词间用下划线分割(或者首字符大写方式)
typedef unsigned long Jpr_status;
typedef unsigned short Jpr_port;
typedef unsigned long Jpr_in_addr;
四、 【变量名(含结构体成员变量)】
方法一:
1. 单词统一小写
2. 下划线分割单词
如:
Dlist*last_node, *f,*l;
Jxta_advertisement jxta_advertisement;
方法二:
1. 驼峰命名法
DBSpace*dbSpace = self->defaultDB;
Jxta_advertisement*newAdv = NULL;
注:
Jxta中的变量命名规则,变量名前不加类型前缀。
五、 其他
1. 宏名称,单词字母统一大写,单词间用下划线分割。
2.枚举类型名称,可参照结构体命名规则;枚举类型值,可参照宏命名规则。
3.函数指针类型命名,统一加上Func(_func)后缀。