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

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

  •  
  •   aLIEz09 · 2019-07-19 09:01:51 +08:00 · 14144 次点击
    这是一个创建于 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  
    xuanwu
        101
    xuanwu  
       2019-07-19 14:18:16 +08:00   ❤️ 1
    技术允许的话,标识符命名直接用中文,可读性比拼音好很多。
    xuanwu
        102
    xuanwu  
       2019-07-19 14:20:36 +08:00
    技术允许的话直接用中文命名标识符,可读性比拼音好很多。
    xuanwu
        103
    xuanwu  
       2019-07-19 14:27:21 +08:00
    @564425833 中文术语直接用于命名很合理
    seraphv3
        104
    seraphv3  
       2019-07-19 14:27:30 +08:00   ❤️ 1
    我以前做一个电力设计工作流的系统,里面有一些“变电”,“线路”,“变电一次”,“技经”之类的专业词汇,写测试代码的时候我就直接中文英文混合变量名了
    watcher
        105
    watcher  
       2019-07-19 14:31:06 +08:00   ❤️ 1
    以后统一二进制命名 终结问题
    jzphx
        106
    jzphx  
       2019-07-19 14:36:18 +08:00
    入乡随俗
    fan123199
        107
    fan123199  
       2019-07-19 14:54:51 +08:00
    硬编码关系不大。如果你的应用只针对中文用户的话。 Android studio 会报 warning,那是因为他有国际思维,以为你的应用是给世界各地用的。 命名用拼音就很难受了,经常对应不起来。
    zidian9
        108
    zidian9  
       2019-07-19 14:56:06 +08:00
    code review 坚决不通过
    xuanbg
        109
    xuanbg  
       2019-07-19 14:58:08 +08:00
    遇上这样的同事,当然要配合一下用中文做变量名咯。。。。
    hydyy
        110
    hydyy  
       2019-07-19 14:58:13 +08:00
    @zidian9 大多数公司貌似没有 code review
    fan123199
        111
    fan123199  
       2019-07-19 14:59:02 +08:00
    当然这个是要定一个规范出来。不然谁都不服谁。
    aLIEz09
        112
    aLIEz09  
    OP
       2019-07-19 14:59:49 +08:00 via Android
    @fan123199 那为啥技术 leader 还要我把代码里的中文改掉呢
    jzmws
        113
    jzmws  
       2019-07-19 15:01:12 +08:00
    @seraphv3 原来是的坑
    passerbytiny
        114
    passerbytiny  
       2019-07-19 15:18:07 +08:00   ❤️ 3
    @aLIEz09 我开始还以为是用中文命名变量,原来是直接使用用了中文的 string literal 来定义变量,而没有使用常量或外部资源文件。

    首先需要更正一点的是,你的问题是“没有将全部字符串定义放到外部资源文件中”,与中文无关,string literal 中使用中文和英文没任何区别。

    然后,“字符串定义全部放到外部资源文件”在十年前是标准规范,在现在属于过度预设计。如果你的产品现在没有国际化需要(即使一年后有可能变成国际化),那么把字符串放在外部资源文件中定义,除了脱裤子放屁外,还极大的影响代码的可读性;况且在国际化过程中一次性重构的成本,要远小于你一开始就设计资源文件的成本。

    就你举得这个例子来说,```xingming.setText(“张三”)```,换成 ```xingming.setText(I18n.get("exampleName.first"))``` 或者 ```Constant.EXAMPLE_NAME_FIRST```,可读性大降,并且还需要有专人去维护资源 Key 或常量名的命名规范(否则资源文件会变成不分类的垃圾桶)从而导致成本大涨,这在敏捷开发中就是灾难。

    最后,拼音命名罪不可赦。拼音命名已经不是规范问题了,而是规则问题了——拼音并不能完整地表达它所代表地汉字。
    fan123199
        115
    fan123199  
       2019-07-19 15:29:08 +08:00
    @passerbytiny #114 很赞同。再比如某个 activity 的标题是“认证”,如果写在 string s.xml 中,搜索到定位要两步,如果直接在代码里,一次搜索可达。
    passerbytiny
        116
    passerbytiny  
       2019-07-19 15:30:45 +08:00   ❤️ 2
    @564425833 #93
    "各粒级质量损失百分率"
    "标准稠度用水量"
    "抗压抗折试验机"
    "箱式电阻炉"

    ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩

    int a;//各粒级质量损失百分率
    int b;//标准稠度用水量
    String c;//抗压抗折试验机
    String d;//箱式电阻炉

    ------或者-------
    int 各粒级质量损失百分率;
    int 标准稠度用水量;
    String 抗压抗折试验机;
    String 箱式电阻炉;

    ------再或者-------
    {{{专人 /部分负责术语定义}}}
    int bibi;
    int blbl;
    String pipi;
    String pangpang;


    就是别弄你自己隔断时间都没办法一眼认出来的拼音。
    wolfie
        117
    wolfie  
       2019-07-19 15:33:19 +08:00
    除非你能压他一头,一般老公司提交代码连个提交信息都没有。
    aLIEz09
        118
    aLIEz09  
    OP
       2019-07-19 15:35:01 +08:00 via Android
    @passerbytiny 我只是举个简单的例子,实际情况复杂点,公司项目国不国际化我不知道,但是第一周上班就改了上百文件中的中文,还有就是代码的编码格式一旦有问题,提交的时候,用比较工具很难受。
    aLIEz09
        119
    aLIEz09  
    OP
       2019-07-19 15:38:57 +08:00 via Android
    @wolfie 你别说,这位公司老同事还真是,提交没信息,一次完整的修改可以分次提交,你想要回滚到某一版本编译通过,有很大几率报错。
    xuanwu
        120
    xuanwu  
       2019-07-19 15:44:36 +08:00
    @aLIEz09 #118 是什么编码格式问题呢?
    sanjusss
        121
    sanjusss  
       2019-07-19 15:49:23 +08:00   ❤️ 1
    @xuanwu 有的 ide 默认保存编码是 utf8,有的是当前系统编码( GBK )。涉及到直接在代码写中文的,一般默认为 utf8,其他格式要在代码规范或者项目说明中写明
    XiaoWangZhanzz
        122
    XiaoWangZhanzz  
       2019-07-19 16:01:07 +08:00   ❤️ 1
    拼音的可读性还没有中文高呢
    wangxiaoaer
        123
    wangxiaoaer  
       2019-07-19 16:27:08 +08:00
    @564425833 #98

    "各粒级质量损失百分率"
    QualityLossPercentPerLevel

    "标准稠度用水量"
    StandardConsistencyWaterConsumption

    但是我选择拼音首字母,这种项目 的 拼音字段中文注释一定一定一定不能少,否则后面你会忘记的。
    mangoDB
        124
    mangoDB  
       2019-07-19 17:01:58 +08:00
    借楼吐槽一下:要善用 git commit --amend。
    rockyou12
        125
    rockyou12  
       2019-07-19 17:02:42 +08:00
    好多 ls 的估计没做个安卓开发,其实和 java 有些不一样的,特别是编译这块不是 javac 就完了,所以真的要在代码中有中文,不然混淆或者编译很可能有稀奇古怪的问题。
    judeng
        126
    judeng  
       2019-07-19 17:04:06 +08:00
    你要反思,你为啥会和这种人做同事:)
    xuanwu
        127
    xuanwu  
       2019-07-19 17:13:32 +08:00
    @sanjusss 嗯。我一般都用 utf8
    ikkknlm
        128
    ikkknlm  
       2019-07-19 17:37:13 +08:00
    代码中有中文也不算很奇怪,特别是安卓开发.
    xulolololololo
        129
    xulolololololo  
       2019-07-19 18:19:22 +08:00
    那这可能是高中或者初中毕业的,然后花钱买了个假学位?
    Cyrus567
        130
    Cyrus567  
       2019-07-19 19:39:43 +08:00
    setText("用户")
    这样写也没什么问题,如果没有国际版的话
    aLIEz09
        131
    aLIEz09  
    OP
       2019-07-19 21:14:28 +08:00 via Android
    @judeng 面试的时候也没办法知道以前同事的代码水平吧
    cabing
        132
    cabing  
       2019-07-19 21:18:07 +08:00
    @saintatgod 比 phone 精细度。
    tanrunhao
        133
    tanrunhao  
       2019-07-19 21:19:31 +08:00 via Android
    代码中文最大问题应该只是输入法切换的效率问题。
    bccoder
        134
    bccoder  
       2019-07-19 22:02:13 +08:00 via Android
    我现在公司前辈们写的代码命名就是拼音缩写,基本没有可读性
    zartouch
        135
    zartouch  
       2019-07-19 23:33:25 +08:00   ❤️ 1
    成年人是很难改变的。还是改变自己吧。努力提升然后去好的公司
    20015jjw
        136
    20015jjw  
       2019-07-19 23:56:53 +08:00
    换公司就行啦
    xuanwu
        137
    xuanwu  
       2019-07-20 01:41:52 +08:00 via iPhone
    @tanrunhao 输入法设置“中文输入下使用英文标点”
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   844 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:36 · PVG 05:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.