PHP同事(本组组长)不懂英文,变量名命名有时会张冠李戴?该提醒他么?

2013-05-31 11:10:29 +08:00
 picasso250
数据库命名也不好,方法名命名也不好。我每次看到他的变量名,都不敢通过他的变量名去推测意思,要上溯一下源码。
而且我还觉得有些命名特别别扭。
于是无明火起。曾经用比较委婉的语气指出他数据库表名命名不合理。但指出的时间比较晚,他都把表建好了。他也没改。我也没坚持。
其实他的代码bug还是比较少的,精于SQL。
我是否应该继续坚持“纠正”他。或者有什么其他好方法?
6556 次点击
所在节点    程序员
38 条回复
regmach
2013-05-31 19:46:45 +08:00
@raincious
getContentByKeyName();
这种很糟糕吗?
因为还有可能...byId,...byUser,...byXxx()
新鸟,勿怪
xuan_lengyue
2013-05-31 20:04:27 +08:00
@PrideChung 其实我也觉得你的方法名字太长了。。。
@denger Objective-C 方法命名最好的一点是语意很明确,比如说如果有获取天气的逻辑
C 系的语言可能会写成:
Weather getWeather(float latitude, float longitude, Time time);
如果后面跟的参数太多,很可能次序会写错,甚至有的时候连参数是什么语意都不知道。

Objective-C 的方法则是:
- (Weather)getWeatherForLatitude:(float)latitude longitude:(float)longitude time:(Time)time;
相对而言,每个参数前面都会有指示性的文字进行提示。

酱紫会导致方法名严重变长,但是会有更好的可读性,有时候甚至连文档都不用看,直接通过方法名就能知道什么参数对应什么。

我个人是喜欢后者,当然,萝卜白菜各有所爱啦。

如果fetchContentFromDatabaseUsingEPollAndKeepMyCafeWarm这个方法写成
- (Content)fetchContentFromDatabase:(Database)database using:(Method)method andKeepMyCafe:(Temperature)warm;
就更能体现 Objective-C 的优点了 :)
denger
2013-05-31 20:14:46 +08:00
@xuan_lengyue
关于你的例子, Weather getWeather(float latitude, float longitude, Time time) 如果设计成:
Weather getWeather(Latitude latitude, Time time) 会不会更好?

关于如何避免参数长的问题,可以参考《重构:改善既有代码的设计》第三 章 代码的坏味道 第四节 Long Parameter List(过长参数列)
PrideChung
2013-05-31 21:33:22 +08:00
@denger 所以说 Objective-C 是另外一个世界,因为整个Cocoa框架都是死长死长的命名风格…… 有些还在严格遵守最多80个字符一行的程序员初学 Objective-C 一定会抓狂的,方法名的长度就超过50个字符的方法不在少数。

@xuan_lengyue 不是我写的方法,我只是引用 @raincious 的例子,而且这种长度的方法或者函数名在 Objective-C 里面简直俯拾皆是,随便找一个: CVPixelFormatDescriptionRegisterDescriptionWithPixelFormatType。

的确Objective-C有一点很好的地方是参数的意义很明确,就算不查文档,也不可能写错参数的顺序。
JoyNeop
2013-05-31 21:56:49 +08:00
@regmach getElementById() 神躺枪……
zava
2013-05-31 22:08:30 +08:00
@zhttty -1
@picasso250 没有 code review 么?坚决讲出来,不讲出来绝对会难受。从某种程度上讲,会纠结这个的是好程序员。
birds7
2013-06-01 03:16:06 +08:00
你这不算极品额。。。上次给一家票务站做功能扩展的时候发现数据库压根没法读,英文缩写+拼音缩写+数字 连注释都没有。。。
metaclass
2013-06-01 03:49:41 +08:00
也不是那么惨,看起来还是懂一点英语的

backWardsCustomer,这个backwards应全小写;TradeAllocation,配置用Configuration更通一点

不是什么大毛病,还好都可以理解,当然能规范那更好
venglide
2013-06-01 14:11:16 +08:00
记得以前有个文章讲接手一个项目,变量全是水果名。。。
xshadown
2013-06-01 23:50:31 +08:00
己所不欲,勿施于人。
Ricepig
2013-06-02 02:08:08 +08:00
其实也可能是英文水平确实稍差,加上没有良好的重构工具和时间,所以。。。也没必要无名火起。对于大家都要接触的东西(代码、数据库等),需要有一个约定。英语命名这个约定是个潜规则,但并不是一个强规则,语言本身也有模糊性。

此外,某些时候,有些概念你一时找不到完全精确的英文翻译,或者这个英文翻译转业到大部分人都不懂,这个时候约定一些其他的词汇来替代也不是无法接受的。
felixye
2013-06-02 14:27:52 +08:00
你这个同事还算好了。
我遇到过经常拼错单词,变量首尾字母是正确的,中间肯定有个字母是错的。
也不用有代码提示的IDE,程序老出bug,他自己调了半天,我一看就是单词错。
对与我这种重度强迫症患者,很接受不了。。
我怀疑是属于「阅读障碍」
twor2
2013-06-02 14:52:14 +08:00
不懂英文都做到组长,也蛮有水平的
regmach
2013-06-02 15:56:02 +08:00
@JoyNeop 哈哈哈哈哈~
cjjer
2013-06-02 16:36:59 +08:00
经常中文命名的路过,哼
anythink
2013-06-02 22:47:19 +08:00
看看上面的各位 自己有自己认为合理的命名方式,但仅是自己一厢情愿罢了。

俗话说得好,众口难调!一个团队只能用一种似乎合理的方式来解决问题。
Loveyuki
2013-06-07 09:37:46 +08:00
看你们组长是什么样的人了吧

如果他经常说自己英文比较差。你可以和他交流啊。

我有时候命名还要查字典呢。多希望有个英文好的给我提醒改正啊。
Hysteria
2013-06-07 14:26:01 +08:00
@xuan_lengyue 同感OC写多了,会很喜欢这种代码自带注释的感觉。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/70745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX