Chinaunix首页 | 论坛 | 博客
  • 博客访问: 949126
  • 博文数量: 134
  • 博客积分: 7443
  • 博客等级: 少将
  • 技术积分: 1411
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-10 20:18
文章分类

全部博文(134)

文章存档

2012年(7)

2011年(29)

2010年(16)

2009年(6)

2008年(18)

2007年(58)

分类: C/C++

2007-02-12 13:24:16

崔超命名法

基本原则

  1. 规范简单。我不要长篇大论的命名规范。
  2. 由名达意。名字中要反映用途和其他值得关注的信息。
  3. 名字简短。名字中没有任何多余的信息,简短的名字才能被短暂记忆,我不喜欢常常滚动屏幕去找一个忘记的名字。

名字中的间隔

一个名字中可能包含多个词,为了方便识别这些词,需要显著标示每个词的开始。有两种选择:使用下划线分割;使用大小写变化间隔。也可以两种方法混合使用。我习惯在变量名使用下划线,在函数名和类名使用大小写变化。


名字中使用缩写

为了让名字尽量短,有一些常用的缩写。

    缩写    说明
--------    -----------------------------------
      2     to 常用于转换函数
      4     for 
      ref   refercece 引用
      cf    configure 配置
      opt   optiion 选项
      arg   argument 参数
      buf   buffer 内存区
      idx   index 索引
src source 源
cmd comamnd 命令

一个有意思的长字符简写法.  熟悉linux的人都,见过i18n这个简写,

这是
internationalization,这个单词的长度是20,然后取其首尾字母,中间省略的字母刚好18个.
可以用这个方法给你开发的系统出现的特殊领域的长名字简写.

名字的前缀表示变量范围

需要时才添加的原则。使用变量是需要关注其变量范围,才加前缀。在所有的函数中,最常见的是本地变量,一般本地变量的范围不值特别关注,所以不需要加前缀。如果函数中的一个变量是静态的,就值得关注,就可以添加一个前缀"_"。

  前缀           说明
------           --------------    
  g_           全局变量
  m_           成员变量
  s_           静态成员变量
  _            函数内的静态变量
                重循环使用i_,第二重循环使用j_。对整数类型的遍历子直接使用i,j,k。
  t_           临时变量,如果要特别说明一个本地变量只用于临时计算,才加这个前缀。
  x_           调试时临时添加的变量,这些变量最终应该被删除掉。

名字的后缀表示附加的含义

要注意需要时才添加的原则。一般需要和同名变量区分的时候才需要加后缀。


   后缀   说明
-----   --------------------
   _    我习惯给所有的指针变量后面添加一个下划线。因为下划线看上去像一个针。当引用指向对象的成员
的时候,foo_->
   _ref 引用变量。强调一个参数的类型是引用类型的(大多时候不需要强调),比如:如果一个参数是引用类型的输出参数,就加上这个后缀。 注意const类型的引用是作为输入存在的,不要加这个后缀。
   _c   为了强调说明一个变量是一个容器或数组,可添加这个后缀。,等都可以用.    
   _h   handle。 我把handle认识成类似指针,又不是指针的东西。比如代表操作系统资
        源的描述符。
 _i,_j, _k   在遍历循环中使用的遍历子,这种变量只在一个for循环的内部有效。第一

其他

所有的常量大写。 包含使用宏定义,const变量和enum方式定义的常量

不在名字中添加类型信息

著名的匈牙利命名法,在名字中添加类型信息。但我不喜欢这样,有下面的理由。
(1)类型检查是编译器的事情。甚至许多集成开发环境都有了类型提示的功能。带类型没有太罗嗦。
(2)在面向对象的编程语言中。在变量中添加类型信息。不利于重够。因为经常在重构过程中对变量的类型进行修改。

当然,也没有这么绝对。任何规则都是用来遵守和打破的,如果你认为确实要强调一个对象的类型,可以带上类型信息,我还没有碰到过这种情况。


2007年 03月 13日 星期二 -修改错字,添加“有意思的简写”等
阅读(1868) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~