V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aLIEz09
V2EX  ›  职场话题

公司新人,项目组另外一个开发同事,代码中写中文,命名用拼音,请问我作为一个新来的,应该怎么跟他合作开发?

  •  
  •   aLIEz09 · 2019-07-19 09:01:51 +08:00 · 14145 次点击
    这是一个创建于 1983 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2019-07-19 12:21:46 +08:00
    本人做安卓 APP 开发,拼音都是小问题,个人习惯。主要是代码里面中文(不是注释),后面要修改几百个文件里面中文问题。
    第 2 条附言  ·  2019-07-19 12:22:19 +08:00
    本人做安卓 APP 开发,拼音都是小问题,个人习惯。主要是代码里面中文(不是注释),后面要修改几百个文件里面中文问题。
    137 条回复    2019-07-20 01:41:52 +08:00
    1  2  
    chanchan
        1
    chanchan  
       2019-07-19 09:04:15 +08:00   ❤️ 2
    贴个图,我想看 /doge
    rawidn
        2
    rawidn  
       2019-07-19 09:04:31 +08:00 via Android
    要么忍,要么~
    15651980765
        3
    15651980765  
       2019-07-19 09:06:05 +08:00
    只要不让你维护他的代码就好了,现在都是一人一个模块,关系不大。
    我们代码里 flag 写成 falg,button 写成 botton 诸如此类的数不胜数,以前我还说下,现在都懒得说的。没必要拿自己的标准去要求别人,管好自己就行了。除非他危机到你的利益了。
    dovme
        4
    dovme  
       2019-07-19 09:08:56 +08:00 via Android   ❤️ 8
    我就服我的同事 let falg= aaa==='bbbb'? true: false
    Lykos
        5
    Lykos  
       2019-07-19 09:09:01 +08:00   ❤️ 13
    只是拼音还算好的了,我们这拼音还带大舌头,有的拼音你看到了,还要根据上下文捋一下
    aLIEz09
        6
    aLIEz09  
    OP
       2019-07-19 09:09:50 +08:00 via Android
    @15651980765 svn 管理代码,和他开发同一个应用,命名拼写错误还能接受,主要是拼音还有代码中文,我前期按照领导要求把里面中文都替换了,但是后面新功能两个人开发的时候,我看了下他的代码,里面又一大堆中文。。。。
    merlin9527
        7
    merlin9527  
       2019-07-19 09:10:12 +08:00
    我公司之前有个同事写的代码是 中英混搭的
    aLIEz09
        8
    aLIEz09  
    OP
       2019-07-19 09:10:23 +08:00 via Android
    @chanchan 公司代码不能贴啊(虽然很烂)
    v2hh
        9
    v2hh  
       2019-07-19 09:10:36 +08:00
    我就服我同事 if(flag==false){}
    stanjia
        10
    stanjia  
       2019-07-19 09:11:51 +08:00
    @dovme 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    TimPeake
        11
    TimPeake  
       2019-07-19 09:12:20 +08:00
    应该是前端吧
    15651980765
        12
    15651980765  
       2019-07-19 09:16:12 +08:00
    @dovme 卧槽!上次看到同事代码里也写了和你这个很像的代码,表达式?true:false,现在还在生产跑着呢!

    @v2hh if(falg === false) 我同事这个比你同事那个的还奇葩
    caviare
        13
    caviare  
       2019-07-19 09:17:24 +08:00
    @TimPeake 你是不是对前端有什么误解?? 这跟前端有什么关系? 这是人的问题吧。。
    lixuedong
        14
    lixuedong  
       2019-07-19 09:17:38 +08:00
    @aLIEz09 是注释写中文吗 我也经常注释写中文,毕竟自己看,再加上英语并没有那么强
    secsilm
        15
    secsilm  
       2019-07-19 09:17:55 +08:00 via Android
    有时候变量名不好取直接写拼音我能理解,但是楼主说的中文是直接用中文作为变量名?
    secsilm
        16
    secsilm  
       2019-07-19 09:18:47 +08:00 via Android
    @lixuedong 注释中写中文没毛病吧
    Dogergo
        17
    Dogergo  
       2019-07-19 09:19:47 +08:00
    注释不让写中文么?那注释有什么意义,注释是为了让人更快的了解这段代码。强制英文除了看起来有 B 格一些,还有什么意义么
    wc951
        18
    wc951  
       2019-07-19 09:19:50 +08:00 via Android
    代码写中文什么意思,指的是注释,异常信息,日志这些?
    sevenstone
        19
    sevenstone  
       2019-07-19 09:21:10 +08:00 via Android
    @lixuedong 应该不是说注释,注释写中文还改什么…手动狗头 : )
    hyy1995
        20
    hyy1995  
       2019-07-19 09:21:16 +08:00
    中文是指注释?注释的话没毛病。至于拼音那就没得洗了,无法想象用拼音的队友。。。
    aLIEz09
        21
    aLIEz09  
    OP
       2019-07-19 09:21:19 +08:00 via Android
    @secsilm 不是,我是做 Android 的,里面字符串资源一般都会写到一个单独的 xml 文件,尤其中文硬编码在代码里是非常不靠谱的。
    tt67wq
        22
    tt67wq  
       2019-07-19 09:21:49 +08:00
    不知道为啥,我对接了好多家查违章的 API,无一例外,返回结果都是拼音首字母
    Muninn
        23
    Muninn  
       2019-07-19 09:22:01 +08:00
    注释写中文没毛病

    变量命名就需要你们搞个规范了,可以给出那个命名翻译查询工具呀。
    不然他自己翻译的有时候比中文还看不懂啊。

    有时候专业领域还真挺适合拼音的。英文可能要 20 多个字节,中文双拼不超过 10 个字节哈哈。
    maddot
        24
    maddot  
       2019-07-19 09:22:39 +08:00
    注释写中文很好
    那些中式英文写的人费劲,看的人难受
    wjh3936
        25
    wjh3936  
       2019-07-19 09:23:26 +08:00
    拼音算什么,拼音+英语单词然后混合首字母缩写才叫可怕
    noe132
        26
    noe132  
       2019-07-19 09:25:01 +08:00   ❤️ 1
    二五五随机数=function(){
    return 数学.floor(数学.random()*25)+225
    }
    dovme
        27
    dovme  
       2019-07-19 09:26:34 +08:00 via Android   ❤️ 9
    更可怕的是明明不会英语,非要用翻译翻译出来一个,意思根本就不对的命名出来,你问他这个命名是什么鬼的时候,他还说你英语真垃圾,举例:手机->手 hand 机 machine 于是手机的英语就是 handmachine
    5200
        28
    5200  
       2019-07-19 09:27:19 +08:00   ❤️ 3
    给他安利一个这个? https://unbug.github.io/codelf/
    cabing
        29
    cabing  
       2019-07-19 09:28:05 +08:00
    手机不是 phone 吗。。。
    @dovme
    TimPeake
        30
    TimPeake  
       2019-07-19 09:30:16 +08:00
    @caviare 没有什么误解。因我我也是前端,我知道这种事前端代码里出现的概率更高
    aLIEz09
        31
    aLIEz09  
    OP
       2019-07-19 09:30:38 +08:00 via Android
    @lixuedong 是代码,不是注释,举个例子 xingming.setText(“张三”)
    expkzb
        32
    expkzb  
       2019-07-19 09:30:45 +08:00
    我最近看到的比较好的中文在代码中的应用。

    let 哈哈 = “(^_^)”
    dovme
        33
    dovme  
       2019-07-19 09:32:10 +08:00 via Android
    @cabing 举例而已 没找到合适的例子,反正就是词分开翻译,然后组合在一起
    ChenKevin
        34
    ChenKevin  
       2019-07-19 09:33:31 +08:00   ❤️ 5
    @v2hh 我经常这么干
    if (flag == false) 而不是 if(!flag)
    我刚搜索了下代码,好多处是这么写的。
    因为很多表达式直接写!和&&放在一起很绕,经常搞晕了,
    所以我就简单这么写,虽然多打了几个字符。
    jydeng
        35
    jydeng  
       2019-07-19 09:33:47 +08:00
    @tt67wq 对接过公安、交警系统,无一例外都是
    berumotto
        36
    berumotto  
       2019-07-19 09:34:33 +08:00   ❤️ 4
    V 站有一个三天两头推广中文编程的老哥,让他把你同事带走吧
    TobiahShaw
        37
    TobiahShaw  
       2019-07-19 09:35:25 +08:00
    @aLIEz09 #21
    1、写到资源文件很好,但是一旦碰到不靠谱的设计和产品(没有规范,例如色板、标题样式、正文样式,文案规范)的,几乎每个颜色,字号,文案都是不可复用的,就是 determine 都有“确定”、“确认”等几种。。。会导致资源文件文本量巨大。如果一旦强行复用,设计或者文案要求改一个地方,会导致整个项目里的全部变掉,除非时间比较充裕,有国际化需求,复用需求比较明确,有些只用到一次的,在字符串中写也是可以的。不然在不太靠谱的情况下维护成本比较高。

    2、但是命名大量拼音就是比较严重的问题了,别人看不懂的话,维护成本会比较高,而且会看的人很烦躁。

    3、你举的例子 xingming.setText(“张三”)中张三看起来更像是硬编码的情况。大部分数据应该来自服务端,本地的字符串应该都是模板性质或者页面标题。
    ourzhang
        38
    ourzhang  
       2019-07-19 09:42:01 +08:00   ❤️ 1
    日本人写代码用日文命名。中国人写代码不能用拼音,必须用英文。

    如果你们公司或者项目没有限制的话建议你别管。我不认为项目复杂到用拼音命名会让你看不懂代码。
    fenglangjuxu
        39
    fenglangjuxu  
       2019-07-19 09:47:25 +08:00
    @v2hh 最开始我也挺好奇 居然这么写 不过别人说了之后 我觉得这样挺好的 看起来很简单明了 所以我也这么写了 这不算什么奇葩吧
    iwishing
        40
    iwishing  
       2019-07-19 09:47:27 +08:00
    @ourzhang 拼音就不怕音同字不同嘛?
    Vegetable
        41
    Vegetable  
       2019-07-19 09:47:41 +08:00
    @tt67wq #22 哈哈哈哈你知道为什么吗?因为车管所用的是拼音,他们没转罢了。这个我也无力吐槽了,车管所相关的所有查询都是速度慢,问题多,拼音首字母当变量名。
    ershierdu
        42
    ershierdu  
       2019-07-19 09:48:44 +08:00   ❤️ 1
    @ChenKevin
    +1
    我觉得 == false 这种表达更直接,符合直觉
    用 '!' 一方面比较容易看漏了(特别是比较长的表达式),
    另一方面有点像“通过说明 a 取反后是 true,来表示 a 是 false ”,有点绕
    chenqh
        43
    chenqh  
       2019-07-19 09:50:50 +08:00
    @ershierdu 肯定是==false 好吧,像 python 里面 None,0, false 的 boolean 都是 false,容易出问题
    learnshare
        44
    learnshare  
       2019-07-19 09:53:17 +08:00
    习惯就好,水平不一才正常
    TobiahShaw
        45
    TobiahShaw  
       2019-07-19 09:58:59 +08:00
    @TobiahShaw #37
    如果是 1 这种情况:
    1、工作空闲的时候先找设计制定规范,选取 3 到 5 个常用颜色,10 到 20 个会用到的颜色,给颜色命名,然后发布出来,以后出的设计图上则不得出现色值(包含但不限于 RGB ),只能出现颜色的名字。

    2、制定标题样式,正文样式,同上。

    3、找产品或者负责文案的同学,制定文案规范,比如说确定全部用确定表示,不会出现确定、确认等等,模板类的“返现%f.2 元”,非特殊情况(视觉需求)不要出现别的
    finaldusk
        46
    finaldusk  
       2019-07-19 10:00:57 +08:00
    遇到一些很难翻译的 或者翻译后团队其他人看不懂的变量时用过中文变量名 不过变量名全中文的话影响编写速度 于是采用了一直折中的方式 变量名使用 拼音简写前缀+中文全称 命名 这样使用变量时打出来简拼由 IDE 联想一下就行了,当然 是很小的项目(公司做,5W 块)
    soupu626
        47
    soupu626  
       2019-07-19 10:01:57 +08:00
    我司各种变量名,模块名都是拼音首字母缩写,专门有个对应表
    简单感受下 GYLGL CGXY
    finaldusk
        48
    finaldusk  
       2019-07-19 10:02:25 +08:00
    补上一条,当时整个项目都是使用这种规则命名的变量 而不是混合其他规则命名的 因为这个项目里有太多的名称难以翻译为英文了
    redbuck
        49
    redbuck  
       2019-07-19 10:02:45 +08:00
    还见过
    if(flag) {
    // do something
    return
    } else {
    // do something
    return
    }

    该方法无返回,目测只是想退出
    ipiao
        50
    ipiao  
       2019-07-19 10:06:30 +08:00
    @tt67wq 世界那么大,鱼塘那么小
    whypool
        51
    whypool  
       2019-07-19 10:08:52 +08:00
    review 拉出来,喊他自己讲思路
    yuuko
        52
    yuuko  
       2019-07-19 10:09:17 +08:00 via Android   ❤️ 1
    楼上这个 if(falg === false) 不是很好的写法么?明确告诉你只有 false 的时候才执行,其他 0 undefined 都不是正确条件
    wangxiaoaer
        53
    wangxiaoaer  
       2019-07-19 10:11:22 +08:00
    我来浇冷水了,不要提起代码用拼音就开始拔刀。

    很多业务系统,涉及到各种中文指标的,尤其是一些冷门专业的,如果全部用英文标识,没几个读得懂,拼音这个时候的优势就出来了。
    virus94
        54
    virus94  
       2019-07-19 10:14:33 +08:00
    @15651980765 赞同 自己的垃圾代码自己维护去吧
    AlexMeng
        55
    AlexMeng  
       2019-07-19 10:19:23 +08:00
    不太明白为什么都在吐槽拼音作为变量名??总比无意义的 abcdefg 好多了吧?有的人的英语水平写英语更看不懂,还要莫名其妙的英语缩写,看着更麻烦
    zhensjoke
        56
    zhensjoke  
       2019-07-19 10:20:38 +08:00   ❤️ 1
    @dovme 想起来一位老哥说的女同事,单位米写的 race,还用金山词霸的取词翻译给他看....
    HolmLoh
        57
    HolmLoh  
       2019-07-19 10:22:34 +08:00
    @v2hh
    +1,之前维护一个同事的旧项目 :
    if(flag==true) {}
    if(kong==true){}
    int y
    int a
    int aaa
    每个方法下面都会有巨大的 if,一个类下面也只有一个几百行的方法,还有一个 3000 行的 sql 类
    wildnode
        58
    wildnode  
       2019-07-19 10:25:32 +08:00
    @zhensjoke #56 应该是 rice 吧,23333
    remarrexxar
        59
    remarrexxar  
       2019-07-19 10:28:29 +08:00
    经常看到这么写的
    if(xxxxxxx){
    return false;
    }
    else{
    return true;
    }
    HenryW
        60
    HenryW  
       2019-07-19 10:30:07 +08:00
    现在在维护一个旧项目... 回调方法里 switch case 嵌套 switch case,每一个 case 都是纯数字,我特么看代码都是全局搜索,这酸爽....
    qiaobeier
        61
    qiaobeier  
       2019-07-19 10:31:59 +08:00   ❤️ 1
    @15651980765 这不是很正常,我还会写成这样呢 if (typeof flag === 'boolean' && flag === false) { //do something}
    是不是超长超难受啊?
    zr8657
        62
    zr8657  
       2019-07-19 10:32:41 +08:00
    来猜猜“ chaxunwin ”是什么意思,我本来还在想查询冠军是什么鬼,问了下是查询窗口。
    sumika
        63
    sumika  
       2019-07-19 10:33:57 +08:00
    拼音都好多了, 好歹能看懂, 我之前有个号称 10 年经验的同事总是以自定义缩写作为变量名
    babedoll
        64
    babedoll  
       2019-07-19 10:36:04 +08:00
    见过拼音英文混搭而且英文单词拼错的吗 =。=
    wr410
        65
    wr410  
       2019-07-19 10:41:20 +08:00
    你们 if(Boolean)的变量名是 flag 是认真的吗?

    我一般都用 isXXX 或者 hasXXX,这样一目了然。
    wjbeta
        66
    wjbeta  
       2019-07-19 10:43:29 +08:00
    如果是拼写正确的拼音那也还好,能看明白就行。最怕是莫名其妙的缩写和逐字翻译的英文。
    Fiona7heHuman
        67
    Fiona7heHuman  
       2019-07-19 10:46:18 +08:00
    @dovme 我看了半天才知道他要干啥
    sandglass
        68
    sandglass  
       2019-07-19 10:47:18 +08:00
    大佬们注释也用英文吗
    visonme
        69
    visonme  
       2019-07-19 10:48:35 +08:00
    拼音只要规范,别人能理解,不是不能接受,有些变量或者函数名还真的用英文不好命(当然也有可能是个人词汇量有限的问题)。

    至于代码中写中文,这是什么鬼? NET 吗? 也没这玩的哈,如果是注释,那应该能接受哈,尤其非外资 /合资企业,注释都需要英文化太没这么必要了
    moloach
        70
    moloach  
       2019-07-19 10:49:46 +08:00
    以前看到过这种代码

    if(n == 1){
    doSomething(var1, var2, 1)
    }
    else{
    doSomething(var1,var2,n)
    }


    不知道是不是他们公司是按照代码行数计算 KPI 的
    shifutang
        71
    shifutang  
       2019-07-19 10:51:55 +08:00
    哈哈,想起来一个被开掉的前同事, 账号积分 的变量名, 他写的是 integral
    XD2333
        72
    XD2333  
       2019-07-19 10:53:40 +08:00
    拼音的话还算勉强能接受,代码中文是什么意思啊。注释吗?注释中文应该还好吧在国内的话。
    iblessyou
        73
    iblessyou  
       2019-07-19 11:19:38 +08:00
    @zhensjoke 哈哈 我们这也有“同行 xing 分析” 领导给我的命名,我估计就错了,一查果然被翻译成“同行 hang 分析”
    yueqiuge
        74
    yueqiuge  
       2019-07-19 11:25:01 +08:00
    什么叫代码中文?易语言?
    ysoserious
        75
    ysoserious  
       2019-07-19 11:29:44 +08:00
    请教一下 a=表达式?true:false 的写法是有什么问题吗???
    BALDOOR
        76
    BALDOOR  
       2019-07-19 11:29:58 +08:00 via Android
    拼音?懒得 diss 了~
    用 idea typo 一堆波浪线看着很恶心。
    业务里实在难以 /无法翻译的其实也能接受。
    不带口音正确的全拼还好,首字母缩写还没注释就~
    代码支持 utf8 命名的,那位一直支持中文编程老哥是时候出来安利一下~
    幸好,我们所有规范是在项目 readme 明确规定的,code review 第一次不规范就说一下,两次三次那就~
    zjsxwc
        77
    zjsxwc  
       2019-07-19 11:33:38 +08:00   ❤️ 1
    命名也用中文呗,现在语言都支持中文命名
    HGladIator
        78
    HGladIator  
       2019-07-19 11:33:41 +08:00
    @ysoserious #75 繁琐 等同于 a=表达式
    HGladIator
        79
    HGladIator  
       2019-07-19 11:36:39 +08:00
    让你同事看看耗子叔的 《如何写出无法维护的代码》
    https://coolshell.cn/articles/4758.html
    ysoserious
        80
    ysoserious  
       2019-07-19 11:38:01 +08:00
    @HGladIator #78 哦,我只关注到?:的用法没关注到结果是 true 和 false ;我还以为是 ? : 的用法有什么问题,所以不被建议在生产环境上使用。现在明白了,谢谢。
    ThiagoJC
        81
    ThiagoJC  
       2019-07-19 11:42:37 +08:00 via iPhone
    拼音还好至少能看懂,我上家公司全用拼音首字母缩写,
    Sapp
        82
    Sapp  
       2019-07-19 11:48:57 +08:00
    @hyy1995 有些词用拼音外加中文注释是正常情况,英文很难翻译,强行翻译出来别人也看不懂,就用个拼音然后特殊标记一下
    shm7
        83
    shm7  
       2019-07-19 11:49:53 +08:00 via iPhone
    希哈值!
    lsj8924
        84
    lsj8924  
       2019-07-19 11:50:02 +08:00   ❤️ 1
    vs2010 以上都是支持中文命名的,我觉得只要你们内部沟通好,统一用中文,完全没毛病。
    liangzai
        85
    liangzai  
       2019-07-19 11:51:03 +08:00
    有句话怎么说来着,不管白猫黑猫,抓住老鼠就是好猫
    abdiweli
        86
    abdiweli  
       2019-07-19 11:52:29 +08:00
    你去做个公安系统的项目就知道了,数据库设计清一色的拼音缩写,代码里也很常见!关键是有些东西你用英文没办法很好的表达出来。除非你们公司有严格直行的代码规范,代码审查之类的东西,那你也管不了人家怎么写啊。
    ZehaiZhang
        87
    ZehaiZhang  
       2019-07-19 11:52:34 +08:00
    我可以接受你查谷歌翻译,翻出来乱七八糟的结果,但我忍不了拼音,要么我疯,要么他疯
    mamahaha
        88
    mamahaha  
       2019-07-19 12:02:26 +08:00
    都是国企老党员带出来的徒弟,时刻在防备欧美思想森透。
    abdiweli
        89
    abdiweli  
       2019-07-19 12:03:22 +08:00
    @Vegetable 不止车管所!几乎公安类的项目都是这样的!但这个不是问题,国家下发的很多信息化系统规范里都是这么写的。
    xomix
        90
    xomix  
       2019-07-19 12:12:35 +08:00
    @abdiweli #89 这些标准编码变量名都是国家级出的白皮书,你遵循这个没啥不应该的。
    rudyyuan
        91
    rudyyuan  
       2019-07-19 12:38:02 +08:00 via Android
    @v2hh 这才是最标准的写法吧,不怕因为误删一个!造成逻辑错误等血案
    leafre
        92
    leafre  
       2019-07-19 12:39:00 +08:00
    确实不能忍,只能做好自己的,管不了他
    wozhizui
        93
    wozhizui  
       2019-07-19 12:39:22 +08:00
    @shifutang 写成积分,可能就是随手百度的呗,账户积分用 points,ok ?
    saintatgod
        94
    saintatgod  
       2019-07-19 12:40:05 +08:00
    @cabing 我有时候用 tel 或者 mobile 代表手机,phone 代表座机一般
    yukiww233
        95
    yukiww233  
       2019-07-19 13:12:07 +08:00
    原来是 hardcoding 啊。。如果一开始就明确不做 i18n 的话也没什么大问题
    我还以为是中文变量名
    123s
        96
    123s  
       2019-07-19 13:40:56 +08:00
    有这心思笑人,还不如教别人怎么写
    way2create
        97
    way2create  
       2019-07-19 13:58:20 +08:00
    我就好奇了,这楼中说===false 或者===true 是垃圾代码的是有什么问题?
    564425833
        98
    564425833  
       2019-07-19 14:14:35 +08:00   ❤️ 1
    "各粒级质量损失百分率"
    "标准稠度用水量"
    "抗压抗折试验机"
    "箱式电阻炉"


    大佬们,谁能告诉我,这些应该怎么命名 。。。
    print1024
        99
    print1024  
       2019-07-19 14:14:49 +08:00
    https://github.com/AhianZhang/gitlab-code-specification-check 强制实施阿里云代码规范的脚本
    Doraemontree
        100
    Doraemontree  
       2019-07-19 14:14:52 +08:00
    我觉得挺好用的, 公司一个安卓喜欢用拼音的简称,比如桥梁吨位 == QLDWBtn,比敲英文简单。。。嘻嘻
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:38 · PVG 05:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.