codefish 发表于 2016-2-23 08:53:10

“高手”写代码时也会遇到命名的烦恼

我写代码的经验也算很丰富了。
有时给控件命名也会遇到烦恼,
举个最近的例子:
   界面上需要放一个文本框,让用户输入一个参数,这个参数表示为:每换一种溶液的时候,机器臂要上升的高度。

想了很久,最终用了这样的名字: TextBoxHeightChangeForChangeLiquid

xivisi 发表于 2016-2-23 08:58:40

把两个change 去掉?

EMC菜鸟 发表于 2016-2-23 09:03:36

专业的软件大牛啊!

象我这种半路出道的,最怕的就是长名字,函数名还好点,变量名超过8个字符我就浑身难受了 ......

cumthe 发表于 2016-2-23 09:10:39

用自动补全功能还行,多长名字都不怕

codefish 发表于 2016-2-23 09:10:39

EMC菜鸟 发表于 2016-2-23 09:03
专业的软件大牛啊!

象我这种半路出道的,最怕的就是长名字,函数名还好点,变量名超过8个字符我就浑身难 ...

如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字,这样一看名字,就知道这个变量是干什么的了。

crtfor 发表于 2016-2-23 09:28:12

TheRisingHeightWhenChangingSolution
想不出变量名就用短语,再不行就用句子!
{:lol:}

apple_eat 发表于 2016-2-23 09:30:24

ChangeForChangeLiquid->RaiseForLiquidChanged

codefish 发表于 2016-2-23 09:31:59

apple_eat 发表于 2016-2-23 09:30
ChangeForChangeLiquid->RaiseForLiquidChanged

谢谢。真的高手来了。。。

suebillt 发表于 2016-2-23 09:35:08

codefish 发表于 2016-2-23 09:10
如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字, ...

为啥都抛弃带 _ 下划线的命名方式了?

lusson 发表于 2016-2-23 09:35:10

在定义变量的地方再加上注释就OK了,没必要搞这么长吧。

laujc 发表于 2016-2-23 09:48:10

UserHeightForLiquid

LM1876 发表于 2016-2-23 09:50:18

C51 时一看到长名字的变量就头晕。。。。。{:lol:}

日日♂夜夜 发表于 2016-2-23 09:53:30

suebillt 发表于 2016-2-23 09:35
为啥都抛弃带 _ 下划线的命名方式了?

我是感觉如果用下划线的命名很多自动补全弹不出来   比如vax 用下划线的东西比较难找到

磊磊映画 发表于 2016-2-23 09:57:31

楼主,在各模块变量间加下划线区分开

jasonzhu8888 发表于 2016-2-23 10:16:43

tbRaiseHeight4LiquidChg

祥子 发表于 2016-2-23 10:17:21

lusson 发表于 2016-2-23 09:35
在定义变量的地方再加上注释就OK了,没必要搞这么长吧。


注释只是辅助作用

变量最好是自解义的…… 看到变量名,就知道这个变量是做什么的

lusson 发表于 2016-2-23 10:18:28

祥子 发表于 2016-2-23 10:17
注释只是辅助作用

变量最好是自解义的…… 看到变量名,就知道这个变量是做什么的...

如果定义这么长一个变量名才能搞清楚意思的话, 不如注释加合适的缩写。

祥子 发表于 2016-2-23 10:24:53

lusson 发表于 2016-2-23 10:18
如果定义这么长一个变量名才能搞清楚意思的话, 不如注释加合适的缩写。 ...



能通过合适的缩写,又能一眼看明白当然最好了。


注释还是辅助的,定义或声明时可以增加注释

你不可能在每次引用这个变量的时候,都在旁边注释上这个变量是做什么用的;

codefish 发表于 2016-2-23 10:33:10

祥子 发表于 2016-2-23 10:24
能通过合适的缩写,又能一眼看明白当然最好了。




说得很好。。。

Bunny_Girl 发表于 2016-2-23 10:43:46

还是喜欢用下划线,不喜欢驼峰式的大小写,看着很不舒服。。。

jacky_yhy 发表于 2016-2-23 11:07:20

控件名建议缩写。Textbox 我一般就TB_了

codefish 发表于 2016-2-23 11:09:03

jacky_yhy 发表于 2016-2-23 11:07
控件名建议缩写。Textbox 我一般就TB_了

在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。

xy-mcu 发表于 2016-2-23 11:13:32

其实很简单,虽然一眼看着长命名比较烦,
但总可以再看一眼就明白,甚至英语不懂,可以翻译。最多也就几秒钟的事情。
如果给您弄个缩写,或者乱写,那您要想明白就不只几秒了,可能是几分钟甚至根本就搞不明白了。

smithding 发表于 2016-2-23 11:14:21

本帖最后由 smithding 于 2016-2-23 11:15 编辑

一看不是高手啊,高手命名个a或b之类就可以了,3~5天项目做完调试OK今后就没有关联了,要么是码农要么是学生才会这么干

Excellence 发表于 2016-2-23 11:14:33

codefish 发表于 2016-2-23 11:09
在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。

变量名称不一样的地方,最好放在前面。
编译器容易识别,不需要判断很多字符。

wangyu_2011 发表于 2016-2-23 11:41:48

我一般用结构体封装。这样就不会太长,也清楚。

jacky_yhy 发表于 2016-2-23 11:54:40

codefish 发表于 2016-2-23 11:09
在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。

为了好看,为了变量名短,还想要偷懒,世界上没这样的好事吧

maninblack 发表于 2016-2-23 11:55:18

宁愿变量名长一点,连猜带蒙至少能理解个大概。最怕维护代码时,某些人取名一堆缩写,然后又没有注释的,猜都没法猜,还要通过程序流程去猜这个变量到底是表示什么意思,真是要命了。{:huffy:}{:huffy:}{:huffy:}

q457344370 发表于 2016-2-23 12:17:14

见别人写的代码button1 button2 button✘✘✘

ywhbn 发表于 2016-2-23 12:32:36

本帖最后由 ywhbn 于 2016-2-23 12:34 编辑

代码大全2里说,变量名最好控制在15个字符内,不要超过21个字符。TextRobotArmHeight,代码有上下文,变量名不用写成句子。

rwdxty 发表于 2016-2-23 12:33:52

编译器如果支持中文的话直接写中文{:titter:}

eye 发表于 2016-2-23 14:22:10

mTextBoxIncrementForReplaceLiquid

agilityChen 发表于 2016-2-23 17:05:33

中文表达就有歧义,更不要说英语了,还“高手”呢。。“换一种”,是“更换”还是“切换到下一种”的意思?是“溶液”(Solution)还是“液体”(Liquid)?“需要移动的高度”,叫“高度移动量”或者“高度增量”不是更好?
TextBoxHeightIncrementForLiquid(Solution)Replacement,
TextBoxHeightIncrementForLiquid(Solution)Switching,看看哪个是你想要的吧。

skyseeingliqy 发表于 2016-2-23 17:11:39

agilityChen 发表于 2016-2-23 17:05
中文表达就有歧义,更不要说英语了,还“高手”呢。。“换一种”,是“更换”还是“切换到下一种”的意思? ...

居然有括弧???!

zhd1021 发表于 2016-2-23 17:13:18

huanrongyehoubishangshenggaodu

独孤帅 发表于 2016-2-23 17:33:35

zhd1021 发表于 2016-2-23 17:13
huanrongyehoubishangshenggaodu

这个名字我喜欢{:lol:}

agilityChen 发表于 2016-2-23 18:10:20

skyseeingliqy 发表于 2016-2-23 17:11
居然有括弧???!

结合上下文看根本不会有歧义: Liquid/Solution二个词选其一。
智商堪忧。

songtion 发表于 2016-2-23 18:52:19

TBHForLiquid

boyiee 发表于 2016-2-23 19:03:52

代码中“到” 也就是 “to” 一般用 “2”      ”for“用 “4”    版本升级直接 1 2 3 4 5 6...         单词缩写就行了。

就像V4L2等等。。    声明处再加上注释, 一般都OK。

runapp 发表于 2016-2-23 19:14:10

HeiDeltaOnLiquidChange

或者这个,tbHD换溶液机器臂上升高度,简单愉快。不过如果要给老外看估计就瞎了

Vincent2012 发表于 2016-2-23 19:58:25

Height4EachLiquid?

lixin91985 发表于 2016-2-23 20:02:11

两个change感觉很怪异。 texboxRise_changeliquid

gamalot 发表于 2016-2-23 20:18:13

