命名习惯

写程序经常需要命名,好的名字至少可以带来更清晰的代码,进一点还可以带来更好的设计和架构。

但看过很多程序,发现很多命名都不是很合适。


下面是我总结的一些命名原则:

    1. 提取公共部分, 减少不必要的重复(no repeate)。

        一堆函数名如果有相同的部分,可以使用 namespace 来封装,如果它们逻辑还有耦合,可以放到一个类中。
        一堆文件名如果有相同部分,建议把相同部分提取为文件夹名,这样文件名可以简短直接。
    

    2. 把最重要的信息放到 名字的前面 ( first is  importance)

   比如 create_singer_allalbums.cpp

   create 是最没用的信息,但这个目录下很多都有,可以把 create提取成一个目录。
   albums是最重要的信息,应该放到最前。all_alblums_of_singer, 如果去除all不会引起文件冲突,改成 albums_of_singer.cpp 更简洁。


下面是对第二原则的推广

 

    3. 不要使用匈牙利命名法 ( badly  type prefix)

       匈牙利命名法,是用来弥补早期编译器没有函数原型检查的缺陷。 现在的编译对类型不匹配都会给出错误或警告,你只要关注makefile的提示信息就可以了。
       高级的IDE都支持类型信息提示, EditPlus和notepad++这些除外。

       如果非要使用 匈牙利命名法,也建议你把前缀改成后缀形式, 比如 vecSongs 改成 songs_vec, 这样读代码的人受到的干扰少很多。

    4. 不要使用前缀,使用后缀(badly scope prefix)

    还有很多喜欢命名 类变量为 m_songs, 或 _songs,  这里 m_ 前缀表示 member_var是类的实例变量。

    但每次读到这个的都不爽,如果改成 songs_ 这样的方式, 我就可以关心 songs , 判断是否是实例变量的时候,再去看后缀。

    _songs 这种 方式不好地方在于, _ 和 _ _ 前缀被好多系统变量占用了。

   g_songs 的方式定义全局变量是合适的,因为全局变量是丑陋的,让这个丑陋的设计更显眼,也更有利于后期改进(类似于 const_cast, static_cast)

 

 

 

 

 

posted @ 2010-10-20 13:11  napoleon_liu  阅读(396)  评论(0编辑  收藏  举报