各位如何看待开发的过程中,变量名或者方法名里的英文单词缩写,比如 query 写成 qry

2020-03-26 21:39:21 +08:00
 AllenHua

这样的例子蛮多

query 写成 qry

button 写成 btn

history 写成 his

service 写成 serv

parameter 写成 param params

select 写成 sel (如果写全 selected 使用过去式还能表达出状态信息 一举多得)

modify 写成 mod

类似的挺多的,不可否认 大家都很清楚的而且单词长度很长的更推荐简写,(不过这个 「大家都清楚」 界限又不太好确定)

然而有些单词实在是冷门,却还要简写成两三个字母。接手其他人代码的那个兄弟可能会爆炸,如果他们的编码习惯,命名习惯很不相同……

这个 topic 似乎也有代码规范制约着,想问问大家的看法?

7847 次点击
所在节点    程序员
88 条回复
mokeyjay
2020-03-26 21:43:23 +08:00
我认为:
能简写的首先应该是常见词,其次是要能够联系上下文消除歧义的
比如 SubmitButton 简写成 SubmitBtn 我觉得可以

query 跟 qry 就差俩字母还简写个啥劲儿
visitant
2020-03-26 21:46:40 +08:00
param 缩写还有点意义,其他的例子里缩写还不如全写,缩写反而更迷惑了,建议看看《代码大全》如何给变量取名那一章节。
inhzus
2020-03-26 21:48:43 +08:00
我平时一般都会查下通用的缩写 https://www.abbreviations.com/
当然,最好还要写上注释
KallyDev
2020-03-26 21:50:02 +08:00
方法名没有必要缩写。主要是变量名,只要和包名不冲突该怎么写就怎么写。缩写的话,可以选用 service 写为 svc,request 写为 req 这一类之间可识度高的写法。有个网页可以用来参考变量名,直接搜 Codelf
airyland
2020-03-26 21:50:06 +08:00
btn param 可以接受,其他的宁长勿短。
AllenHua
2020-03-26 21:50:06 +08:00
@mokeyjay #1 是的 同意 看到 qry 就难受 规不规范另说 一点也不美观
AllenHua
2020-03-26 21:50:48 +08:00
@visitant #2 谢谢 很好的参考资料
pomelotea2009
2020-03-26 21:51:41 +08:00
service 在有前缀单词的情况下,通常不是去掉元音简写成 srv 吗?
huntcool001
2020-03-26 21:52:00 +08:00
辨识度高的可以. department -> dept 等. 或者特殊场景,比如说 jwt 里面的很多词就会缩成三个字母,为了节省空间.

正常代码里这么写我肯定要打人的
AllenHua
2020-03-26 21:52:07 +08:00
@inhzus #3 是的 ok 谢谢
@KallyDev #4 对 service 写成 svc 谢谢指路
@airyland #5 感觉很多都是宁长勿短
Mohanson
2020-03-26 21:52:29 +08:00
局部变量统一缩写甚至 a, b, c 代替. 没错,谭浩强命名法拥簇正是在下我。
superrichman
2020-03-26 21:53:01 +08:00
你说的这几个我会用 btn param mod,其它的都完整写
ostrichb
2020-03-26 21:53:03 +08:00
我一般会用到一些缩写 即使他有歧义 比如说 recommend Requirements -> recReq
AllenHua
2020-03-26 21:53:14 +08:00
@pomelotea2009 #8 老哥说得对 是 srv [捂脸]
@KallyDev #4
KallyDev
2020-03-26 21:55:12 +08:00
@pomelotea2009 server -> srv, service -> svc
hmzt
2020-03-26 21:56:01 +08:00
@Mohanson hh,我都是 t,tmp,temp
Pythondr
2020-03-26 22:00:12 +08:00
不要自创弱缩写,为所欲为。应该对自己要求严格一点,无论是工作还是处事
kaiki
2020-03-26 22:02:44 +08:00
@hmzt 还可以 tmp tmp2 tmp3
crella
2020-03-26 22:06:17 +08:00
干脆用中文命名吧。

其实我是试过把循环内迭代的变量加上_开头,比如_x,在告诉自己认准这个是循环内的变量。怕循环的代码一长,或者不知道又冒出个 x 出来,就搞混淆了。

后面发现没什么必要。
autoxbc
2020-03-26 22:12:44 +08:00
英文苦手变量命名法

1. 常用 3000 词里选一个
2. 保证是同义词里最短的
3. 不够准确贴切?无所谓
4. 词性都用错了?无所谓

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

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

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

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

© 2021 V2EX