说句不中听的话,既然你没能用中文简单明了地描述你遇到的问题,你的变量命名水平也就可想而知之了

独孤帅 发表于 2016-2-23 20:39:33

本帖最后由 独孤帅 于 2016-2-23 20:42 编辑

可以做几层封装,稍微清晰一点。
TextBoxGroup.WhenLiquidChange.tbHeightStep
第一层,把所有TextBox对象的引用封装在一起,这样名字就不用写TextBox了。
第二层,在溶液改变的时候,需要的几个参数,每个参数对应一个TextBox。
第三层,由于有了前面的TextBox,可以简写为小写的tb了。
这样虽然整体名字变长了,但是更有调理,如果LZ的编程语言支持面向对象,这样比下划线要好。

顺便说一句:很多面向对象语言里有名称空间这个概念,利用起来也是可以的。
比如C++:TextBoxGroup::WhenLiquidChange::tbHeightStep

zt2012 发表于 2016-2-23 22:56:33

codefish 发表于 2016-2-23 09:10
如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字, ...

单片机变量不会多。。。。。。sure?

codefish 发表于 2016-2-23 23:15:43

zt2012 发表于 2016-2-23 22:56
单片机变量不会多。。。。。。sure?

呵呵。我目前手上的单片机项目的变量数量不多。

onepower 发表于 2016-2-24 00:05:02

Bunny_Girl 发表于 2016-2-23 10:43
还是喜欢用下划线,不喜欢驼峰式的大小写,看着很不舒服。。。

我是最讨厌下划线了, 程序复杂一点, 就满大街的单词, 却分不清下划线和标点符号

onepower 发表于 2016-2-24 00:08:07

maninblack 发表于 2016-2-23 11:55
宁愿变量名长一点,连猜带蒙至少能理解个大概。最怕维护代码时,某些人取名一堆缩写,然后又没有注释的,猜 ...

赞成, 缩写最要命

xpstudio2011 发表于 2016-2-24 08:51:52

缩写得要很容易看的明白的缩写。
比如常用的控件的缩写,看程序范例里就有。

wind2100 发表于 2016-2-24 09:07:34

说实在 真的太长了,你可以用结构打包一下 这样也是很容易读的。 最多一个名字 就你那个2/3长度,太长就注释 缩写

xwkm 发表于 2016-2-24 09:09:35

txtHLrate字数补丁

tigerman520 发表于 2016-2-24 09:27:09

可以尝试用结构体来定义变量。

learner123 发表于 2016-2-24 23:18:46

我是来看大家的Chinglish的
都是业余英文翻译
建议找些专业英语的人才来,坐等高手

menglongfc 发表于 2016-2-24 23:41:52

还在使用拼音的悄悄看你们讨论{:lol:}

fengyunyu 发表于 2016-2-25 09:52:18

下划线可能更易读

337zhang 发表于 2016-2-25 09:57:36

TextBox_Height_Of_UserLiquidChanged
Height_Of_UserLiquidChanged_TextBox
我更喜欢第二个方式{:lol:}{:lol:}

qq78929709 发表于 2016-2-25 17:40:09

linux风格的下划线好像只在纯C的代码中才看得到

knight_avr 发表于 2016-2-25 18:54:47

tb_HeightOfLiquid

chxaitz 发表于 2016-2-25 21:04:18

本帖最后由 chxaitz 于 2016-2-25 21:07 编辑

knight_avr 发表于 2016-2-25 18:54
tb_HeightOfLiquid

{:handshake:}
<类缩写>_<属性>[名称]
tb_HeightChgOfLiquid

first_blood 发表于 2016-2-25 21:44:14

我用拼音

kinoko 发表于 2016-2-26 07:55:38

直接中文变量名得了

紫胤真人 发表于 2016-2-26 11:08:29

ArmAdaptor_ForLiquidLevel

sos9616 发表于 2016-2-26 11:19:53

其实工作久了后,每个人慢慢都会有自己的编程风格。

ooffran 发表于 2016-2-26 11:48:46

以前用缩写,现在用英文全名

sczh0001 发表于 2016-2-28 17:59:58

太麻烦了 看个人方便吧

wangjiati 发表于 2016-2-28 18:53:39

http://unbug.github.io/codelf/

这里看看别人怎么起名字
页: [1]
查看完整版本: “高手”写代码时也会遇到命名的烦恼