这样的例子蛮多
query 写成 qry
button 写成 btn
history 写成 his
service 写成 serv
parameter 写成 param params
select 写成 sel (如果写全 selected 使用过去式还能表达出状态信息 一举多得)
modify 写成 mod
类似的挺多的,不可否认 大家都很清楚的而且单词长度很长的更推荐简写,(不过这个 「大家都清楚」 界限又不太好确定)
然而有些单词实在是冷门,却还要简写成两三个字母。接手其他人代码的那个兄弟可能会爆炸,如果他们的编码习惯,命名习惯很不相同……
这个 topic 似乎也有代码规范制约着,想问问大家的看法?
1
mokeyjay 2020-03-26 21:43:23 +08:00 1
我认为:
能简写的首先应该是常见词,其次是要能够联系上下文消除歧义的 比如 SubmitButton 简写成 SubmitBtn 我觉得可以 query 跟 qry 就差俩字母还简写个啥劲儿 |
2
visitant 2020-03-26 21:46:40 +08:00 2
param 缩写还有点意义,其他的例子里缩写还不如全写,缩写反而更迷惑了,建议看看《代码大全》如何给变量取名那一章节。
|
3
inhzus 2020-03-26 21:48:43 +08:00 7
我平时一般都会查下通用的缩写 https://www.abbreviations.com/
当然,最好还要写上注释 |
4
KallyDev 2020-03-26 21:50:02 +08:00 via iPhone
方法名没有必要缩写。主要是变量名,只要和包名不冲突该怎么写就怎么写。缩写的话,可以选用 service 写为 svc,request 写为 req 这一类之间可识度高的写法。有个网页可以用来参考变量名,直接搜 Codelf
|
5
airyland 2020-03-26 21:50:06 +08:00
btn param 可以接受,其他的宁长勿短。
|
8
pomelotea2009 2020-03-26 21:51:41 +08:00 via Android
service 在有前缀单词的情况下,通常不是去掉元音简写成 srv 吗?
|
9
huntcool001 2020-03-26 21:52:00 +08:00
辨识度高的可以. department -> dept 等. 或者特殊场景,比如说 jwt 里面的很多词就会缩成三个字母,为了节省空间.
正常代码里这么写我肯定要打人的 |
10
AllenHua OP |
11
Mohanson 2020-03-26 21:52:29 +08:00 via Android
局部变量统一缩写甚至 a, b, c 代替. 没错,谭浩强命名法拥簇正是在下我。
|
12
superrichman 2020-03-26 21:53:01 +08:00 via iPhone
你说的这几个我会用 btn param mod,其它的都完整写
|
13
ostrichb 2020-03-26 21:53:03 +08:00 via Android
我一般会用到一些缩写 即使他有歧义 比如说 recommend Requirements -> recReq
|
14
AllenHua OP |
15
KallyDev 2020-03-26 21:55:12 +08:00 via iPhone
@pomelotea2009 server -> srv, service -> svc
|
17
Pythondr 2020-03-26 22:00:12 +08:00 via iPhone 1
不要自创弱缩写,为所欲为。应该对自己要求严格一点,无论是工作还是处事
|
19
crella 2020-03-26 22:06:17 +08:00 via Android
干脆用中文命名吧。
其实我是试过把循环内迭代的变量加上_开头,比如_x,在告诉自己认准这个是循环内的变量。怕循环的代码一长,或者不知道又冒出个 x 出来,就搞混淆了。 后面发现没什么必要。 |
20
autoxbc 2020-03-26 22:12:44 +08:00
英文苦手变量命名法
1. 常用 3000 词里选一个 2. 保证是同义词里最短的 3. 不够准确贴切?无所谓 4. 词性都用错了?无所谓 |
21
skylancer 2020-03-26 22:18:32 +08:00
这没啥好担心的,唯一的问题是,请养成写注释的好习惯
|
22
veike 2020-03-26 22:20:16 +08:00
我一般都写的特别长
|
23
Rwing 2020-03-26 22:23:37 +08:00
全部不要缩写
|
25
AllenHua OP |
26
littleylv 2020-03-26 23:08:23 +08:00 1
|
27
strawberryBug 2020-03-26 23:58:04 +08:00
@littleylv lol,干脆全部不要缩写
|
28
HENQIGUAI 2020-03-27 00:01:40 +08:00
多打几个字母会死么?自动补全也并不需要你多打几下啊
自己造什么玩意缩写,不是业界通用的缩写就老老实实的写全 |
29
hszhakka2ex 2020-03-27 00:03:30 +08:00
不缩写,易懂,不用猜。
|
32
baobao1270 2020-03-27 00:18:54 +08:00
param, btn, serv/srv, 可以接受
我认为应当在团队中设定一个允许的缩写列表,列表之外的都不可以缩写。 |
33
IgniteWhite 2020-03-27 00:24:28 +08:00 via iPhone
很多集成电路的选择线都叫 sel,这个倒是通用
params 和 arg 一样,类 unix 常见 mod 这个倒的确应该说清楚 |
34
randyo 2020-03-27 00:26:26 +08:00 via Android
手工混淆吗
|
35
hoyixi 2020-03-27 00:26:56 +08:00
btn param 至少不会引起歧义
这东西乱写的话,纯粹给自己和团队埋雷,时间长了恐怕就忘了 |
36
hanxiV2EX 2020-03-27 00:27:25 +08:00 via Android
用拼音挺好的
|
37
ericls 2020-03-27 00:54:40 +08:00
bikeshedding
|
38
Felldeadbird 2020-03-27 01:09:01 +08:00 via iPhone
不是所有单词都合适缩写…
|
39
stillsilly 2020-03-27 01:18:49 +08:00
古代程序员喜欢这么干
|
40
learningman 2020-03-27 01:20:35 +08:00 via Android
@ostrichb receive Response (确信)
|
41
msg7086 2020-03-27 04:34:57 +08:00 via Android 5
我们这有人把 authentication 缩写成 auto 的,我都看呆了。
|
43
areless 2020-03-27 07:55:39 +08:00 via Android
一行 80 个,局部变量 a 开头的直接 a 了
|
44
hafuhafu 2020-03-27 07:58:18 +08:00
有那种通用缩写的就用,其他就只好写最短的全称了,即使最后变量名或者方法名很长,不过幸好有 IDE,除了看着难受一点点,其实也没啥。但是乱用自己编的缩写,过阵子再看就很难受了,特别是有时候还会遇到有类似的...
|
45
April5 2020-03-27 08:33:05 +08:00
手里维护的一份 C 代码,上下文变量就是 mod,之前还不知道什么意思,看到楼主说的,醍醐灌顶
|
46
sunziren 2020-03-27 08:37:02 +08:00
我们就不一样了,我们一般用拼音的缩写(:doge )
|
47
sunziren 2020-03-27 08:37:28 +08:00
10 秒内能认出来算我输
|
48
jinliming2 2020-03-27 08:47:53 +08:00 via iPhone
query 不是大部分直接缩写为 q 吗?
|
49
garlics 2020-03-27 09:01:01 +08:00
想起以前一个同事把 button 缩写成 but
|
50
AllenHua OP @baobao1270 #32 那这个列表需要及时更新和时常维护了
@IgniteWhite #33 对 是的 所以说 这个“通用” 是有点难界定 @hanxiV2EX #36 不加狗头吗? @stillsilly #39 这是在嘲笑远古时期程序员么 hhhh @msg7086 #41 八竿子打不着诶 神了 @kaiki #42 加密通话好评!哈哈哈哈 @hafuhafu #44 我感觉写全了 其实也不难受 大小写注意了之后 反而看起来很爽(主要还是见名知义的功劳) @April5 #45 不用客气 @sunziren #46 谢谢你的 doge 哈哈 @jinliming2 #48 一个字母这么狠?乱棍打死好了 @garlics #49 他英语六级估计没过 [doge] |
51
AlexHsu 2020-03-27 09:18:59 +08:00
看得懂就行吧 前几个还行 sel 和 mod 是什么鬼 真有人这么写吗
|
52
jinliming2 2020-03-27 09:23:06 +08:00 via iPhone
@AllenHua query 缩写成一个字母 q 很常见啊,谷歌、必应的搜索词参数就是 q,百度的是 word 缩写成 wd……
|
54
zr8657 2020-03-27 09:26:33 +08:00
巨坑,之前看到有人吧 windows 写了个 win,我当时还在想跟冠军有什么关系,问了问才知道是 windows,无语
|
55
guolaopi 2020-03-27 09:26:37 +08:00
大家都认可的也就没啥了。
隐约记得 std=>standard,eq=>equals,招谁说理去 |
56
encro 2020-03-27 09:42:18 +08:00
简写,适用于局部变量,如果用到全局,那么就是坑人。
局部得时候可以更加简单点 function(r Request) { } function(req Request) { } 都是可以的,但是你全局写一个 Class Req{} 就要被骂了 |
57
GaoYL 2020-03-27 09:46:16 +08:00
本人绝对不会这样子做。
|
58
efaun 2020-03-27 09:59:42 +08:00
代码提示都已经这么智能了,起个长点的变量名又有何不可,下文引用的时候打两三个字母就出来了
|
59
xsen 2020-03-27 10:10:37 +08:00
这算好了,猜猜还是可以猜到的。若遇到用中文首字母缩写——各位是真的可以猜猜意思,恩,还没注释
|
60
silhouette 2020-03-27 10:12:19 +08:00 via Android
conf
|
61
crella 2020-03-27 10:12:43 +08:00 via Android
resp 才是指 response 吧,res 不是指 resource 吗,好像 windows 有个 uires.dll
|
63
zealinux 2020-03-27 10:38:22 +08:00
应该会有人简写成 qy
|
64
wdd2007 2020-03-27 10:41:27 +08:00
哈哈 res 不是 result 么
|
65
rockcat 2020-03-27 10:43:51 +08:00
英文非母语,乱写而已。还是老老实实的写全了吧。
|
66
zcfnc 2020-03-27 10:57:44 +08:00
自从 python 支持中文了就开始用中文做命名了,虽然看起来怪怪的。。。。
|
67
sdushn 2020-03-27 11:02:46 +08:00
qry 是啥,为啥不直接连 r 也省了,之前也会把 button 写成 btn,现在基本是都写全,多敲几个字母的事
|
68
kisshere 2020-03-27 11:23:58 +08:00
只认识 btn 、param 、mod
其余都不认识 |
69
Leonard 2020-03-27 11:40:09 +08:00
简写起码直观,有些人英文实在烂,比如现在我接手的代码里之前的人死活不会写 video,一会一个 vedio,一会一个 veido,上次发现个 bug 找了半天,我只看到单词错了,但这种错误放在长方法名或长变量里,得看半天才能分出来原来两个拼写错得不一样。。
|
70
royzhanggy 2020-03-27 11:53:34 +08:00
不简写都可能会有误解,还是老老实实写全吧
|
71
tuwulin365 2020-03-27 12:11:24 +08:00
@Mohanson 是拥趸啦
|
72
AllenHua OP @jinliming2 #52 你说的场景 确实常见 但是代码里写 用一个 q 然后后面跟上业务中出现的名词不觉得别扭吗 代码里的逻辑 首推肯定是写全了 简写个🐔儿啊
@yjxjn #53 也许是 写快了 手滑 #滑稽 @zr8657 #54 哈哈哈 该贴成为变成故事大会 @encro #56 是的 有道理 @crella #61 阔以 @Leonard #69 这种 真是巨坑了 不好意思 把👨 和大家都逗笑了 @tuwulin365 #71 乱棍打死 +1 |
73
charlieputon 2020-03-27 13:11:54 +08:00 via Android
说到这个不得不吐槽一下,程序员真的要英语好一点。否则即使是一些大厂的员工,写的代码也很恶心。例如:把 execute 简写成 ext,看到都想骂人,execute 用脚趾想缩写也只可能是 exec 啊,ext 看到第一眼难道不是 extention 吗。真他妈猪。
|
74
jsjgjbzhang 2020-03-27 13:44:56 +08:00
像我用中文命名就不会有这种问题
|
75
crella 2020-03-27 13:46:49 +08:00 via Android
论到缩写,pecmd 的命令基本都是四字,有参考意义
|
76
raymanr 2020-03-27 14:01:00 +08:00
我这两天看外国友人十年前的机器学习代码... 看得最后受不了把名字都改回全部单词了
feat -> feature vec -> vector ent -> entropy 等等等等... |
77
atonku 2020-03-27 14:38:00 +08:00
我都是把别人的缩写展开,显得写的代码比较多,面向 KPI
|
78
codelegant 2020-03-27 14:55:40 +08:00
用文本编辑器写代码的吗?为什么要使用缩写?自动补全不好吗?除非是像 i18n 这种。
|
79
HankAviator 2020-03-27 15:06:06 +08:00
@yjxjn Das Auto😂 -"我 Audi 出一倍价格"
|
80
MarkZuckerberg 2020-03-27 15:57:22 +08:00
省略元音字母 a e i o u 是常用的缩写手法
另外一个是把 ks/cs 写成 x thx |
81
thehackercat 2020-03-27 17:27:57 +08:00
query 写成 qry
button 写成 btn history 写成 hty service 写成 svc parameter 写成 param modify 写成 mod |
82
yxcxx 2020-03-27 17:37:48 +08:00
写 rust 就没办法把 modify 缩写成 mod 了
|
83
Tn5ohB1Yecdk3qCK 2020-03-27 17:59:49 +08:00
@sunziren #46
拼音缩写的才叫牛逼 |
84
hantsy 2020-03-27 18:02:32 +08:00
btn, param 还可以接受,其它的无法理解。
|
85
shaohan0228 2020-03-27 18:07:37 +08:00
query 写成 qry 不用 没见过
button 写成 btn 用 history 写成 his 不用 见过 service 写成 serv 不用 没见过 parameter 写成 param params 用 select 写成 sel (如果写全 selected 使用过去式还能表达出状态信息 一举多得)抽风的时候用过 modify 写成 mod 不用 见过 |
86
jadehare 2020-03-27 18:20:09 +08:00
position => pos ;controller => ctrl 。缩写的一般都是没歧义的吧,我看到这个 history => his 是会懵逼的
|
87
justin2018 2020-03-27 19:54:56 +08:00
还是全名的好 development or develop 写 dev 我可以知道
button 写 btn 我可以知道 但是其他的 我可能还真不知道 😅 shenfenzheng 其实是 身份证 但是如果缩写 sfz 那就有很多情况 真不知道你说的是啥子 😅 |
88
WhoMercy 2020-03-28 01:18:31 +08:00
起源应该是外国人对常用的单词进行了缩写,学习别人的代码也就把这一套学了过来。
初看可能会不习惯,但是这种缩写就如同“黑话”,基本上在各个行业都会有一些。 个人觉得缩写看起来会更简练(优雅),差几个字母可以自动补全是没错,但少流畅感(一眼即可聚焦知义,而不需要扫过全部单词)。 还有,大部分缩写的地方都是次要的,如 btn 、svc 、dao 、dto 等都是作为后缀描述某一类方法(功能、作用),更重要的是前缀搭配的“描述性文字”,那部分一般不会缩写。 |