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

大家的代码注释有写中文的吗?

  •  
  •   yhm2046 · 162 天前 · 7228 次点击
    这是一个创建于 162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天公司内部培训代码规范,我提出中文注释会导致乱码问题, cto 直接说以后不能用中文和拼音全部用英文, ceo 说第一次听到有人注释用中文. 我的疑问 1.是否所有大公司都不允许注释用英文和拼音? 2.如果全部用英文那英文水平一般的怎么根据关键字查找代码,比如我第一次写的英文单词跟后面不一样或者忘了查起来比较麻烦,类似 git log 这种用中文也比较直观,这也是我一直用中文的原因.

    99 条回复    2022-10-17 15:36:59 +08:00
    ijixiangus
        1
    ijixiangus  
       162 天前   ❤️ 8
    以 「大部分人能看懂」 为原则
    FreeEx
        2
    FreeEx  
       162 天前 via iPhone
    没去过外企,我都是写中文注释。
    chenshun00
        3
    chenshun00  
       162 天前   ❤️ 16
    为什么中文注释会导致乱码问题呢. 我迷茫了
    Mzs
        4
    Mzs  
       162 天前
    乱码问题统一字符集格式就不会出现
    1.不是,很多都是中文的,大家统一约定就行或者按照公司要求来
    2.如果一定要用英文,就慢慢适应就好
    vvhhaaattt
        5
    vvhhaaattt  
       162 天前 via Android
    团队有部分人在海外,不过都是中文母语
    有同事注释写英文,应该是之前推过这方面规范,我觉得没啥用,除非团队中真的非中文母语有一定比例,非母语注释还得脑内翻译下。
    dayeye2006199
        6
    dayeye2006199  
       162 天前
    英文编码 中文注释会频繁导致输入法切换来切换去。
    关键我还用 vim mode ,这个酸爽。。。
    XiLingHost
        7
    XiLingHost  
       162 天前   ❤️ 2
    一般不用,毕竟中文要输入法,而且确实存在编码问题,虽然现在大多数都是 utf-8 ,但是在某些终端下是只支持 ASCII 字符集的,那么你的注释就会全变成黑框
    sadfQED2
        8
    sadfQED2  
       162 天前 via Android   ❤️ 18
    我提出中文注释会导致乱码问题。你们难道用的记事本写代码吗?这年头还有注释会出乱码的问题?

    我待会好多团队,代码注释都是写中文。写英语怕不是为了装逼?一个中国团队,又没外国人,你写毛英语啊。写拼音?你是想找打?
    9ine
        9
    9ine  
       162 天前
    中文注释乱码问题没有遇到过。倒是和英文字体不等宽看得强迫症有点不适...合适的场景一般都用英文。
    Laobai
        10
    Laobai  
       162 天前
    都写中文,没有乱码问题啊
    shijingshijing
        11
    shijingshijing  
       162 天前
    @chenshun00 碰到过特定软件的 Python 测试脚本中,注释包含了中文字符[,] 跑的时候直接退出了,好一顿 debug
    leonshaw
        12
    leonshaw  
       162 天前   ❤️ 1
    不用中文,输入法切来切去麻烦,而且不少变量名、关键字、不好翻的术语很容易变成中英夹杂不伦不类。
    star9029
        13
    star9029  
       162 天前
    c++ 用中文注释有几率编译不过
    dcsuibian
        14
    dcsuibian  
       162 天前
    我写的中文注释,毕竟看的人是中国人。

    编码基本全都是直接 UTF-8 。
    只有.propreties 配置文件(默认的 ISO-8859-1 )和 powershell 脚本文件中不使用中文注释。
    buermo
        15
    buermo  
       162 天前 via Android
    中文注释经常写的啊
    拼音注释比较忍不了
    james2013
        16
    james2013  
       162 天前 via Android
    中文注释导致乱码,我觉得只有初级开发才有这个问题
    我写了这么久,在 window 上无非是文件编码不对导致乱码,现在 ide 默认特定文件编码,比如 utf-8 ,只有垃圾开发才会特意在项目里用多种文件编码
    如果不是外企和有特定需求,我觉得绝大部分写中文注释更好
    dustynight
        17
    dustynight  
       162 天前
    个人习惯写英文,后来被要求写中文。这个我觉得整个团队有共识就行,没什么好纠结的。
    FrankFang128
        18
    FrankFang128  
       162 天前
    GB2312 、GBK 时代的 CTO 没用过 UTF8 吗?
    wonderfulcxm
        19
    wonderfulcxm  
       162 天前 via iPhone
    我是混写,一般写英文,如果太复杂我表达不好就换中文…反正也就我自己看🙄️
    bthulu
        20
    bthulu  
       162 天前   ❤️ 2
    我们都是中文转成 BASE64, IDE 插件自动回转到中文, 既不会有乱码问题, 也是中文容易看懂
    24bit
        21
    24bit  
       162 天前
    怎么清楚怎么来
    blancokitsune
        22
    blancokitsune  
       162 天前
    文件内有中文等内容导致编译出错,可能就只有自己手动编译时候了。。现在 IDE 一类的东西都会处理编码问题吧
    a33291
        23
    a33291  
       162 天前   ❤️ 2
    别说注释了,我们数据库字段都是中文的.因为很多行业名字英文根本不好翻或者又臭又长🤣
    dqzcwxb
        24
    dqzcwxb  
       162 天前
    @a33291 #23 中文有时候真的有奇效,意简言赅
    Hurriance
        25
    Hurriance  
       162 天前
    如果需求文档也是用英文的,那就用英文吧,跟需求文档的语言保持一致
    cocong
        26
    cocong  
       162 天前
    不用纠结了,直接不写注释,完美。
    si
        27
    si  
       162 天前   ❤️ 17
    如果代码中用了中文会导致乱码,说明有人没有用 UTF-8 编码,不止不会设置编码,也不会用 Google 、百度解决问题。
    先别考虑英文水平了,还是先考虑这个人有没有解决问题的能力吧。遇到问题他能解决吗?
    如果程序是多个国家的开发者一起开发,统一用英文很正常。
    如果开发者统一为某个国家,用开发者的母语是很正常的,除非代码要交给外国客户,不然要求全用英文实属自找麻烦。
    对于要求代码全英文的公司,我比较好奇他们说话和文字交流是不是也是全英文。
    JamesR
        28
    JamesR  
       162 天前
    我公司内部项目注释基本是中文(开发者里没有老外),Git 提交是统一英文或中文。
    私人项目,注释用中文。

    开源项目,注释才用得着英文。
    bojackhorseman
        29
    bojackhorseman  
       162 天前 via iPhone
    写中文,不仅给自己看,也是给同事看
    x86
        30
    x86  
       162 天前
    高手啊,还用记事本写代码的
    WuSiYu
        31
    WuSiYu  
       162 天前
    都 utf8 了不会乱码的,如果没有国际化需求、不是开源项目,那中文就没毛病,你英语再好,中文也是写起来快读起来快
    duke807
        32
    duke807  
       162 天前 via Android
    用粤拼写注释,这样你就会变的不可替代 doge
    iold
        33
    iold  
       162 天前
    @WuSiYu 如果我没记错,v2 有人说过,看中文要先翻译一遍,哈哈
    msg7086
        34
    msg7086  
       162 天前
    大多数同事不懂中文,所以全写英文注释。
    wasd6267016
        35
    wasd6267016  
       162 天前
    我写中文 有时候一些逻辑需要解释 中文方便你我他
    GeruzoniAnsasu
        36
    GeruzoniAnsasu  
       162 天前
    2022 年还在讨论源码乱码问题难以想象是写什么代码的公司


    标识符用不用中文都不值得争了
    aliveyang
        37
    aliveyang  
       162 天前
    你要是你写的注解之后自己都看不懂,那才是尴尬
    Torpedo
        38
    Torpedo  
       162 天前
    现在大部分代码都是 utf8 的,别说注释了,变量都支持中文啊
    cmdOptionKana
        39
    cmdOptionKana  
       162 天前
    英语水平高的人可能更希望大家写中文,因为大多数人写英文必然错漏百出,英语好的人看这些四不像英文句子应该会很痛苦吧。
    IvanLi127
        40
    IvanLi127  
       162 天前 via Android
    现代的编程语言一般用 utf8 编码的源代码文件,用中文日文还是别的文字都行,我还加 emoji 呢。
    单纯从技术角度,建议把 ceo(?还是 cto)开了。。。居然中文写注释都没听过 。。。
    不过要求注释用英文,不算过分要求,具体得看团队。
    Solace202
        41
    Solace202  
       162 天前
    注释都是中文,或者直接贴相关的需求链接地址。
    日志一般打英文,不然要是中文乱码定位问题很难受
    masterclock
        42
    masterclock  
       162 天前
    编码问题没那么容易解决
    尽管大多数情况下是 UTF8 ,可有的项目规定必须使用 GB2312 通信、文件编码必须是 GB18030
    reallynyn
        43
    reallynyn  
       162 天前
    @si Utf8 还被巨硬搞出 bom 和 no-bom 呢。
    记得很多年前 svn 提交中文会报错,我就习惯一直用英文写 comment 了。
    ClarkAbe
        44
    ClarkAbe  
       162 天前
    一般中文, 除非一些国际上的才会拼几个单词上去, UTF-8 要是打开乱码然后还来辖几把问 "为什么打开乱码啊,怎么搞啊...", 那要么让他找个班上要么就.....
    wolong
        45
    wolong  
       162 天前
    反正我写的是中文,要是写英文,我写的别人看不懂,别人写的我看不懂。
    ilovecqrwx
        46
    ilovecqrwx  
       162 天前
    在中国就写中文,这应该去解决乱码的问题呀
    kiwi95
        47
    kiwi95  
       162 天前 via Android
    注释和 git log 一直都写英文,毕竟也代码是类似英文的。且不说编码问题,中文文本在结合一些 Linux 命令使用时不方便
    JohnBull
        48
    JohnBull  
       162 天前
    只要确保使用 UTF-8 编码,我不拒绝中文注释
    westoy
        49
    westoy  
       162 天前 via Android
    只要不写注释,就不会有这种烦恼
    renmu
        50
    renmu  
       162 天前 via Android   ❤️ 1
    然后写翻译的英语是个二把刀,看翻译的也是个二把刀,语意不知道偏到哪里去了
    lavenderkissyou
        51
    lavenderkissyou  
       162 天前
    之前做单片机的时候,注释都是写的中文的,这样同事也看的方便一些
    raptor
        52
    raptor  
       162 天前
    都这年头了,连乱码都处理不好的公司还是别混了吧……

    当然如果是国际化团队的话,还是全英文好些。
    fox0001
        53
    fox0001  
       162 天前 via Android
    一般代码注释写中文。没办法,同事连 start 都不会读…

    脚本、log 那些可能用英文,因为那些文件不能保证 utf-8 编码。
    jorneyr
        54
    jorneyr  
       162 天前
    看一段我的代码:

    /**
    * 判断复制操作的结果是成功还是失败。
    *
    * 复制操作的输出样例:
    * TASK [copy file or directory located at remote into Ansible Host] ************************************
    * changed: [192.168.12.101]
    *
    * PLAY RECAP *******************************************************************************************
    * 192.168.12.101 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
    *
    * 说明:
    * - PLAY RECAP 的下一行表示操作成功失败的信息。
    * - 使用 copy 模块从 Ansible 复制文件或者目录到 Node ,ok=2 时操作成功。
    * - 使用 fetch 模块从 Node 复制文件到 Ansible ,ok=2 时操作成功。
    * - 使用 fetch 模块从 Node 复制目录到 Ansible ,ok=3 时操作成功。
    *
    * @param copyOutput Ansible 复制操作的输出日志
    * @return 复制操作成功则返回 true ,否则返回 false
    */
    public static boolean judgeCopySuccess(String copyOutput) {
    String ok = null;

    Matcher matcher = COPY_RESULT_PATTERN.matcher(copyOutput);

    if (matcher.find()) {
    // 获取 ok 的值
    ok = matcher.group(1);
    }

    return "2".equals(ok) || "3".equals(ok);
    }
    janxin
        55
    janxin  
       162 天前
    现在还有不按照 UTF-8 保存源文件的么...

    以前确实是会有问题的,UTF-8 普及不够。
    chenxiankong
        56
    chenxiankong  
       162 天前
    注释的目的永远是给想看懂代码的人看懂。我的原则是:
    - 如果都是公司内部人看,组员看,国人看,就中文。
    - 如果是开源项目,还是英文比较好。
    paopjian
        57
    paopjian  
       162 天前
    中文会导致乱码问题确实可能存在啊,以前有人写 php,测试的时候服务器上有个小改动,vim 没设 utf-8 编码,导致打开再保存以后就有乱码串行了
    limebax
        58
    limebax  
       162 天前
    偶尔会写吧,毕竟英文木有那么好
    eason1874
        59
    eason1874  
       162 天前
    写中文注释就行了,没有编辑器不支持 UTF8

    如果部署环境不支持 UTF8 ,那在部署代码里添加自动删除注释的功能,自动清除注释再部署
    MajestySolor
        60
    MajestySolor  
       162 天前
    团队项目按团队规矩来,个人项目随便怎么折腾
    hyy1995
        61
    hyy1995  
       162 天前
    先讲清楚你是远程办公海外的公司,还是外企,还是国内公司。如果是国内公司,用英文注释就是脱裤子放屁,而且大概率是机翻英文,词不达意
    lifesimple
        62
    lifesimple  
       162 天前
    不是说好的代码都不需要注释么
    wudicgi
        63
    wudicgi  
       162 天前
    英文代码 + 中文注释 我觉得非常好,能很自然的区分开,否则一片都是英文只能靠颜色区分了
    只有面向国际的项目才写英文注释
    lucays
        64
    lucays  
       162 天前
    啊这

    我在的这家外企,但是团队里都是国人写中文注释也见到过,没有说禁止写啊
    loolac
        65
    loolac  
       162 天前
    中文注释会导致乱码问题??? 什么情况下会导致乱码? 只要不是有国际化需求,没必要必须使用英文吧。
    zsj950618
        66
    zsj950618  
       162 天前
    首先,作为一个程序员,英语是基本要求。招人时直接 pass 掉不会英语,搜索只会用百度和中文的就可以了。

    当你同时会中文和英文,用啥写都没问题。当你只会中文,用中文写注释就是你的问题了。
    tool2d
        67
    tool2d  
       162 天前 via Android
    以前很喜欢英文注释,向老外靠齐嘛,对接全球化。

    现在不喜欢了,直接用中文,更能表达准确的思路。
    lujiaosama
        68
    lujiaosama  
       162 天前
    我在 debian 上直接用 vim 写代码, 断网状态中文全乱码被迫英文注释. 团队平均英文水平不高还是别推英文注释了, 中式英语怎么读啊更加看不懂了.
    jackmod
        69
    jackmod  
       162 天前
    混过对日外包,里面大片日文。私人项目直接中文就好了,没有任何不适。参与的开源项目只用英文。
    Edcwsyh
        70
    Edcwsyh  
       162 天前
    @sadfQED2 我就真的遇到了, 公司项目里有 7 年前的代码, 注释全是乱码。。。。
    fkdog
        71
    fkdog  
       162 天前 via iPhone
    团队里没有外国人,业务也不面向国外,写个鸡毛英文注释不是在装逼是啥…?
    有些人英文小作文都写不流畅,chiglish 比咖喱味更恶心我觉得还是算了吧。
    HankAviator
        72
    HankAviator  
       162 天前
    内部项目随便,如果有任何想公开的想法,要么改英文注释,要么打消这个想法。
    kingcc
        73
    kingcc  
       162 天前 via Android
    6 ,你们 cto 连编码都没学明白
    techon
        74
    techon  
       162 天前
    个人看心情,公司项目还是按要求来。。。
    interim
        75
    interim  
       162 天前
    这个人是怎么当上 CTO 的,卧虎藏龙。
    Musong
        76
    Musong  
       162 天前
    刚毕业写英文,后来发现在我所在的公司,写英文注释既没逼格也没用处,后来就写英文了
    不过有看过代码注释写了三个还是四个程序员前赴后继的在一个很老的接口上写这个接口内部逻辑多坑,不要改,以及他们改之后受到的报应 😂
    Musong
        77
    Musong  
       162 天前
    @Musong #76 replace("后来就写英文了", "后来就写中文了");
    7gugu
        78
    7gugu  
       162 天前
    肯定写中文啊,干活追求的是效率
    icy37785
        79
    icy37785  
       162 天前
    2022 年了,还会有中文乱码的现象?连 windows10 的记事本默认编码都是 utf8 了。能出现中文乱码,这已经不是注释用中文英文的问题了,这是有史前文明混入了你们的队伍啊。
    主要是,难道你们的程序里面所有的字符串都是英文?编码整不明白,中文字符串也一样乱码呀,你们开发纯英文软件嘛。
    dongfang
        80
    dongfang  
       162 天前
    @jorneyr 这注释真恶心。和中文没关系。全是废话,还不如不写。
    majula
        81
    majula  
       162 天前
    注释写不写中文,跟文档写不写中文,原则是一样的

    如果目标用户和协作者只有国人,比如公司项目、面向国人的开源项目等,那就用中文,否则用英文

    除非团队另有规范
    suyeH
        82
    suyeH  
       162 天前   ❤️ 2
    从来不写中文,代码里面夹着中文,看着就不舒服
    billgong
        83
    billgong  
       161 天前 via iPhone
    @chenshun00 同意啊,都 2020+了难不成还有代码不是 Unicode 保存的?
    akira
        84
    akira  
       161 天前
    每家公司的实际情况都不大一样,按照定好的规范要求走就是了。

    小马过河 不只是一篇课文。
    iwh718
        85
    iwh718  
       161 天前
    注释也卷吗。
    wangritian
        86
    wangritian  
       161 天前
    全中国人的团队注释写英文你不感觉搞笑吗
    FrankHB
        87
    FrankHB  
       161 天前
    @GeruzoniAnsasu 不说中文,倒也可能是负责给 Unicode 糊的屎擦屁股的公司。
    比如纠结标识符里能给用哪些 emoji 。
    FrankHB
        88
    FrankHB  
       161 天前
    @FrankFang128 @kingcc @interim 这问题不是改过了?我这里看到的是 OP 说“我提出中文注释会导致乱码问题”,CTO 直接拒绝中文和拼音,也没说理由跟乱码有关(拒绝拼音跟乱码应该也没关系)。

    @IvanLi127 这边对未经许可擅自加 emoji 的我会认真基于头脑过于简单的理由考虑打死,至少有这些理由:
    (1)可能毫无原则地歧视色觉障碍者;
    (2)直接就有 www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1949r7.html#all-emoji-become-excluded-instead-of-just-some 这样的 zz 不正确的破事;
    (3)可能间接扰乱关注点,唆使业界一般用户普遍分不清重点,导致或者加剧 github.com/llvm/llvm-project/issues/54732 之类的问题。

    @reallynyn 你太抬举巨硬了。
    BOM 不是巨硬发明的,正如一般的二进制文件的文件头也不是巨硬发明的一样。

    没 BOM 而产生混乱的实例是很好找,比如 VS 就不认没 BOM 的 UTF-8 。FreeImage 这种注释里直接写了非 ASCII 作者名字的在当前代码页中不认识,一打开就就呵呵了。
    但对没 BOM 的“文件”的处理本来就是君子协定。说到底代码页也不是巨硬发明的。
    neptuno
        89
    neptuno  
       161 天前 via iPhone   ❤️ 1
    中国公司就写中文,有些同事写的那个蹩脚英文。。。还不如中文
    MEIerer
        90
    MEIerer  
       161 天前
    同事只会英文,那就写英文,是国人,那就中文咯
    tohuer00
        91
    tohuer00  
       161 天前
    除非你们团队都是能英文无障碍交流的水平,不然就是舍本逐末了。

    中文因为误操作变成了乱码还能从版本控制工具里面找回历史记录,看不懂的蹩脚英文就真的永远没人能看懂了。
    dog82
        92
    dog82  
       161 天前
    不明白中文注释为什么会乱码,好像锟斤拷这三个字好久没遇到了。

    如果在外企,遵守人家的规范。国内企业不让写中文就装 B 过头了
    cy18
        93
    cy18  
       161 天前
    编码问题不止 IDE 跟编辑器,你试试在 bash 里面 git log ,git diff 一下?
    注释用中文,那变量、函数名用英文单词还是拼音?如果用拼音的,当我没说;如果用英文单词,有时候注释里的中文跟变量、函数名的不太好准确对应起来,反而看着难受。而且用英文注释用习惯了,更容易起好变量、函数名。
    Bingchunmoli
        94
    Bingchunmoli  
       161 天前 via Android
    没写过英文,因为英文需要我写中文然后百度翻译,质量不如不懈
    MrSheng
        95
    MrSheng  
       160 天前
    不明白为何中文会导致乱码,建议你司先解决编码问题。

    那些 使用不支持中文编码的终端的、直接在服务器上调试代码的 “大神” 应该拉出去打死。
    yuruizhe
        96
    yuruizhe  
       160 天前 via iPhone
    @shijingshijing 为啥会这样…注释还会影响代码的执行?不会注释里有代码、然后直接 exec 字符串吧…
    yuruizhe
        97
    yuruizhe  
       160 天前 via iPhone
    @star9029 啥编译器啊这么垃圾…文本预处理都做不了…报个名字给大伙避避坑吧
    shijingshijing
        98
    shijingshijing  
       160 天前
    @yuruizhe 那个测试工具可以用 VBS 和 Py 两种脚本,反正都不支持中文,可能是自己造了某种预编译的轮子吧,或者还有其他自动检查工具,反正是过不了,直接退出。
    unco020511
        99
    unco020511  
       160 天前
    原则:注释要团队内大部分人能看懂. 反正我们团队是中文注释
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   874 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 21:49 · PVG 05:49 · LAX 14:49 · JFK 17:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.