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

[瞎聊] 个人看不惯代码或相关资源里的汉语拼音(或非英语),算强迫症吗

  •  
  •   KentY · 2014-12-30 00:03:19 +08:00 · 5275 次点击
    这是一个创建于 1602 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近些年来看的代码很少有中间变量名用拼音的了。只是个别时候浏览代码的时候看到过类似,想起来早年间,这样的代码看的挺多的,有时候还要修改/扩展。 那时候就觉得特别别扭。 我觉得,如果要写中文,可以在注释里写。 既然那些地方写不了母语, 就用英语就好了,虽然功能, 性能上没变化,看起来顺眼点。 而且以前有的同事是南方的, 拼音还不标准, 更让人别扭。 一些例子:

    string yonghu
    int  haoma
    function xiazai(){...}
    数据库表名:Baobiao, 字段: baobiao_id, report_mingcheng, riqi
    网页url: app.com/ziliao/baocun
    ....
    

    前面说过现在接触这种拼音很少了, 但是有的同事写变量什么的是非英语的,和其它英文的变量名一起混着, 觉得和拼音一样很奇怪。

    最没辙的是, 多年前弄过一阵子SAP ABAP4, 里面日期类型是Datum,不是Date. 这个没办法了,人家的类型就叫这个。

    这让人看着很别扭。 我这不知道算不算强迫症呢?

    76 回复  |  直到 2015-01-02 13:07:07 +08:00
        1
    akfish   2014-12-30 00:15:18 +08:00   ♥ 5
    不算,同看不惯。
    这年头英文水平基本上可以直接反映出一个程序员的技术水平及发展潜力。
    我见过不少英文本来不好的,英文水平往往都会随着技术水平进步。
    万年在代码里撸拼音的,技术水平进步了多少可想而知。

    坐等玻璃心跳出来打优越感牌。
        2
    yfdyh000   2014-12-30 00:28:11 +08:00
    算。但强迫症即好又坏,进步的阶梯与争论的起点。艺术家也反感乃至厌恶不喜欢的作品。但眼高手低更不好。努力到达/促成更好的环境。
        3
    cicku   2014-12-30 00:32:41 +08:00
    没学过拼音的表示完全赞同。

    学过拼音的表示不服。

    坐等楼下开始站队。
        4
    233   2014-12-30 00:33:47 +08:00
    接盘过一份代码,部分变量是西班牙语。。(也可能是法语)。。。麻痹的
        5
    kmvan   2014-12-30 00:49:37 +08:00 via Android   ♥ 1
    我用五笔命名问你怕不怕
        6
    incompatible   2014-12-30 00:55:24 +08:00
    哦 我平时经常用法语命名变量 英语实在是看起来不习惯
        7
    gdgoldlion   2014-12-30 01:27:10 +08:00   ♥ 1
    偶尔有些地方只好用拼音的。比如游戏里实现技能,技能名叫:降龙十八掌,天山六阳掌。
    <( ‵□′)───C<─___-)||
        8
    lm902   2014-12-30 01:37:38 +08:00   ♥ 1
    @gdgoldlion
    Reduce Dragon Ten Eight Clap
    Sky Mountain Six Sun Clap
        9
    sanfenliuqi   2014-12-30 01:45:25 +08:00 via iPhone
    其实纯英文命名和纯拼音都能接受,接受不了的是拼音和英文混搭的,比如这种userShuJu
        10
    DeutschXP   2014-12-30 01:55:56 +08:00
    我就喜欢这种混合的,让看不懂的人更看不懂就对了。
    比如 OrderDatum,Order 是英语,Datum 德语,我喜欢就好,我周围的人能看明白就好。
        11
    lshero   2014-12-30 02:00:38 +08:00 via Android
    写拼音也比随便用词典查一个意义不明单词摆在那里的可读性强一点吧。

    不过我觉得要写拼音就好好写,尤其是前后鼻音,卷舌音翘舌音一定要分清楚
        12
    gdgoldlion   2014-12-30 02:09:10 +08:00
    @lshero 恩,这种事还是得造术语表,或者英语好的问下,字典里经常有UFO
        13
    gdgoldlion   2014-12-30 02:09:24 +08:00
    @lm902 太丧尸了,哈哈哈
        14
    KentY   2014-12-30 03:07:29 +08:00 via Android
    @DeutschXP 这种最差了,还真没见过。通常外国人写的。哪怕Bestellung也好呀
        15
    typcn   2014-12-30 03:16:56 +08:00 via iPad
    vs里面写cpp很喜欢用汉字变量,会被喷吗。

    纯拼音还说得过去,怕的是 ShangchuanFiles Xiazaifiles.

    再精简一下 xzfl 维护的要疯了
        16
    t6attack   2014-12-30 03:24:48 +08:00
    自己常用拼音。但是需要给别人看的代码,为了防止被人BS,直接:a1、a2、b1、c3。。。
        17
    DeutschXP   2014-12-30 03:53:51 +08:00
    @KentY 怎么差,至少我周围的人都能看懂。。。尤其一些国际化的公司,但不是 IT 公司,IT管理却没有那么正规的。比如 O2 的一些平台,可能先是英文版的,然后到了德国分公司这边,搞了个本土化,我靠,那里面的语言绝对乱七八糟,提过许多次意见,他们自己的人也不知道该怎么改了,说,就这么弄吧,大家都懂就好。就跟我当年写论文一样,跟个导师是说英语的,德语基本很不利索,但他硬是在我的"感化"下,适应了我的英德语。
    有的时候,必须得用英语,比如 Security 和 Safe,对应的都是 Sicherheit,这就不妥了。但有时候,用德语加英语一目了然。比如写Logistik或者Shop系统的时候,IST,SOLL,操作的立刻都懂了,我如果要是去扯什么 target, actual...
        18
    lzxgh621   2014-12-30 04:55:47 +08:00
    有规则就行,最怕乱命名。
        19
    miyuki   2014-12-30 06:46:22 +08:00 via Android   ♥ 1
    一般都用罗马音
        20
    kneep   2014-12-30 07:07:44 +08:00 via iPhone
    我很反感。不过大多数人即使用英文,也不知所云,所以还是拼音吧
        21
    vietor   2014-12-30 08:12:34 +08:00 via Android
    英文容易用错词,拼音太掉价,还是英文吧
        22
    xychang   2014-12-30 08:17:16 +08:00
    @DeutschXP datum本来就是英文单词啊,data的复数形式就是。
        23
    xychang   2014-12-30 08:17:46 +08:00
    @xychang 打错了,单数形式……
        24
    beddo   2014-12-30 08:54:19 +08:00
    赞同一楼 我不会招这样的程序员……宁可缺着……
        25
    minbaby   2014-12-30 09:03:40 +08:00 via iPhone
    楼主对于缩写怎么看,缩写缩的谁都不认识
        27
    blue7wings   2014-12-30 09:08:44 +08:00
    英语不好,不会查字典么。。。就是懒。。。
        28
    y   2014-12-30 09:10:04 +08:00   ♥ 1
    有时候英文也很蛋疼,比如折扣,查了字典,写个 rebate. 但是 rebate 是返券好不好,和 discount 完全不是一回事。
        29
    kevin0927   2014-12-30 09:10:20 +08:00
    @kmvan 好怕
        30
    ranran   2014-12-30 09:40:23 +08:00
    写了很多 删掉了

    简单来说就是 人以群分 物以类聚 相对来说 用英文命名的人群中 素质好的占比比较高 用拼音的占比比较低而已 并不代表使用拼音命名的人 编程能力就差劲

    在中国人里面 自然是受过高等教育的用英文命名的编程者各方面会更好一些 因为用英文命名 不但是代表他会编程 会英文 也代表是受过高等教育的人 就算他是一个自学者 那么他也是有足够的自学能力的 综合判断 他是一个人才

    所以楼主自己 甚至很多人都没发现这个想法 只是心里觉得 用英文的更规范 更通用 其实这是一个综合判断 并非仅仅从命名习惯来判定的

    说这些可能你们还是不太理解 或者说产生误解

    简单来说就是 一帮外国人拿着易语言编程 自然有些是用英文来命名的 有些拿中文来命名的 有些拿拼音来命名的 还有使用其他国家文字来命名的

    其中以用中文命名的最为通用 最为规范 其技术能力 学习能力 个人素质 综合判断为最高级一级别的人才(因为在易语言的世界,大多人是用中文命名,有好的学习能力的人,当然用大家都通用的汉字)

    那么问题出来了 那些用自己国家语言编写易语言程序的人就很差劲吗? 非也 或许最顶尖的高手就在这些人之中也说不定 但是用中文命名那群外国人 综合素质好的占比例绝对是很高的

    用易语言来举例子仅仅是做个比喻 没有存在其他任何意思
        31
    Bitex   2014-12-30 09:50:14 +08:00   ♥ 1
    如果我周围的同学能用拼音做变量名再让我帮忙debug,我都能高兴地哭出来……

    LZ你能想象一段代码里全都是yxzb(圆心坐标)、class sjx(三角形)、polyzb(多边形坐标)这种神秘的缩写吗……

    其实这都算好……

    goto p

    goto pp

    goto ppp

    goto pppp

    ....

    这种程序是人能看的吗!(掀桌
        32
    viator42   2014-12-30 10:01:36 +08:00
    看拼音的命名有种思维卡了一下的感觉,全部英文的话就很流畅.
        33
    doushiyinweini   2014-12-30 10:02:42 +08:00
    自己老实搬砖,不是领导不管这些
        34
    dychenyi   2014-12-30 10:59:31 +08:00 via Android
    没遇到过写拼音的程序员同事。。
        35
    XadillaX   2014-12-30 11:02:23 +08:00
    想到以前写 ACM 的时候:

    void gao()
    {
    //... 搞
    }

    int main()
    {
    //...
    gao();

    //...
    }
        36
    neutrino   2014-12-30 11:05:06 +08:00
    @xychang data是单数,复数是dataz才对嘛(认真脸)
        37
    lululau   2014-12-30 11:16:59 +08:00
    这只是个习惯问题或者风格的问题,用汉语拼音的也不代表英语就一定不行。我知道的有两个 Ruby Gems ,一个叫 nokogiri,一个叫 kaminari,都是用拼音命名的吧
        38
    tcxurun   2014-12-30 11:25:16 +08:00
    看具体业务吧,有时候变量如果用英文,要很长或者是没有合适的英文命名
        39
    elvis_w   2014-12-30 11:39:35 +08:00
    @lm902 @gdgoldlion 这么翻译还不如拼音呢
        40
    thedarkside   2014-12-30 11:45:08 +08:00
    拼音还能忍受,最烦用拼音首字母的,比如手机号码写成SJHM的,看了就想扁人~~
        41
    circsqua   2014-12-30 11:52:26 +08:00
    小python脚本,直接中文变量名,哈哈……
        42
    wezzard   2014-12-30 13:11:49 +08:00
    datum 是 data 的單數。

    datum |ˈdeɪdəm|
    noun (pl. data || )
    1 a piece of information. See also data.
    • an assumption or premise from which inferences may be drawn. See sense datum.
    2 a fixed starting point of a scale or operation.
    ORIGIN mid 18th cent.: from Latin, literally ‘something given,’ neuter past participle of dare ‘give.’
        43
    nomemo   2014-12-30 13:33:35 +08:00
    这个叫代码规范,看各个公司怎么规定的了
    自娱自乐的项目随便你用什么,swift开发你用UFT-8里任意非关键字单词都可以做变量名

    好的程序员那就是要不仅写出机器能懂的代码,也是其它程序员都能懂的代码。之前拿到的一份代码规范第一个要点里就明确规定:
    US English should be used.
    连英式英语都不推荐使用


    https://github.com/raywenderlich/objective-c-style-guide
        44
    sarices   2014-12-30 13:35:39 +08:00
    呵呵,切换输入法不累吗?

    错误信息:Input string was not in a correct format.
    Sql:SELECT c_id = [id] ,c_title = [名称] ,c_level = [级别] ,c_pid = (select id from [商品类型] where 编号=a.[父编号]) FROM [dbo].[商品类型] a with(nolock) where not exists( select 编号 from 操作员权限 z left join [商品类型] y on z.类别ID = y.id and z.类别ID > 0 where y.编号 like a.编号+'%' ) order by 编号 asc
        45
    KentY   2014-12-30 15:52:44 +08:00 via Android
    @wezzard datum是德语和英语Date的意思一样。不是data
        46
    leassy   2014-12-30 15:59:31 +08:00
    同看不惯,甚至讨厌,我写代码的时候,就算不知道英文是什么也要google一下再写
    之前公司的人用MSSQL建的表,表名是拼音,字段名是中文,我勒个去,当时我就跪了
        47
    wezzard   2014-12-30 16:01:55 +08:00
    @KentY datum 是英語,在字典裏面有,看我 copy 過來的解釋
        48
    KentY   2014-12-30 16:24:15 +08:00 via Android
    @wezzard 我说我提到的datum还有那个XP提到的,都是德语的Datum (日期)
        49
    KentY   2014-12-30 16:33:58 +08:00 via Android
    可能有些特殊情况必须写拼音或非英语。比如提到的游戏里的文化相关的信息,还有专有名称比如taobao,zhihu这类URL或包名。

    当然我说的不是这些情况。我觉得多语言混合在代码里(注释除外)非常难读。我觉得应该遵循开发语言本身大部分语言都是英文。而且特别是国际团队共同开发的项目,更应该做到用英文,包括注释。

    我自己觉得因为英语不好而写拼音不是借口。可以问,可以查,而且学了新词,在代码里敲那么多次也记住了。对自己对别人都是负责的表现。当然这是小事,上升到责任心有点过。就说这意思吧。
        50
    kf9621735   2014-12-30 18:16:25 +08:00   ♥ 1
    到处都是看到易语言啊,这货真的有那么好么?且先不说中文编程、拼音编程、文言文编程是不是合理。用了这么多年的软件,从来没有遇到过下载的某个不错的软件发现是易语言写的,一个根本没多少人用的东西为什么这么喜欢吹牛呢?

    易语言作者声称易语言全部自己手写没有一点微软的烙印,实际上易支持库那就是包装的微软VC++6.0里的MFC框架,所以易语言的窗口指针也就是MFC里的CWnd*指针,把MFC源码打个壳就说是自己的。这个东西除了山寨汉化下关键字,技术上没有任何拿得上桌子面的东西。就连易语言自己写支持库都不用易语言,只会用VC++,写完了再汉化下函数名。搞这么麻烦还不如直接去用C++,还没有什么易语言能做MFC还做不了的东西。

    所以大家知道易语言是根本不可能真正的跨平台了,因为MFC就是专用于微软windows的嘛,易语言声称能编译成01二进制的跨平台的机器码,这实际上是玩了一个低级的文字游戏忽悠无知的小白,其实任何数据存储在内存里都可以说是01二进制,这不是耍流氓吗。易语言也就是VB脚本式的伪编译成易格式体,所以易语言早期生成的EXE可以用VB Explorer解开,易的模块现在还有人做出反编译器可以还原出源代码、虽然易语言慌忙推出所谓易包但被反编译也是时间的问题,真正原生编译的编译器还原源代码这种事是没这么容易的。

    易语言打的旗号是中国人用自己的编程语言,你看美国人写个编程语言会在LOGO上大张旗鼓的写上“美国人自己的编程语言”吗?!可笑的是用国外的编程语言是免费的,你用“自己的编程语言”还要高价购买,问题是你买的东西里面还是打包的国外的源码。然后易论坛上还整天骂C++骂英文编程骂MFC,哪有儿子整天骂爹的呢,其实只要看看易语言作者吴涛做的视频教程,那桌面上都是些lua新手入门教程、directX入门这些东西,可以看出就连吴涛自己都不怎么使用“自己的编程语言”。
        51
    wheatcuican   2014-12-30 20:54:34 +08:00
    @gdgoldlion
    降龙十八掌难道不是Beating dragon 18 palms
    哈哈哈~
        52
    rocai185   2014-12-30 21:40:11 +08:00
    @DeutschXP 除非你的代码不要维护的就可以这样,不然你让后面维护你代码的人情何以堪。你可以想象一下他看到你代码时的表情
        53
    greensea   2014-12-30 21:54:55 +08:00
    你们啊,too simple,汉语拼音算什么,看看这个 PHP:
    http://t1.qpic.cn/mblogpic/61062d66f8eb9dc29dac/2000.jpg
        54
    KentY   2014-12-30 22:10:39 +08:00
    @greensea 这个写代码的人用编辑器自动完成的时候,一定体验很爽...或者他不知道可以自动完成?
        55
    pandada8   2014-12-30 22:16:41 +08:00
    是时候用拉丁文作为变量名了,同志们!
        56
    miyuki   2014-12-30 22:18:02 +08:00 via Android
    @pandada8 逼死维护人员
        57
    weakfox   2014-12-30 22:19:46 +08:00 via iPad
    资深OCD患者表示这不是OCD,一般人都没病。
    你们继续跑题。
        58
    hzlzh   2014-12-30 22:25:52 +08:00
    我就 BEM + 中文缩写 命名,维护起来相当方便,一目了然,比如:
    mod__quanminfeijidazhan
    长度什么的完全不是问题
        59
    tt7   2014-12-30 23:13:56 +08:00   ♥ 1
    ZhuDongFangYu.exe
        60
    zhfy1991   2014-12-30 23:40:31 +08:00 via Android
    @lm902 好歹写成eighteen 吧这位大侠
        61
    popoge   2014-12-31 00:31:57 +08:00 via Android
    @tt7 高级黑
        62
    popoge   2014-12-31 00:35:02 +08:00 via Android
    @greensea 来回切换输入法太烦
        63
    jy02201949   2014-12-31 00:46:42 +08:00
    @tt7 23333 不许这么黑我360啊,你们没有感觉这个进程名萌萌的吗,简直赞,23333,对不起请在容许我笑一会
        64
    RIcter   2014-12-31 01:05:24 +08:00 via iPad
    拼音不明了啊不如英语一眼看出来…
        65
    ProfFan   2014-12-31 02:11:33 +08:00 via iPad
    学校的教务系统,所有名称全部首字母缩写
    com\zhxfjw\xscjcx\cj_zwcjd.java
        66
    DeutschXP   2014-12-31 03:17:05 +08:00
    @rocai185 什么表情?该有什么表情?如果我要考虑到我的代码后面将会是一个不会英文的德国人来维护,是不是我需要把所有变量都改成德语?如果是英国人我都得改成英语?如果又招了个中国人,我就得改成拼音?一段代码就算是全部都是 a1,a2,该你读懂的时候你也需要读懂。我可以傲娇的说,一个函数,一段代码,一扫眼就应该知道是干什么的,而不应该拘泥于变量名称。我同样也可以傲娇的说,如果不是一扫眼就能看懂,那么多花点时间是应该的。就像 @tt7 说的360的那个进程,我昨天也想到了这个例子,当你参与到一个中国人的项目的时候,或者当你接手一个中国人写的代码的时候,管你哪国人,你就得弄明白 ZhuDongFangYu 什么意思。就好像楼主,他不一样也明白了 Datum 德语是什么意思么,虽然学习SAP不需要学会德语。
        67
    thinkmore   2014-12-31 09:47:57 +08:00
    代码洁癖,这个一个好的现象
        68
    bertonzh   2014-12-31 11:08:58 +08:00
    网页 url 用拼音或者拼音缩写没什么问题。
    程序代码用拼音就要吐槽了。
        69
    luoweihua7sync   2014-12-31 13:32:32 +08:00
    好吧,下次的中文我就MD5之后的值做名称。。。
        70
    KentY   2014-12-31 20:01:57 +08:00 via Android
    @DeutschXP 我会德语。一样反感德英混合的变量名。德国人也同感
        71
    DeutschXP   2015-01-01 05:10:23 +08:00
    @KentY 帮你加个定语:你认识的德国人也同感 :)
        72
    ichord   2015-01-01 11:44:55 +08:00
    shit.
        73
    KentY   2015-01-01 22:29:43 +08:00
    @DeutschXP 是,就这个意思。各人有各人的看法。呵呵。公司情况也不一样,规矩不规矩都是人定的。不管德国还是中国,大都如此。
        74
    KentY   2015-01-01 22:35:11 +08:00
    忽然想起来, 我自己写的玩的代码就有个项目是以拼音命名的: https://github.com/sk1418/zhuaxia
    但里面变量,函数等应该没有拼音。
    哈。
        75
    xychang   2015-01-02 01:40:46 +08:00
        76
    jarlyyn   2015-01-02 13:07:07 +08:00 via Android
    用阿拉伯语都好过拼音。拼音又不是语言,还要猜代表的是什么汉字,还可能猜错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3354 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 10:20 · PVG 18:20 · LAX 03:20 · JFK 06:20
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1