V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
curiousjude
V2EX  ›  问与答

大家在什么情况下会用拼音命名变量什么的?

  •  
  •   curiousjude · 2014-10-20 11:54:20 +08:00 · 6632 次点击
    这是一个创建于 3448 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用拼音命名似乎是大家说不提倡,甚至鄙视的。但有时似乎用拼音命名会比较合理。

    比如「马甲账号」,sockpuppet? dummy?(见知乎讨论 http://www.zhihu.com/question/19746018 )似乎都不直观,所以最终我决定直接用拼音majia;

    比如「红包」,red packet? red envelope? 感觉没有表达红包的意思,于是我就直接用hongbao了。

    就是想问问大家,如果遇到英文中没有对应的词的情况,大家是怎么处理的?如果选择用拼音,有没有什么好的实践?

    或者就简单分享一下大家用拼音命名的例子吧。
    第 1 条附言  ·  2014-10-20 14:05:36 +08:00
    我提这个问题并不是想要具体知道「马甲账号」、「红包」应该如何用英文命名,而是想往大了讨论在难以找到能够准确描述中文意思的英文时,使用拼音是否合理?或者有更好的实践?
    52 条回复    2014-10-21 14:02:56 +08:00
    fangzhzh
        1
    fangzhzh  
       2014-10-20 12:19:22 +08:00 via Android
    你如果开源 别人看到你的代码将是一头雾水 majia = ninjia?

    我的词汇量也不太大
    红包 bonus, cash_rewards
    马夹 alias, fake_account

    另,马夹变量名为什么会出现在代码中,主账号关联马夹账号?
    helone
        2
    helone  
       2014-10-20 12:27:35 +08:00   ❤️ 1
    不用拼音原因是容易出现歧义,而且拼音就是单纯读音,就算读出来了,有时候也可能不知道意思,例如马夹、马甲、马家。
    alexrezit
        3
    alexrezit  
       2014-10-20 12:33:43 +08:00   ❤️ 2
    说明你英语水平太差了。中文中“马甲”的含义太宽泛,在英文中可以分很多种,根据不同情况可以叫做 dummy、puppet、alias、smurf。

    红包请根据给的方向分别叫做 bonus 或 bribe 不谢。
    tan9le
        4
    tan9le  
       2014-10-20 13:18:42 +08:00
    让我想起了公安的若干个项目,表名全是T_CZRK_JBXX,T_ZZRK_JBXX这个风格的,在没文档的情况下,着实好好的复习了一下拼音
    curiousjude
        5
    curiousjude  
    OP
       2014-10-20 14:06:55 +08:00
    @tan9le 我个人也是很不喜欢拼音的,尤其是拼音缩写。我甚至觉得拼音缩写就应该禁止。
    AstroProfundis
        6
    AstroProfundis  
       2014-10-20 14:11:46 +08:00
    尽量用英语吧,能尽可能保证别人看到的时候知道这是什么,实在不行在用了拼音的时候旁边就放上注释...
    curiousjude
        7
    curiousjude  
    OP
       2014-10-20 14:15:08 +08:00
    @helone 你说的有道理。但我认为这种情况(可能多义)在中英文下都是无法避免的,只能靠语境来确定。「马甲」的例子,如果在账号系统的语境下,要确定「majia」是「马甲」应该是不难的。
    curiousjude
        8
    curiousjude  
    OP
       2014-10-20 14:18:01 +08:00
    @AstroProfundis 我不是在倡导使用拼音。使用拼音的弊端大家应该都知道。我这里想讨论的就是你所说的「实在不行」的情况下用拼音与硬要使用英文那个更合理。
    helone
        9
    helone  
       2014-10-20 14:20:30 +08:00
    @curiousjude 在我看来用拼音都可以的,尤其是自己的项目或者是内部的,但是要保证无明显歧义~
    tan9le
        10
    tan9le  
       2014-10-20 14:24:18 +08:00
    @curiousjude 如果是实在不行的情况,个人觉得拼音(全拼)好一些,一是词汇量方面,二是语境方面,一个半吊子的英文命名反而会增加阅读难度。
    但是有个前提,需要统一风格,不能有的英文有的拼音,这样很难过,比如我刚才说的公安的项目,各个开发商已经约定俗成了,而且大多数情况下都是做功能扩展,这会改变命名规范不太合适。
    话说我还见过DingDanDetail的类名呢,貌似是一个旅游类的项目
    likaci
        11
    likaci  
       2014-10-20 14:25:44 +08:00
    拼音还是好的,最受不了拼音首字母!

    rwsl -- 任务数量
    xxgj -- 巡线轨迹
    sbsj -- 上报时间

    艹艹艹艹艹艹!
    shiny
        12
    shiny  
       2014-10-20 14:28:25 +08:00
    1、品牌
    2、风格保持统一,如果项目之前的人用的拼音,只能继续用拼音了。
    curiousjude
        13
    curiousjude  
    OP
       2014-10-20 14:28:54 +08:00
    @alexrezit 这两个例子里我使用拼音或许不合理。我个人水平有限在当时的情况下确实就使用了拼音。那么引申讨论一下,如果团队里队员们的英语水平都一般的情况下,硬要使用英文是否就一定比使用拼音合理。我有一个同事,把根据某个主题罗列商品的「专区」直接就叫「Prefecture」了,如果他用「zhuanqu」可能还更好理解。
    shiny
        14
    shiny  
       2014-10-20 14:30:39 +08:00
    看了帖子内容,这个不是不可以接受。但是换我的话,上 Google 翻译,它翻啥就啥了。
    curiousjude
        15
    curiousjude  
    OP
       2014-10-20 14:44:20 +08:00
    @shiny 我觉得这么做就是会出现@tan9le所说的「半吊子的英文命名」,反而更增加阅读难度。
    curiousjude
        16
    curiousjude  
    OP
       2014-10-20 15:01:59 +08:00
    @fangzhzh 开源的情况确实没有考虑。

    你列的那几个词,其实我们都有考虑过,但是最终觉得都无法准确描述,时间有限的情况下,大家才决定用拼音的。

    「马甲」的话,是用于标记小编的账号的。
    AstroProfundis
        17
    AstroProfundis  
       2014-10-20 15:29:11 +08:00
    @curiousjude 既然都实在不行了,当然就是说只能用拼音,主楼里面提到的单纯不知道怎么说应该还算不上,毕竟稍微补一下英语找个过得去的表达应该还是能办到的;我考虑到的是可能是合作者或者其他会看代码的人确实英语水平有限并且短期内不方便让他们学习相关说法的时候,另外同意上面说的,尽量用全拼,缩写太反人类了,哪怕是英语缩写都要尽量少用何况拼音_(:зゝ∠)_以及注释还是要有的吧~
    otakustay
        18
    otakustay  
       2014-10-20 15:32:36 +08:00
    以前做政府项目的时候全是拼音命名,去他妹的英文,这类内部专有名词用英文意义何在
    shiny
        19
    shiny  
       2014-10-20 16:19:10 +08:00
    @otakustay 以前做政府项目数据库也都是拼音首字母,还TM是国家标准。
    incompatible
        20
    incompatible  
       2014-10-20 16:23:12 +08:00
    @helone 这容易解决 直接使用汉字做变量名即可
    cxe2v
        21
    cxe2v  
       2014-10-20 16:30:21 +08:00   ❤️ 1
    一个利用SSLv3漏洞的工具里,作者留了这么一行
    "woqunimalagebide",老外在研究这个工具得时候当时就觉得自己的知识面是不是太狭窄了,到处都找不到关于这个单词的解释
    xiaowangge
        22
    xiaowangge  
       2014-10-20 20:42:25 +08:00 via Android
    游戏开发中的某些词语-_-#
    msg7086
        23
    msg7086  
       2014-10-20 21:23:20 +08:00 via iPhone
    用罗马字呢?做电视节目信息的时候经常会起名bangumi
    rrfeng
        24
    rrfeng  
       2014-10-20 21:30:43 +08:00
    学籍 学历
    本科 专科
    专升本
    同等学力

    请大神翻译~
    14
        25
    14  
       2014-10-20 21:59:39 +08:00 via Android
    看情况,公司代码别人一排拼音就在下面保持队形,已经有英文变量了也保持队形= =
    Jolin1677
        26
    Jolin1677  
       2014-10-21 00:36:10 +08:00
    策划给游戏功能起了奇奇怪怪名称的时候
    kmvan
        27
    kmvan  
       2014-10-21 00:47:01 +08:00
    用拼音还不如直接用中文变量,用中文变量还不如直接易语言。
    英文词汇量不足搞啥开发,看文档估计都看得一知半解吧,这种程序员T掉~
    Bakemono
        28
    Bakemono  
       2014-10-21 01:49:32 +08:00 via iPad
    @alexrezit 菊苣alex OAQ
    Bakemono
        29
    Bakemono  
       2014-10-21 01:51:14 +08:00 via iPad
    昨天渗透的时候遇到一个表名叫做 kjjb

    总之我感觉很邪恶呢w
    ericls
        30
    ericls  
       2014-10-21 03:45:59 +08:00 via Android
    拼音有一个好处就是和built-in冲突的时候用起来比较爽
    zkd8907
        31
    zkd8907  
       2014-10-21 07:53:34 +08:00
    sanddudu
        32
    sanddudu  
       2014-10-21 07:56:00 +08:00 via iPhone
    @Bakemono 科技进步 XD
    66450146
        33
    66450146  
       2014-10-21 08:36:07 +08:00
    Never.
    curiousjude
        34
    curiousjude  
    OP
       2014-10-21 08:36:36 +08:00
    @kmvan 说得轻巧。要是在知乎就直接点无帮助了。
    frankzeng
        35
    frankzeng  
       2014-10-21 08:48:31 +08:00
    拼音是比较偷懒的做法,就算不知道英文词汇,不是还有翻译嘛
    Monad
        36
    Monad  
       2014-10-21 08:50:07 +08:00
    我去找个游戏里面的名字你们全给我翻译成英文看看?
    tabris17
        37
    tabris17  
       2014-10-21 09:11:50 +08:00
    用拼音不如直接用中文,现在编程语言都支持UTF-8编码了
    gyteng
        38
    gyteng  
       2014-10-21 09:26:34 +08:00
    现在做的某个项目对方的接口就是全部拼音首字母变量名,什么用户编号YHBH、用户地址YHDZ什么的,太恶心了
    curiousjude
        39
    curiousjude  
    OP
       2014-10-21 09:31:28 +08:00
    @frankzeng 我觉得命名的原则是精确并尽可能短。如果在英文无法精确表达(有可能是个人英文水平不足),或即使表达精确但是太冗长的情况下,我认为用拼音(全拼)更合理。比如「海淘」这个词。
    loading
        40
    loading  
       2014-10-21 09:33:16 +08:00
    有些关键字实在太长了,而且目标数据库列名用的也是拼音。。。
    shakoon
        41
    shakoon  
       2014-10-21 09:42:45 +08:00
    鄙视一下国内某著名的银行核心系统开发商,表字段名基本都是奇葩的拼音缩写,例如“帐户中文名”是“ZHUZWM”,“销户数”是“XIOHSH”,“交易柜员”是“JIO1GY”
    jsonline
        42
    jsonline  
       2014-10-21 09:43:44 +08:00 via Android
    never
    xunyu
        43
    xunyu  
       2014-10-21 09:44:54 +08:00
    注释,比如说,no zuo no die
    xiaogui
        44
    xiaogui  
       2014-10-21 10:22:47 +08:00
    个人表示想名字是编程中花时间最长的部分了。
    imn1
        45
    imn1  
       2014-10-21 10:25:35 +08:00
    如果有写文档习惯的话,就什么命名方法都无所谓了
    curiousjude
        46
    curiousjude  
    OP
       2014-10-21 11:05:24 +08:00
    @imn1 我不赞同你的观点。文档只是补充,代码本身应该是要清晰的,而命名是关键的一环。而且如果命名都不愿意花心思,那么很可能也不想花力气写文档吧。
    alexrezit
        47
    alexrezit  
       2014-10-21 12:32:49 +08:00
    @curiousjude

    之前有人問我: 英語不好可以做研發工程師嗎?

    我說: 你轉行吧. 不不不不你先聽我說完, 不是你英語水平的問題, 真的不是, 是你智商的問題.

    什麼人會問出這種問題? 不會切菜可以做廚師嗎?

    我還心想, 我對研發工程師的基本要求又不高, 詞彙量上 8k 就行了, 再差的, 呵呵, 誰有空陪你玩啊, 還問這種問題, 虧他問得出來.

    @Bakemono

    求, 不, 黑...
    imn1
        48
    imn1  
       2014-10-21 13:11:11 +08:00
    @curiousjude
    花心思这点我也赞同~
    但这个观点反过来也该用在你说的主题上,你有花心思去想命名么——英文可以去查一下,汉语独有词汇也可用意思相近的英语命名的……如果一部分用英语,一部分用汉语反而是大问题
    如果担心英语不好,那就直接用字母+编号命名变量好了,不要混杂

    我的观点跟楼上 @alexrezit 的观点部分相同,真不该问这样的问题,我觉得预案做好不会有这个问题出现

    另外感觉你有点小看文档的作用了,一个好的文档其实是能达到主导作用的,特别是很详细的预案
    我曾经参与过一个项目,那个真叫乱得一塌糊涂,传参用xml/json/sql,命名也是五花八门,大驼峰、小驼峰、下划线……最后见到一个大家都看不明白的命名,问他是什么,他说拼音太长了,用双拼字母键,全体晕倒~
    curiousjude
        49
    curiousjude  
    OP
       2014-10-21 13:41:20 +08:00
    @alexrezit 我不知道你这个回复的用意是什么,如果是要嘲笑我智商不行那大可不必。你轻易就得出别人智商不行的结论,那是因为你自己智商不行吧。
    curiousjude
        50
    curiousjude  
    OP
       2014-10-21 13:49:52 +08:00
    @imn1 我没有否定文档的作用,只是否定你说的「什么命名方法都无所谓」的说法。我所讨论的使用拼音的情况是在很无奈的情况下,也就是根本找不到或找不到准确的英文表达的情况下,转而使用拼音可能是更合理的。你说的「汉语独有词汇也可用意思相近的英语命名的」,及「用字母+编号命名变量」恕我无法赞同,因为这两种方式比起拼音来很有可能更不准确,甚至产生歧义。
    timonwong
        51
    timonwong  
       2014-10-21 14:01:31 +08:00
    这不是没有先例,不过成功案例一般是日文,中文的文化影响力不够强,拼音也不酷,被喷也正常。

    dojo
    emoji
    go
    davidyin
        52
    davidyin  
       2014-10-21 14:02:56 +08:00
    怎么都不会用拼音的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2736 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:41 · PVG 20:41 · LAX 05:41 · JFK 08:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.