V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phper69
V2EX  ›  编程

我都不好意思了,代码变量拼音命名,醉了。。。。

  •  
  •   phper69 · 2016-08-09 10:46:12 +08:00 · 18262 次点击
    这是一个创建于 3028 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2016-08-09 14:37:21 +08:00
    我吐槽的不是适用拼音的场景,而是这种,大家感受下:
    $cg_img['feiyong']=''
    $cg_img['lixiang']=''
    没错,就是拼出来的字段意思
    125 条回复    2016-08-28 15:23:32 +08:00
    1  2  
    66beta
        1
    66beta  
       2016-08-09 10:53:03 +08:00   ❤️ 1
    呵呵呵呵,不足挂齿
    我这边接手的代码里...
    纯字母: a, b, c, d...
    拼音首字母: apple_sj (苹果手机)
    同名:不同元素、用途,都用 em 来命名,虽然是局部变量...
    SpicyCat
        2
    SpicyCat  
       2016-08-09 10:59:22 +08:00
    不理解拼音命名怎么就 low 了?日本程序员用假名的罗马字母命名变量不要太普遍。
    lijsh
        3
    lijsh  
       2016-08-09 11:00:49 +08:00
    有个同事写的点赞请求函数名是 zan ,笑死我了。
    aliao0019
        4
    aliao0019  
       2016-08-09 11:01:24 +08:00 via iPhone
    @lijsh already_zan
    ThreeBody
        5
    ThreeBody  
       2016-08-09 11:02:39 +08:00 via Android
    我还见过中文变量名类名的呢
    microchang
        6
    microchang  
       2016-08-09 11:03:10 +08:00 via Android   ❤️ 1
    @SpicyCat 抛开这帖子要讨论的问题不谈,你这逻辑有点说不过去啊。。
    tomczhen
        7
    tomczhen  
       2016-08-09 11:04:09 +08:00   ❤️ 1
    命名原则是易懂,规范统一。如果满足这两条,个人觉得拼音还是英文单词没所谓——毕竟好多人的英文单词命名给老外看也是要一愣一愣的。

    所以没啥好笑的,也许老外看你的英文单词命名和你看同时的拼音命名一样觉得好笑,不过人家估计不会到 V2EX 来发帖专门说一下就是了。
    moosoome
        8
    moosoome  
       2016-08-09 11:07:31 +08:00
    我的原则是:英文太长并且缩写也不好辨认的项目可以酌情用拼音
    moosoome
        9
    moosoome  
       2016-08-09 11:07:48 +08:00
    项目->变量
    SourceMan
        10
    SourceMan  
       2016-08-09 11:08:09 +08:00
    规范了就没啥好不好意思的,统一拼音命名变量
    tabris17
        11
    tabris17  
       2016-08-09 11:09:04 +08:00
    我觉得支持 utf8 标识名的编程语言,用中文做变量名也无妨
    shmilyin
        12
    shmilyin  
       2016-08-09 11:11:05 +08:00
    拼音其实无所谓,说不定用了英文你根本看不懂。最蛋疼的是拼音缩写
    cxe2v
        13
    cxe2v  
       2016-08-09 11:17:43 +08:00
    中文表名,中文字段,你感受一下
    其实符合规范就行了,没必要纠结拼音还是英文,编程是为了解决问题的
    malkavia
        14
    malkavia  
       2016-08-09 11:20:12 +08:00
    全拼命名其实还罢了
    到之前一个项目的代码里找了一行

    public static final String METHOD_NAME_GET_GWLZCL = "getGwlzclxx";

    简直自带加密功能
    harry890829
        15
    harry890829  
       2016-08-09 11:23:04 +08:00
    用英文缩写也很蛋疼的好不好……
    jacy
        16
    jacy  
       2016-08-09 11:25:07 +08:00
    chairuosen
        17
    chairuosen  
       2016-08-09 11:26:20 +08:00
    不建议拼音的原因是拼音不能直接转换成明确的意思,要先读出来,猜每个字可能的汉字,才能知道意思。
    如果拼音约定俗成的就代表一个意思还是没问题的,比如 weixin 。
    IamJ
        18
    IamJ  
       2016-08-09 11:29:32 +08:00
    最近一个项目中有用到“芝麻信用”,考虑过要不要用英文 sesame 。最后用了拼音 zhiMa ,然后写了注释。😅
    IamJ
        19
    IamJ  
       2016-08-09 11:30:16 +08:00
    好担心,我是不是会被烧死
    huijiewei
        20
    huijiewei  
       2016-08-09 11:50:48 +08:00
    hongbao 表示无压力,英文水平捉急,不知道该用啥合适
    wesley
        21
    wesley  
       2016-08-09 11:52:44 +08:00
    用拼音的问题在于: 不缩写太长, 一缩写就成了天书
    xwartz
        22
    xwartz  
       2016-08-09 11:53:59 +08:00
    @huijiewei redbag 腾讯好像就用这个
    fengyunSmlie
        23
    fengyunSmlie  
       2016-08-09 11:56:37 +08:00
    感觉主要是注释吧
    jamesxu
        24
    jamesxu  
       2016-08-09 11:56:53 +08:00 via iPhone
    有些专业领域你要是用英文翻译的没人看得懂代码,我是拼音英文夹杂的:简单易懂的用英文,专业术语用拼音或者两种结合
    yxqcyl
        25
    yxqcyl  
       2016-08-09 11:57:57 +08:00
    @IamJ zhiMa 这个大小写有什么讲究?
    daya
        26
    daya  
       2016-08-09 12:00:22 +08:00 via Android
    前两周见到一哥们的数据库表名用中文命名的
    SpicyCat
        27
    SpicyCat  
       2016-08-09 12:00:45 +08:00
    @microchang 逻辑哪里有问题了,假名对日本人来说就相当于我们的拼音,人家用假名当变量名,跟我们用拼音当变量名是一样的。所以我不理解为什么用拼音做变量名要被吐槽。之前对日外包比较火的年代,也没见谁吐槽假名变量名呀,现在反而看拼音不爽了?
    viko16
        28
    viko16  
       2016-08-09 12:05:03 +08:00 via Android   ❤️ 1
    拼音命名得加声调

    比如
    zhi1hu1
    dan4teng2
    skinheadbob
        29
    skinheadbob  
       2016-08-09 12:07:10 +08:00 via iPhone
    @SpicyCat 贵司 code review 认可这种命名方式?
    mahone3297
        30
    mahone3297  
       2016-08-09 12:09:30 +08:00
    @huijiewei
    @xwartz
    感觉叫 bonus 更好
    loading
        31
    loading  
       2016-08-09 12:10:41 +08:00 via Android   ❤️ 2
    这里能帮到你们:
    https://unbug.github.io/codelf/
    IamJ
        32
    IamJ  
       2016-08-09 12:16:02 +08:00
    @yxqcyl 参考驼峰式命名。。
    SpicyCat
        33
    SpicyCat  
       2016-08-09 12:18:39 +08:00
    @skinheadbob 我们公司有日本人,印度人等,所以不会用拼音,但是我们在遗留代码里也看到过假名做变量名。新写的代码只能用英文,也不能用假名了。但这样做只是为了方便交流,并不是认为拼音或者假名 low ,如果团队都是中国人,用拼音当变量名又能怎样?
    jugelizi
        34
    jugelizi  
       2016-08-09 12:30:56 +08:00
    毕竟西方的月亮比较圆

    汉语拼音的字母难道是中国人的祖先发明的?
    bk201
        35
    bk201  
       2016-08-09 12:35:26 +08:00 via iPhone
    问题不在拼音,在于命名是否易解,不会造成歧义.
    ydhydh
        36
    ydhydh  
       2016-08-09 12:39:26 +08:00
    你们接微信 sdk 的时候,是命名 weixin 还是 wechat ?
    lululau
        37
    lululau  
       2016-08-09 12:43:50 +08:00
    @IamJ 可是芝麻是一个词啊
    gamexg
        38
    gamexg  
       2016-08-09 12:53:54 +08:00 via Android
    拼音英语无所谓,但是神烦缩写无注释, cc 、 cls 等等,谁知道什么东西。
    quericy
        39
    quericy  
       2016-08-09 12:56:15 +08:00
    命名的意义不就在于表达出意思么,用拼音表达清楚就没问题,用英语如果用词有歧义一样看不懂

    而且有时候没办法吧,接入一些国内第三方的服务的时候,别人给过来的就是拼音,难道还另取一个?

    @loading 好东西,收了~~
    21grams
        40
    21grams  
       2016-08-09 13:08:51 +08:00 via Android
    @IamJ 专有名词用拼音是对的,翻译成英文反而引起误解
    21grams
        41
    21grams  
       2016-08-09 13:12:50 +08:00 via Android
    @SpicyCat 所以日本人就是正确的化身? 你认为可以用拼音,因为日本人也在用假名,你用别人也在做这件事来证明这件事的正确性,这就是逻辑错误。
    szharrydev
        42
    szharrydev  
       2016-08-09 13:17:17 +08:00
    api 返回的 json 数据, key 是中文 。。。 你们感受下, 说了还不改。。。
    aitaii
        43
    aitaii  
       2016-08-09 13:28:21 +08:00
    大家能看懂就行了,要是写个 qwer 之类的 滋滋。那才爽
    CTO
        44
    CTO  
       2016-08-09 13:40:40 +08:00
    @lijsh 这边赞也是 function zan()
    microchang
        45
    microchang  
       2016-08-09 13:44:45 +08:00 via Android   ❤️ 1
    @SpicyCat 我从你的回复获得的信息只是“日本人在这方面和我们一样”,然后你用这个事实来表达“所以这事不 low ”。而我期望的是讲出理由和依据,而不是“别人都这么做了为啥我们不行”。

    另外,我好像还真记得有吐槽假名变量名的。
    nashxk
        46
    nashxk  
       2016-08-09 13:45:54 +08:00
    内部统一就好,与其抱怨,不如改变现状。
    DoraJDJ
        47
    DoraJDJ  
       2016-08-09 13:50:20 +08:00
    @szharrydev JSON 的 key 值是中文...我突然想到 B 站今天闹得这个名堂了: http://www.bilibili.com/html/activity-qixi2016.html

    http://activity.hdslb.com/zzjs/20160801qixi/js/data.js
    ```
    choose: [{
    走回家: {
    text: ['正值春天,沿路的樱花树的确让人感到惬意','这时候,一个身影吸引住你的眼球',' [我:好萌的妹子啊,要上去勾搭吗?] '],
    ```
    miyuki
        48
    miyuki  
       2016-08-09 13:52:24 +08:00 via Android
    doublleft
        49
    doublleft  
       2016-08-09 13:59:47 +08:00
    @DoraJDJ 仔细了下代码,只是场景需要啊,没啥可值得黑的。有些时候我也用过中文 key ,没办法,场景需要
    SpicyCat
        50
    SpicyCat  
       2016-08-09 14:04:27 +08:00
    @microchang 呵呵,就这破事还摆事实道理, low 不 low 本身就是主观看法,我觉得不 low 你硬要觉得 low 我能说你错?你倒是给我摆事实讲道理说下怎么用拼音就不行?
    SpicyCat
        51
    SpicyCat  
       2016-08-09 14:14:32 +08:00
    @21grams 你从哪里得出“日本人就是正确的化身”的结论的?“因为日本用假名,所以我们要用拼音”这就是你的理解? 我觉得我表达得很清楚了,就是没必要对拼音自轻自贱。日本程序员用假名命名变量名这个事实证明了,在实际项目中,不用英文命名变量名是可行的,用本国文字命名变量名是可行的。那么我们在开发过程中,在团队成员都是中国人的情况下,至少可以说,用拼音命名变量名是可行的。你要是觉得用拼音显不出来你是个假洋鬼子,你就用英文呗。
    为防止你这类人有意或者无意的误解,我还是备注下:请区分「可行」和「必须」。
    语文实在不及格的就别交流了,浪费彼此时间。
    SpicyCat
        52
    SpicyCat  
       2016-08-09 14:16:25 +08:00
    今天在这个帖子见识了不少假洋鬼子。那么多人不待见拼音?现在这个年代还想用英文装逼?要装也是用法文啊。
    microchang
        53
    microchang  
       2016-08-09 14:19:00 +08:00
    @SpicyCat 我赞同你的看法,这件事情很大程度上是一种主观看法和妥协。

    但我一开始就说明了,有疑问的是你的逻辑方式,而不是题目的问题本身,请不要偷换概念。

    anyway ,就这样吧。下午愉快。
    DoraJDJ
        54
    DoraJDJ  
       2016-08-09 14:19:34 +08:00 via Android
    @doublleft 嗯,最多看着有点怪
    21grams
        55
    21grams  
       2016-08-09 14:21:07 +08:00 via Android
    @SpicyCat 可行不代表正确,可行有什么论证的必要,你就是用中文编程也是可行的。 另外,请说到做到,不要继续浪费我的时间。
    EricBox
        56
    EricBox  
       2016-08-09 14:22:03 +08:00 via iPhone
    拼音并没有太大问题啊。我一般用英语,但是毕竟不是母语,偶尔犯一些小错误别人无法理解。在某些专业词汇上能用英语用英语,英语没有的用拼音,大家看代码才容易理解。
    Sharuru
        57
    Sharuru  
       2016-08-09 14:22:45 +08:00
    =m= 凑英文也就算了,最怕的是百度一个翻译然后贴回来的……
    一般取不出的时候我就乱取, honoka , kotori , umi 这种
    got
        58
    got  
       2016-08-09 14:26:26 +08:00
    zan 不是挺好的, 哪个短用哪个
    SpicyCat
        59
    SpicyCat  
       2016-08-09 14:29:28 +08:00
    @21grams 如果一件事是不正确的,那就不应该做,自然是不可行的。上文已经说明,用拼音不会造成交流问题,也不会对项目或者行业发展造成影响,因而是可行的,为什么是不正确的?可行没有论证的必要?听说过可行性研究吗?
    中文编程在教育领域是可行的,在工程领域不可行。
    我觉得你先去查字典看看 可行 的定义。
    你要是觉得用中文吃力,也可以用英文,显得你高端。
    phper69
        60
    phper69  
    OP
       2016-08-09 14:36:34 +08:00
    我吐槽的不是适用拼音的场景,而是这种,大家感受下:
    $cg_img['feiyong']=''
    $cg_img['lixiang']=''
    没错,就是拼出来的字段意思
    skydiver
        61
    skydiver  
       2016-08-09 14:42:49 +08:00
    @lijsh public function isZaned();
    public function isNewUserZaned();
    Yuchen
        62
    Yuchen  
       2016-08-09 14:48:55 +08:00
    @SpicyCat

    讲道理日语里并没有语调,所以相对来说好辨认一些吧
    但是中文里每个音都有 4 个调。。。 lixiang 到底是理想还是立项,就需要联系上下文来思考
    imn1
        63
    imn1  
       2016-08-09 14:50:27 +08:00   ❤️ 1
    菲佣、李湘?
    phper69
        64
    phper69  
    OP
       2016-08-09 14:52:28 +08:00
    @imn1 费用、立项
    phper69
        65
    phper69  
    OP
       2016-08-09 14:53:41 +08:00
    @66beta 看着好不自在
    ikaros
        66
    ikaros  
       2016-08-09 15:35:52 +08:00
    有些变量用英文会很长,而且难懂, 我也会用拼音加注释
    8023
        67
    8023  
       2016-08-09 15:43:49 +08:00
    很久以前, 我的程序命名都是"Hj2Uu4_0" "Mz2Ju3_1" "Bm4Ld4_8" "Jx2Gb4Ti3_9" "Lz4_a"这类... 同学看了半天没看出来啥意思, 把我批了一顿, 说什么"你写的程序根本不需要混淆"之类的 2333. 但考虑到以后的项目需要合作, 也在学英文, 右边屏幕常驻谷歌翻译的页面, 尽量全英文写+中文注释. 对提高英文水平也有一定帮助. 毕竟, github 上很多英文的好项目...
    echo1937
        68
    echo1937  
       2016-08-09 15:44:10 +08:00
    不推荐拼音作为变量名的原因有:

    1. 拼音有声调,有时候读起来未必方便
    2. 拼音和英文,有点像 GBK 和 UTF-8 ,前者也堪用,后者更通用
    3. IDE 大多有单词拼写检查,但拼音大多没有
    4. 这个问题不应该和民族文化扯上关系
    sudoz
        69
    sudoz  
       2016-08-09 15:46:48 +08:00
    菲佣?理想?
    SlipStupig
        70
    SlipStupig  
       2016-08-09 16:08:40 +08:00
    我五年前在一家公司实习,然后那个我打开工程文件都傻了,那个 VC SDK 全部被汉化了,
    比如: OpenFileA 被汉化成,“打开文件(文件句柄, 访问文件权限)”....
    你这个已经好太多了
    @phper69
    aprikyblue
        71
    aprikyblue  
       2016-08-09 16:13:17 +08:00 via Android
    拼音有声调。有时候反应很久才知道哪个词,因为可能第一次读出来声调就错了
    21grams
        72
    21grams  
       2016-08-09 16:24:47 +08:00 via Android   ❤️ 1
    @SpicyCat 你对可行的理解开创了中文的新概念。而且,请不要继续浪费我的时间了,我没有做中文扫盲教育的兴趣。
    nekoyaki
        73
    nekoyaki  
       2016-08-09 16:44:23 +08:00
    @Sharuru
    ………………这样你要是变量名超过 9 个,啊不对, 18 个,不就没得用了
    Sharuru
        74
    Sharuru  
       2016-08-09 16:47:37 +08:00
    @nekoyaki (还有隔壁爱玛仕呢
    Balthild
        75
    Balthild  
       2016-08-09 17:25:44 +08:00 via Android
    主要是辨识度高低和输入方便与否问题。结果一堆人非得扯洋不洋鬼子装不装逼
    zhangchioulin
        76
    zhangchioulin  
       2016-08-09 17:25:57 +08:00
    卧槽 emoji 变量名...见过没
    tabris17
        77
    tabris17  
       2016-08-09 17:28:01 +08:00
    @SlipStupig 怎么弄的?用#define 吗?
    incompatible
        78
    incompatible  
       2016-08-09 17:35:15 +08:00
    你们见过用汉字做变量名的吗?我第一眼看到时觉得非常吃惊,后来仔细想了想觉得蛮好的,通俗易懂、辨识度高,还可以免去本贴这种无谓的纷争。
    jarlyyn
        79
    jarlyyn  
       2016-08-09 18:25:21 +08:00
    @incompatible

    汉字也比拼音好
    bluecubic
        80
    bluecubic  
       2016-08-09 18:25:59 +08:00 via Android
    不要忘了是洋人创造了这一切, follow tradition 是一种 manner
    shimanooo
        81
    shimanooo  
       2016-08-09 18:40:32 +08:00 via iPhone
    @aliao0019 用过去分词 already_zanned
    nodin
        82
    nodin  
       2016-08-09 18:53:27 +08:00 via Android
    只要同一,用什么都行,最多写注释。
    aliao0019
        83
    aliao0019  
       2016-08-09 19:02:48 +08:00 via iPhone
    @shimanooo 你 get 到了,看到那个名字的时候我也是这么想的
    otakustay
        84
    otakustay  
       2016-08-09 19:41:24 +08:00
    @21grams 用英文命名不正是一件“别人也在这么做”才变成“正确”的事情么
    SlipStupig
        85
    SlipStupig  
       2016-08-09 20:00:18 +08:00
    @tabris17 用 typedef define const 这些关键字就能实现了,有些直接用 API 动态加载,
    8qwe24657913
        86
    8qwe24657913  
       2016-08-09 20:11:49 +08:00 via Android
    @DoraJDJ 虽然你这不是 JSON ,但中文 key 其实还挺好用的……问题在于大量重复,就像把一段代码到处复制一样……
    21grams
        87
    21grams  
       2016-08-09 20:24:55 +08:00
    @otakustay 如果有人武断的认为因为大家都用英文所以用英文是对的,那也是逻辑错误。
    billlee
        88
    billlee  
       2016-08-09 22:28:17 +08:00
    比拼音更可怕的是三脚猫英语,我见过有代码里写着 http_exception, 最后发现它想表达的是 malformed HTTP message.
    baozijun
        89
    baozijun  
       2016-08-09 22:41:15 +08:00
    用什么都无所谓,只要命名混淆的地方要有注释,能让自己和别人以后看得懂。
    ligyxy
        90
    ligyxy  
       2016-08-09 23:19:48 +08:00
    用拼音不如用中文变量名

    罗马化的汉字问题太多
    msg7086
        91
    msg7086  
       2016-08-09 23:21:37 +08:00   ❤️ 1
    @21grams 所以你就是正确的化身? 你认为 @SpicyCat 用别人也在做这件事来证明这件事的正确性是逻辑错误,所以你的观点才是对的,这就是逻辑错误。
    讨论中最可怕的就是先把别人定性成逻辑错误,然后自己随便讲都是对的,顺便还可以鄙视一下别人的语文水平,体现自己的优越感。
    现在代码和变量都是英文,只是因为第一计算机是从美国开始发源的,第二英语方便交流。也就是说,本来就是因为别人(发明者是美国佬,以及世界上大部分人懂英语这两个事实)都用英文,所以才用英文。

    写代码「对不对」是看逻辑是否正确,编译是否通过,和用什么文字语言没有毛关系。变量也好类名也好,用中文用拼音用英语用假名用广东话,无非只是影响团队交流(因为大家用所以我们用)和表达力(因为大家能看懂所以我们用)而已。
    EyreFree
        92
    EyreFree  
       2016-08-09 23:54:53 +08:00   ❤️ 1
    萌新瑟瑟发抖,

    英文字符/拼音/汉字/拼音,汉字+英文混合/英文单词/自定义的奇怪英文缩写/匈牙利,驼峰,帕斯卡命名法...巴拉巴拉,都用过唉,挺好用的啊,尤其是一起用的时候,那酸爽。

    来啊,互相伤害啊,😂
    21grams
        93
    21grams  
       2016-08-10 00:10:20 +08:00 via Android
    @msg7086 麻烦你从头到尾把我的发言挑出来过一遍,我可有一句话说英文就是对的,拼音就是错的? 我只是指出了某些发言中的逻辑错误而已。错误就摆在那里,需要我来定性? 鄙视别人的语文,那也是有人先提语文挑衅在先,麻烦你看清楚,别选择性失明。 你觉得我有优越感,那也许只是你太自卑罢了。
    lxy
        94
    lxy  
       2016-08-10 00:21:59 +08:00   ❤️ 2
    汉语拼音的多义性导致阅读效率低下,英文命名则是更广泛和通用的准则,也应该是程序员的基本能力。
    拼音命名应当视为能力不足者的一种无可奈何的妥协方式。
    人要有点追求,不要选择将就。
    msg7086
        95
    msg7086  
       2016-08-10 01:24:33 +08:00
    @21grams 你定性说别人是错误,却又说错误摆在那里不需要你定性?也许只是你太自恋罢了。
    iyaozhen
        96
    iyaozhen  
       2016-08-10 01:33:42 +08:00 via Android
    @huijiewei 我们用的: lucky_money
    ProfFan
        97
    ProfFan  
       2016-08-10 04:20:20 +08:00
    @lxy 终于有人说到点子上了
    21grams
        98
    21grams  
       2016-08-10 07:43:27 +08:00 via Android
    @msg7086 逻辑这种东西,只能讲给能同样理解它的人,你觉得那不是错误,说明你我之间在最基础的东西上没有共同点,好比你要教一个人算数,那个人却死都不承认一加一等于二,之后的就更无从谈起。一件事并不以他人是否做而决定它的对错,我觉得这就是一加一,你不承认,那你高兴就好。
    zado
        99
    zado  
       2016-08-10 07:47:44 +08:00
    @lxy 在我看来,你的母语是中文,你选择英文标准,才是一种妥协,你要有追求就应该努力把中文变成标准。
    jiezg
        100
    jiezg  
       2016-08-10 08:22:24 +08:00 via Android
    看看你们,真是缺乏幽默感😂
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:15 · PVG 06:15 · LAX 14:15 · JFK 17:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.