phper69
V2EX  ›  编程

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

  •  
  •   phper69 · Aug 9, 2016 · 21700 views
    This topic created in 3740 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Aug 9, 2016
    我吐槽的不是适用拼音的场景,而是这种,大家感受下:
    $cg_img['feiyong']=''
    $cg_img['lixiang']=''
    没错,就是拼出来的字段意思
    125 replies  •  2016-08-28 15:23:32 +08:00
    1  2  
    ❮ ❯
    66beta
    66beta
    Aug 9, 2016❤️1
    1
    呵呵呵呵,不足挂齿
    我这边接手的代码里...
    纯字母: a, b, c, d...
    拼音首字母: apple_sj (苹果手机)
    同名:不同元素、用途,都用 em 来命名,虽然是局部变量...
    SpicyCat
    SpicyCat
    Aug 9, 2016
    2
    不理解拼音命名怎么就 low 了?日本程序员用假名的罗马字母命名变量不要太普遍。
    lijsh
    lijsh
    Aug 9, 2016
    3
    有个同事写的点赞请求函数名是 zan ,笑死我了。
    v4dc
    v4dc
    Aug 9, 2016 via iPhone
    4
    @lijsh already_zan
    ThreeBody
    ThreeBody
    Aug 9, 2016 via Android
    5
    我还见过中文变量名类名的呢
    microchang
    microchang
    Aug 9, 2016 via Android❤️1
    6
    @SpicyCat 抛开这帖子要讨论的问题不谈,你这逻辑有点说不过去啊。。
    tomczhen
    tomczhen
    Aug 9, 2016❤️1
    7
    命名原则是易懂,规范统一。如果满足这两条,个人觉得拼音还是英文单词没所谓——毕竟好多人的英文单词命名给老外看也是要一愣一愣的。

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

    public static final String METHOD_NAME_GET_GWLZCL = "getGwlzclxx";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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