• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AllenHua
V2EX  ›  程序员

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

  •  1
     
  •   AllenHua · Mar 26, 2020 · 9624 views
    This topic created in 2421 days ago, the information mentioned may be changed or developed.

    这样的例子蛮多

    query 写成 qry

    button 写成 btn

    history 写成 his

    service 写成 serv

    parameter 写成 param params

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

    modify 写成 mod

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

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

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

    88 replies  •  2020-03-28 01:18:31 +08:00
    mokeyjay
    mokeyjay
    Mar 26, 2020❤️1
    1
    我认为:
    能简写的首先应该是常见词,其次是要能够联系上下文消除歧义的
    比如 SubmitButton 简写成 SubmitBtn 我觉得可以

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

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

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

    后面发现没什么必要。
    autoxbc
    autoxbc
    Mar 26, 2020
    20
    英文苦手变量命名法

    1. 常用 3000 词里选一个
    2. 保证是同义词里最短的
    3. 不够准确贴切?无所谓
    4. 词性都用错了?无所谓
    skylancer
    skylancer
    Mar 26, 2020
    21
    这没啥好担心的,唯一的问题是,请养成写注释的好习惯
    veike
    veike
    Mar 26, 2020
    22
    我一般都写的特别长
    Rwing
    Rwing
    Mar 26, 2020
    23
    全部不要缩写
    AllenHua
    AllenHua
    OP
    Mar 26, 2020
    24
    @Mohanson #11 你把你狗头丢掉了 🐻dei [滑稽]
    AllenHua
    AllenHua
    OP
    Mar 26, 2020
    25
    @Pythondr #17 我也认为尽量讲究具体 讲究严格严谨
    @crella #19 还是要英文喔
    @autoxbc #20 哥们的序号用法很标准 很规范 好评
    @veike #22 见名知义 最好了
    @Rwing #23 文件体积大了 也要想办法压缩 必要时还是要考虑缩写的
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    Mar 26, 2020❤️1
    26
    通用的常见的缩写完全没问题,写代码的都看得懂吧:
    button btn
    request req
    response res
    parameter param
    temp tmp

    不过 history -> his ????
    strawberryBug
    strawberryBug
    Mar 26, 2020
    27
    @littleylv lol,干脆全部不要缩写
    HENQIGUAI
    HENQIGUAI
    Mar 27, 2020
    28
    多打几个字母会死么?自动补全也并不需要你多打几下啊

    自己造什么玩意缩写,不是业界通用的缩写就老老实实的写全
    hszhakka2ex
    hszhakka2ex
    Mar 27, 2020
    29
    不缩写,易懂,不用猜。
    AllenHua
    AllenHua
    OP
    Mar 27, 2020 via iPad
    30
    @littleylv 我真见过 把 history 写成 his 的代码
    wangyzj
    wangyzj
    Mar 27, 2020
    31
    baobao1270
    baobao1270
    Mar 27, 2020
    32
    param, btn, serv/srv, 可以接受
    我认为应当在团队中设定一个允许的缩写列表,列表之外的都不可以缩写。
    FurN1
    FurN1
    Mar 27, 2020 via iPhone
    33
    很多集成电路的选择线都叫 sel,这个倒是通用
    params 和 arg 一样,类 unix 常见
    mod 这个倒的确应该说清楚
    randyo
    randyo
    Mar 27, 2020 via Android
    34
    手工混淆吗
    hoyixi
    hoyixi
    Mar 27, 2020
    35
    btn param 至少不会引起歧义

    这东西乱写的话,纯粹给自己和团队埋雷,时间长了恐怕就忘了
    hanxiV2EX
    hanxiV2EX
    Mar 27, 2020 via Android
    36
    用拼音挺好的
    ericls
    ericls
    Mar 27, 2020
    37
    bikeshedding
    Felldeadbird
    Felldeadbird
    Mar 27, 2020 via iPhone
    38
    不是所有单词都合适缩写…
    stillsilly
    stillsilly
    Mar 27, 2020
    39
    古代程序员喜欢这么干
    learningman
    learningman
    Mar 27, 2020 via Android
    40
    @ostrichb receive Response (确信)
    msg7086
    msg7086
    Mar 27, 2020 via Android❤️5
    41
    我们这有人把 authentication 缩写成 auto 的,我都看呆了。
    kaiki
    kaiki
    Mar 27, 2020
    42
    @hanxiV2EX 之后就会出现 00 后的那种 cqy(处 Q 友)等加密通话般的缩写
    areless
    areless
    Mar 27, 2020 via Android
    43
    一行 80 个,局部变量 a 开头的直接 a 了
    hafuhafu
    hafuhafu
    Mar 27, 2020
    44
    有那种通用缩写的就用,其他就只好写最短的全称了,即使最后变量名或者方法名很长,不过幸好有 IDE,除了看着难受一点点,其实也没啥。但是乱用自己编的缩写,过阵子再看就很难受了,特别是有时候还会遇到有类似的...
    April5
    April5
    Mar 27, 2020
    45
    手里维护的一份 C 代码,上下文变量就是 mod,之前还不知道什么意思,看到楼主说的,醍醐灌顶
    sunziren
    sunziren
    Mar 27, 2020
    46
    我们就不一样了,我们一般用拼音的缩写(:doge )
    sunziren
    sunziren
    Mar 27, 2020
    47
    10 秒内能认出来算我输
    jinliming2
    jinliming2
    Mar 27, 2020 via iPhone
    48
    query 不是大部分直接缩写为 q 吗?
    garlics
    garlics
    Mar 27, 2020
    49
    想起以前一个同事把 button 缩写成 but
    AllenHua
    AllenHua
    OP
    Mar 27, 2020
    50
    @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]
    AlexHsu
    AlexHsu
    Mar 27, 2020
    51
    看得懂就行吧 前几个还行 sel 和 mod 是什么鬼 真有人这么写吗
    jinliming2
    jinliming2
    Mar 27, 2020 via iPhone
    52
    @AllenHua query 缩写成一个字母 q 很常见啊,谷歌、必应的搜索词参数就是 q,百度的是 word 缩写成 wd……
    yjxjn
    yjxjn
    Mar 27, 2020
    53
    @msg7086 写 auth 怎么看都知道是验证的意思,auto 这特么连意思都改了。。
    zr8657
    zr8657
    Mar 27, 2020
    54
    巨坑,之前看到有人吧 windows 写了个 win,我当时还在想跟冠军有什么关系,问了问才知道是 windows,无语
    guolaopi
    guolaopi
    Mar 27, 2020
    55
    大家都认可的也就没啥了。
    隐约记得 std=>standard,eq=>equals,招谁说理去
    encro
    encro
    Mar 27, 2020
    56
    简写,适用于局部变量,如果用到全局,那么就是坑人。
    局部得时候可以更加简单点

    function(r Request) {

    }

    function(req Request) {

    }

    都是可以的,但是你全局写一个

    Class Req{}

    就要被骂了
    GaoYL
    GaoYL
    Mar 27, 2020
    57
    本人绝对不会这样子做。
    efaun
    efaun
    Mar 27, 2020
    58
    代码提示都已经这么智能了,起个长点的变量名又有何不可,下文引用的时候打两三个字母就出来了
    xsen
    xsen
    Mar 27, 2020
    59
    这算好了,猜猜还是可以猜到的。若遇到用中文首字母缩写——各位是真的可以猜猜意思,恩,还没注释
    silhouette
    silhouette
    Mar 27, 2020 via Android
    60
    conf
    crella
    crella
    Mar 27, 2020 via Android
    61
    resp 才是指 response 吧,res 不是指 resource 吗,好像 windows 有个 uires.dll
    daviswei
    daviswei
    Mar 27, 2020
    62
    @zr8657 win98 、winxp 、win10,好像都习惯了,哈哈
    zealinux
    zealinux
    Mar 27, 2020
    63
    应该会有人简写成 qy
    wdd2007
    wdd2007
    Mar 27, 2020
    64
    哈哈 res 不是 result 么
    rockcat
    rockcat
    Mar 27, 2020
    65
    英文非母语,乱写而已。还是老老实实的写全了吧。
    zcfnc
    zcfnc
    Mar 27, 2020
    66
    自从 python 支持中文了就开始用中文做命名了,虽然看起来怪怪的。。。。
    sdushn
    sdushn
    Mar 27, 2020
    67
    qry 是啥,为啥不直接连 r 也省了,之前也会把 button 写成 btn,现在基本是都写全,多敲几个字母的事
    kisshere
    kisshere
    Mar 27, 2020
    68
    只认识 btn 、param 、mod
    其余都不认识
    Leonard
    Leonard
    Mar 27, 2020
    69
    简写起码直观,有些人英文实在烂,比如现在我接手的代码里之前的人死活不会写 video,一会一个 vedio,一会一个 veido,上次发现个 bug 找了半天,我只看到单词错了,但这种错误放在长方法名或长变量里,得看半天才能分出来原来两个拼写错得不一样。。
    royzhanggy
    royzhanggy
    Mar 27, 2020
    70
    不简写都可能会有误解,还是老老实实写全吧
    tuwulin365
    tuwulin365
    Mar 27, 2020
    71
    @Mohanson 是拥趸啦
    AllenHua
    AllenHua
    OP
    Mar 27, 2020
    72
    @jinliming2 #52 你说的场景 确实常见 但是代码里写 用一个 q 然后后面跟上业务中出现的名词不觉得别扭吗 代码里的逻辑 首推肯定是写全了 简写个🐔儿啊
    @yjxjn #53 也许是 写快了 手滑 #滑稽
    @zr8657 #54 哈哈哈 该贴成为变成故事大会
    @encro #56 是的 有道理
    @crella #61 阔以
    @Leonard #69 这种 真是巨坑了 不好意思 把👨 和大家都逗笑了
    @tuwulin365 #71 乱棍打死 +1
    charlieputon
    charlieputon
    Mar 27, 2020 via Android
    73
    说到这个不得不吐槽一下,程序员真的要英语好一点。否则即使是一些大厂的员工,写的代码也很恶心。例如:把 execute 简写成 ext,看到都想骂人,execute 用脚趾想缩写也只可能是 exec 啊,ext 看到第一眼难道不是 extention 吗。真他妈猪。
    jsjgjbzhang
    jsjgjbzhang
    Mar 27, 2020
    74
    像我用中文命名就不会有这种问题
    crella
    crella
    Mar 27, 2020 via Android
    75
    论到缩写,pecmd 的命令基本都是四字,有参考意义
    raymanr
    raymanr
    Mar 27, 2020
    76
    我这两天看外国友人十年前的机器学习代码... 看得最后受不了把名字都改回全部单词了

    feat -> feature
    vec -> vector
    ent -> entropy

    等等等等...
    atonku
    atonku
    Mar 27, 2020
    77
    我都是把别人的缩写展开,显得写的代码比较多,面向 KPI
    codelegant
    codelegant
    Mar 27, 2020
    78
    用文本编辑器写代码的吗?为什么要使用缩写?自动补全不好吗?除非是像 i18n 这种。
    HankAviator
    HankAviator
    Mar 27, 2020
    79
    @yjxjn Das Auto😂 -"我 Audi 出一倍价格"
    MarkZuckerberg
    MarkZuckerberg
    Mar 27, 2020
    80
    省略元音字母 a e i o u 是常用的缩写手法
    另外一个是把 ks/cs 写成 x

    thx
    thehackercat
    thehackercat
    Mar 27, 2020
    81
    query 写成 qry

    button 写成 btn

    history 写成 hty

    service 写成 svc

    parameter 写成 param

    modify 写成 mod
    yxcxx
    yxcxx
    Mar 27, 2020
    82
    写 rust 就没办法把 modify 缩写成 mod 了
    Tn5ohB1Yecdk3qCK
    Tn5ohB1Yecdk3qCK
    Mar 27, 2020
    83
    @sunziren #46
    拼音缩写的才叫牛逼
    hantsy
    hantsy
    Mar 27, 2020
    84
    btn, param 还可以接受,其它的无法理解。
    shaohan0228
    shaohan0228
    Mar 27, 2020
    85
    query 写成 qry 不用 没见过

    button 写成 btn 用

    history 写成 his 不用 见过

    service 写成 serv 不用 没见过

    parameter 写成 param params 用

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

    modify 写成 mod 不用 见过
    jadehare
    jadehare
    Mar 27, 2020
    86
    position => pos ;controller => ctrl 。缩写的一般都是没歧义的吧,我看到这个 history => his 是会懵逼的
    justin2018
    justin2018
    Mar 27, 2020
    87
    还是全名的好 development or develop 写 dev 我可以知道

    button 写 btn 我可以知道 但是其他的 我可能还真不知道 😅

    shenfenzheng 其实是 身份证 但是如果缩写 sfz 那就有很多情况 真不知道你说的是啥子 😅
    WhoMercy
    WhoMercy
    Mar 28, 2020
    88
    起源应该是外国人对常用的单词进行了缩写,学习别人的代码也就把这一套学了过来。

    初看可能会不习惯,但是这种缩写就如同“黑话”,基本上在各个行业都会有一些。

    个人觉得缩写看起来会更简练(优雅),差几个字母可以自动补全是没错,但少流畅感(一眼即可聚焦知义,而不需要扫过全部单词)。

    还有,大部分缩写的地方都是次要的,如 btn 、svc 、dao 、dto 等都是作为后缀描述某一类方法(功能、作用),更重要的是前缀搭配的“描述性文字”,那部分一般不会缩写。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   914 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 140ms · UTC 20:29 · PVG 04:29 · LAX 12:29 · JFK 15:29
    ♥ Do have faith in what you're doing.