“高手”写代码时也会遇到命名的烦恼
我写代码的经验也算很丰富了。有时给控件命名也会遇到烦恼,
举个最近的例子:
界面上需要放一个文本框,让用户输入一个参数,这个参数表示为:每换一种溶液的时候,机器臂要上升的高度。
想了很久,最终用了这样的名字: TextBoxHeightChangeForChangeLiquid
把两个change 去掉? 专业的软件大牛啊!
象我这种半路出道的,最怕的就是长名字,函数名还好点,变量名超过8个字符我就浑身难受了 ...... 用自动补全功能还行,多长名字都不怕 EMC菜鸟 发表于 2016-2-23 09:03
专业的软件大牛啊!
象我这种半路出道的,最怕的就是长名字,函数名还好点,变量名超过8个字符我就浑身难 ...
如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字,这样一看名字,就知道这个变量是干什么的了。 TheRisingHeightWhenChangingSolution
想不出变量名就用短语,再不行就用句子!
{:lol:} ChangeForChangeLiquid->RaiseForLiquidChanged apple_eat 发表于 2016-2-23 09:30
ChangeForChangeLiquid->RaiseForLiquidChanged
谢谢。真的高手来了。。。 codefish 发表于 2016-2-23 09:10
如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字, ...
为啥都抛弃带 _ 下划线的命名方式了? 在定义变量的地方再加上注释就OK了,没必要搞这么长吧。 UserHeightForLiquid C51 时一看到长名字的变量就头晕。。。。。{:lol:} suebillt 发表于 2016-2-23 09:35
为啥都抛弃带 _ 下划线的命名方式了?
我是感觉如果用下划线的命名很多自动补全弹不出来 比如vax 用下划线的东西比较难找到 楼主,在各模块变量间加下划线区分开 tbRaiseHeight4LiquidChg lusson 发表于 2016-2-23 09:35
在定义变量的地方再加上注释就OK了,没必要搞这么长吧。
注释只是辅助作用
变量最好是自解义的…… 看到变量名,就知道这个变量是做什么的 祥子 发表于 2016-2-23 10:17
注释只是辅助作用
变量最好是自解义的…… 看到变量名,就知道这个变量是做什么的...
如果定义这么长一个变量名才能搞清楚意思的话, 不如注释加合适的缩写。 lusson 发表于 2016-2-23 10:18
如果定义这么长一个变量名才能搞清楚意思的话, 不如注释加合适的缩写。 ...
能通过合适的缩写,又能一眼看明白当然最好了。
注释还是辅助的,定义或声明时可以增加注释
你不可能在每次引用这个变量的时候,都在旁边注释上这个变量是做什么用的; 祥子 发表于 2016-2-23 10:24
能通过合适的缩写,又能一眼看明白当然最好了。
说得很好。。。 还是喜欢用下划线,不喜欢驼峰式的大小写,看着很不舒服。。。 控件名建议缩写。Textbox 我一般就TB_了 jacky_yhy 发表于 2016-2-23 11:07
控件名建议缩写。Textbox 我一般就TB_了
在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。 其实很简单,虽然一眼看着长命名比较烦,
但总可以再看一眼就明白,甚至英语不懂,可以翻译。最多也就几秒钟的事情。
如果给您弄个缩写,或者乱写,那您要想明白就不只几秒了,可能是几分钟甚至根本就搞不明白了。 本帖最后由 smithding 于 2016-2-23 11:15 编辑
一看不是高手啊,高手命名个a或b之类就可以了,3~5天项目做完调试OK今后就没有关联了,要么是码农要么是学生才会这么干 codefish 发表于 2016-2-23 11:09
在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。
变量名称不一样的地方,最好放在前面。
编译器容易识别,不需要判断很多字符。 我一般用结构体封装。这样就不会太长,也清楚。 codefish 发表于 2016-2-23 11:09
在C#中,自动生成的是TextBox1、TextBox2....., 我习惯保留前面,改动后面。
为了好看,为了变量名短,还想要偷懒,世界上没这样的好事吧 宁愿变量名长一点,连猜带蒙至少能理解个大概。最怕维护代码时,某些人取名一堆缩写,然后又没有注释的,猜都没法猜,还要通过程序流程去猜这个变量到底是表示什么意思,真是要命了。{:huffy:}{:huffy:}{:huffy:} 见别人写的代码button1 button2 button✘✘✘ 本帖最后由 ywhbn 于 2016-2-23 12:34 编辑
代码大全2里说,变量名最好控制在15个字符内,不要超过21个字符。TextRobotArmHeight,代码有上下文,变量名不用写成句子。 编译器如果支持中文的话直接写中文{:titter:} mTextBoxIncrementForReplaceLiquid 中文表达就有歧义,更不要说英语了,还“高手”呢。。“换一种”,是“更换”还是“切换到下一种”的意思?是“溶液”(Solution)还是“液体”(Liquid)?“需要移动的高度”,叫“高度移动量”或者“高度增量”不是更好?
TextBoxHeightIncrementForLiquid(Solution)Replacement,
TextBoxHeightIncrementForLiquid(Solution)Switching,看看哪个是你想要的吧。 agilityChen 发表于 2016-2-23 17:05
中文表达就有歧义,更不要说英语了,还“高手”呢。。“换一种”,是“更换”还是“切换到下一种”的意思? ...
居然有括弧???! huanrongyehoubishangshenggaodu zhd1021 发表于 2016-2-23 17:13
huanrongyehoubishangshenggaodu
这个名字我喜欢{:lol:} skyseeingliqy 发表于 2016-2-23 17:11
居然有括弧???!
结合上下文看根本不会有歧义: Liquid/Solution二个词选其一。
智商堪忧。 TBHForLiquid 代码中“到” 也就是 “to” 一般用 “2” ”for“用 “4” 版本升级直接 1 2 3 4 5 6... 单词缩写就行了。
就像V4L2等等。。 声明处再加上注释, 一般都OK。 HeiDeltaOnLiquidChange
或者这个,tbHD换溶液机器臂上升高度,简单愉快。不过如果要给老外看估计就瞎了 Height4EachLiquid? 两个change感觉很怪异。 texboxRise_changeliquid 说句不中听的话,既然你没能用中文简单明了地描述你遇到的问题,你的变量命名水平也就可想而知之了 本帖最后由 独孤帅 于 2016-2-23 20:42 编辑
可以做几层封装,稍微清晰一点。
TextBoxGroup.WhenLiquidChange.tbHeightStep
第一层,把所有TextBox对象的引用封装在一起,这样名字就不用写TextBox了。
第二层,在溶液改变的时候,需要的几个参数,每个参数对应一个TextBox。
第三层,由于有了前面的TextBox,可以简写为小写的tb了。
这样虽然整体名字变长了,但是更有调理,如果LZ的编程语言支持面向对象,这样比下划线要好。
顺便说一句:很多面向对象语言里有名称空间这个概念,利用起来也是可以的。
比如C++:TextBoxGroup::WhenLiquidChange::tbHeightStep codefish 发表于 2016-2-23 09:10
如果是单片机编程,我也不会用那么长的名字,因为单片机变量一般不会很多。
C#编程,可以用长点的名字, ...
单片机变量不会多。。。。。。sure? zt2012 发表于 2016-2-23 22:56
单片机变量不会多。。。。。。sure?
呵呵。我目前手上的单片机项目的变量数量不多。 Bunny_Girl 发表于 2016-2-23 10:43
还是喜欢用下划线,不喜欢驼峰式的大小写,看着很不舒服。。。
我是最讨厌下划线了, 程序复杂一点, 就满大街的单词, 却分不清下划线和标点符号 maninblack 发表于 2016-2-23 11:55
宁愿变量名长一点,连猜带蒙至少能理解个大概。最怕维护代码时,某些人取名一堆缩写,然后又没有注释的,猜 ...
赞成, 缩写最要命 缩写得要很容易看的明白的缩写。
比如常用的控件的缩写,看程序范例里就有。
说实在 真的太长了,你可以用结构打包一下 这样也是很容易读的。 最多一个名字 就你那个2/3长度,太长就注释 缩写 txtHLrate字数补丁 可以尝试用结构体来定义变量。 我是来看大家的Chinglish的
都是业余英文翻译
建议找些专业英语的人才来,坐等高手 还在使用拼音的悄悄看你们讨论{:lol:} 下划线可能更易读 TextBox_Height_Of_UserLiquidChanged
Height_Of_UserLiquidChanged_TextBox
我更喜欢第二个方式{:lol:}{:lol:} linux风格的下划线好像只在纯C的代码中才看得到 tb_HeightOfLiquid 本帖最后由 chxaitz 于 2016-2-25 21:07 编辑
knight_avr 发表于 2016-2-25 18:54
tb_HeightOfLiquid
{:handshake:}
<类缩写>_<属性>[名称]
tb_HeightChgOfLiquid 我用拼音 直接中文变量名得了 ArmAdaptor_ForLiquidLevel 其实工作久了后,每个人慢慢都会有自己的编程风格。 以前用缩写,现在用英文全名 太麻烦了 看个人方便吧 http://unbug.github.io/codelf/
这里看看别人怎么起名字
页:
[1]