68336016 发表于 2014-3-23 09:31:25

老生常谈的话题,下位机编程命名需要那么 规范化 么?

本帖最后由 68336016 于 2014-3-23 09:36 编辑

自己写程序也好几年了,因为都是自己一个人完成,所以对代码规范化要求不高。
一般的变量通常用驼峰命名:maxValue
一些具有相对性的变量用下划线命名:rx_in_index,rx_out_index
全局变量加个g_,静态变量加个s_,函数加个模块名前缀Lcd_PutXxx(),Gui_SetXxx()。
我通常都是用VC编辑器来写下位机代码,变量的类型,作用域,函数返回类型我丝毫不困扰,鼠标点一下就知道了。

也看过一些老外的开源代码,比如Linux下一些软件,应该也是团队合作的,但命名似乎也没有那么规范化。
最近看水平比我高许多的一位朋友代码,看得我是两眼发黑,头晕脑胀,感觉就是看非常晦涩难懂的文言文一样。
每个变量,函数都需要前缀表示类型,作用域,比匈牙利还要凶,局部变量还来几个前缀,让看的人连死的心都有了。
话说我也过不少老外代码,也用过不少开发库,感觉这些命名都是很清晰明了,容易阅读的。

我就是想请问下有大公司团队合作的坛友们,你们的命名都需要多少个前缀才能把类型,作用域全部表达清楚?靠前缀真的完整表达出来么?

qiushui_007 发表于 2014-3-23 09:52:47

LZ能贴出一段例子不?

takashiki 发表于 2014-3-23 11:22:59

讨厌一切超长变量名,超长函数名,超长类型名,超长枚举名……

匈牙利命名法大概、也许靠前缀真的完整表达出来完整的类型、作用域什么的信息,但是不用的话,IDE一样能够表达出来,因此个人习惯前缀一般不超过三个字母。
超长的命名空间+超详细的自说明看到就头晕,写小说呢这是。
K&R风格的超多下划线看起来非常的不爽,STL的下划线、尖括号、冒号更特么变态的多,看起来都是混乱编程大赛出来的。

68336016 发表于 2014-3-23 11:35:01

takashiki 发表于 2014-3-23 11:22
讨厌一切超长变量名,超长函数名,超长类型名,超长枚举名……

匈牙利命名法大概、也许靠前缀真的完整表达 ...

我那么久以来,只区分全局变量、静态变量、函数模块,感觉完全是足够了。
但是看了我朋友的代码,我是真的很头晕,他的代码是按照大公司规范来的,可能团队协作很有用,但是真不利于阅读。

对于高水平的人,很喜欢自虐,不喜欢用比较智能的IDE,所有代码都喜欢手工一个个敲,变量和函数不借助任何IDE就可以望文知义。

kebaojun305 发表于 2014-3-23 11:48:21

这2中风格 是吵不出什么结果呢。

kebaojun305 发表于 2014-3-23 11:51:14

68336016 发表于 2014-3-23 11:35
我那么久以来,只区分全局变量、静态变量、函数模块,感觉完全是足够了。
但是看了我朋友的代码,我是真 ...

那也只是你的理解,说别人是自虐,是你的理解 ,在你看来是自虐,说不定在别人看来是享受。毕竟每个人的思想是不一样的。

rclong 发表于 2014-3-23 12:26:46

说不定他们是做代码review的时候才把变量名替换掉的

takashiki 发表于 2014-3-23 12:31:41

68336016 发表于 2014-3-23 11:35
我那么久以来,只区分全局变量、静态变量、函数模块,感觉完全是足够了。
但是看了我朋友的代码,我是真 ...

以下是我对所谓“大公司规范”必须使用匈牙利命名法的看法,不针对个人,只针对这种所谓的“规范”,或者直接说,针对“匈牙利命名法”。

大公司规范是什么?
微软算大公司吧,以前IDE很差的时候,极力到处推销匈牙利命名法,这本是极好的。后来,就到了.NET时代了,微软说,IDE已经相当智能了,匈牙利命名法该废弃了。MFC匈牙利命名法遍地开花;然而,.NET中,除了接口前面有个I以外,没有任何匈牙利命名法的影子。
谷歌也算大公司了,它的Android源代码中,只有私有变量有m前缀,属性有set、get前缀,其他的都没有,连接口前习惯的I都没有。
好吧,你说这都是上位机,那微芯总不是玩上位机的吧。看他的PIC GUI,只有指针前面用了一个p,其他的啥前缀没有。
ST的固件库,有人说好,有人说不好,但是它的内容结构非常清晰。翻看开内容,它取名几乎都是自说明的,但是仍然没有匈牙利命名法的影子。

国内有些所谓的编程规范,尤其是强制使用匈牙利命名法这一点上,不觉得已经落伍20年了么?
另外,关于团队协作,难道不是直接提供API供别人调用,还需要一个函数N多人来维护?API调用规范时都已经清清楚楚了,前缀有何用?

至于个人,确实萝卜白菜,各有所爱。确实有很多人就偏爱匈牙利命名法,一旦脱下帽子,就认不出谁是谁了。

babysnail 发表于 2014-3-23 12:37:58

汇编用多了,看到那超长的变量名就不习惯。能自说明表明意义就很不错了。

CelestialBeing 发表于 2014-3-23 12:44:23

我喜欢用camel命名法,看起来舒服点

SevenWans 发表于 2014-3-31 09:15:59

跟LZ差不多的习惯,不管啥习惯,只要统一就好

liao-ljj 发表于 2014-3-31 09:22:58

参与过超大规模的程序开发。。。。。。。命名和规范,不过是linux的模式,清晰易懂为原则。

chencc8 发表于 2014-3-31 11:43:56

takashiki 发表于 2014-3-23 12:31
以下是我对所谓“大公司规范”必须使用匈牙利命名法的看法,不针对个人,只针对这种所谓的“规范”,或者 ...

我也只是在指针是弄了个p前缀~
那些喜欢在变量上加作用域或者类型的写法,看起来就晕。
而在需要对变量进行作用域或者类型修改的时候,还要对整个工程进行替换~
如果碰到懒人的话,在修改后,不改变量名字的话,那看起来就更晕了。

songshanxiaozi 发表于 2014-4-11 10:06:03

早看匈牙利命名法不顺眼了。可悲的是,还有N多人推荐,强制人使用。还有那个驼峰写法,读代码就像在气流中上下颠簸的人的感受一样……
页: [1]
查看完整版本: 老生常谈的话题,下位机编程命名需要那么 规范化 么?