关于程序命名的问题

来源:互联网 发布:淘宝店铺扣分在哪里看 编辑:程序博客网 时间:2024/06/05 23:51

        之前在写程序时,对于程序的文件命名,函数命名并没有重视过,但是后来在做大型项目时这便成了问题,程序的可读性要加强。为此花几个小时来研究一下,并记录下来以便忘记时查阅。

    查阅之后发现有三种方法,一种是匈牙利命名法,一种是驼峰命名法,还有一种是

下划线法。

     一般采用驼峰命名法和下划线结合。驼峰法简单来说就是对于一个单词,首字母大

写后面小写,这样看着舒服。下划线顾名思义用下划线将单词分开。在写单词用以描述

功能时,应该尽量将单词写完整,这样便于阅读程序代码,为后期开发减小负担。

对于一些常用单词可以简写,如下

常用缩写词

原词        缩写

addition     add
answer         ans
array         arr
average        avg
buffer         buf或buff
capture         cap或capt
check         chk
count         cnt
column        col
control         ctrl
decode        dec
define        def
delete        del
destination    dst或dest
display        disp
division    div
encode        enc
environment    env
error        err
float        flt
frequency    freq
header        hdr
index        idx
image        img
increment    inc
initalize    init
iteration    itr
length        len
memory        mem
middle         mid
make         mk
message         msg
multiplication    mul
number         num
operand         opnd
optimization    opt
operator     optr
packet         pkt
positon        pos
previous     pre或prev
payload type    pt
pointer        ptr
return code    rc
record         rcd
receive        recv
result         res
return        ret
source        src
stack         stk
string        str
subtraction    sub
table         tab
temporary     tmp或temp
total         tot
time stamp     ts
value         val


    目前也在学习linux内核,所以特别关注一下,在linux中的命名规则。下面为摘抄

的几个原则。

【规则3-1-4】程序中不要出现仅靠大小写区分的相似的标识符。

例如:
int x, X;   // 变量x 与X 容易混淆

void foo(int x);  // 函数foo 与FOO容易混淆
void FOO(float x); 
【规则3-1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的
作用域不同而不会发生语法错误,但会使人误解。
【规则3-1-6】变量的名字应当使用“名词”或者“形容词+名词”。
例如:
float value; 
float oldValue; 
float newValue; 
【规则3-1-7】全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。
类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。
例如:
DrawBox();  // 全局函数
box->Draw(); // 类的成员函数
【规则3-1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
例如:
int minValue; 
int maxValue; 
int SetValue(…); 
int GetValue(…); 
【建议3-1-1】尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的
确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名
字(因为用数字编号最省事)


0 0