编写可读性代码的艺术(一)

来源:互联网 发布:惠普手机打印软件 编辑:程序博客网 时间:2024/05/17 20:45
1.代码应该易于理解
第一部分 表面层次的改进
1.把信息装在名字里
a.找到更有表现力的词

b.避免像tmp和retval这样泛泛的名字
tmp这个名字只应用于短期存在切临时性位其主要存在因素的变量。
c.用具体的名字代替抽象的名字
d.为名字附带更多信息
如带单位的值

附带其他重要信息:


但你不应该给程序中每个变量都加上像unescaped_或者_utf8这样的属性。如果鱼人误解了这个变量就很容易产生缺陷,尤其是会产生像安全缺陷这样的可怕的后果,在这些地方这种技巧最无用武之地。基本上,如果这是一个需要理解的关键信息,那就把它放在名字里。
你可以把这称为“英语表示法”,病不同于一种更正式和严格的系统(关注与特有的一系列属性)的匈牙利命名法。
e名字应该有多长
在小的作用域里可以使用短的名字,因为所有的信息(变量的类型、它的初值、如何够析等)都很容易看到,所以可以用很短的名字。因此如果一个标识符有较大的作用域,那么它的名字就要包含足够的信息以便含义更清楚。
首字母缩略词和缩写(经验原则是团队的新陈管是否能理解这个名字的含义)
丢掉没用的词(有时名字中的某些单词可以拿掉而不会损失任何信息)

f.利用名字的格式来传递含义
对不同的实体使用不同的格式就像语法高亮显示的形式一样,能帮助你更容易的阅读代码。

该例子中的大部分格式都很常见,使用CamelCase来表示类名,使用lower_separated来表示变量名
例如,常量的格式的KConstantName而不是CONSTANT_NAME。这种形式的好处是容易和#define的宏区分开,宏的规范是MACRO_NAME。
类成员变量和普通变量一样,但必须以一条下划线结尾,如offset_。刚开始看,可能会觉得这个规范有点怪,但是能立刻区分出是成员变量还是其他变量。
如:stats.clear();
如果使用了member_这个规范,你技能迅速得到结论:"不,stats一定是个局部变量。否则它就会命名为stats_."
其他格式规范:
根据项目上下文活语言的不同,还可以采用其他一些格式规范是的名字包含更多信息。例如"构造函数"(在新建时会调用的函数)应该首字母大写二普通函数首字母应该小写。


当调用jQuery函数库时(它的名字是单个字符$),一条非常有用的规范是,给jQuery返回的结果也加上$作为前缀


这次是HTML/CSS:当给一个HTML标记加id或者class属性时,下划线和连字符都是合法的值。一个可能的规范是用下划线来分开ID中的单词,用连字符来分开class中的单词。


是否要采用这些规范是由你和你的团队决定的。但不论你用哪个系统,在你的项目中要保持一致。

0 0
原创粉丝点击