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

你们在怎样的项目中使用过中文命名?

  •  
  •   xuanwu · 2018-08-05 23:43:39 +08:00 · 3545 次点击
    这是一个创建于 2062 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前个人的业余项目:

    25 条回复    2019-07-29 14:21:50 +08:00
    zhidian
        1
    zhidian  
       2018-08-06 01:15:14 +08:00
    中文打起来不累吗?
    xuanwu
        2
    xuanwu  
    OP
       2018-08-06 04:04:49 +08:00
    https://cn.v2ex.com/t/463788 中几位好像有此类实践, 请问可以分享下吗?
    @514656282
    @thread2
    @murmur
    @JCZ2MkKb5S8ZX9pq
    @yulitian888
    @ofooo
    PythonAnswer
        3
    PythonAnswer  
       2018-08-06 06:30:36 +08:00 via iPhone
    自己能看懂 自己用就可以啊

    团队协作的话 沟通好即可
    514656282
        4
    514656282  
       2018-08-06 06:37:16 +08:00 via iPhone   ❤️ 1
    @xuanwu 我基本上是方法名,变量名,枚举 反正用中文能表达得更清楚的,我都用
    lyz1990
        5
    lyz1990  
       2018-08-06 07:01:24 +08:00 via Android
    接受不了
    xuanwu
        6
    xuanwu  
    OP
       2018-08-06 07:34:23 +08:00
    @514656282 请问现在主要是在 Java+数据库中用吗? 是哪些框架呢?

    @PythonAnswer 现在碰到的中文命名的项目还都以个人为主, 风格都有些个人特色. 之前也在 github 讨论组里探讨过命名规范的问题: https://github.com/program-in-chinese/overview/issues/45 . 觉得以后团队开发多了也会慢慢自然总结出一些规范.
    yulitian888
        7
    yulitian888  
       2018-08-06 08:35:40 +08:00
    能不用尽量不要用中文,包括汉字和拼音,都是不良的编码习惯。

    主要的问题之一在于,汉语很难准确区分词性。而且口语化的用法里,“和”与“或”与程序逻辑里的含义往往不同。比如,“初中生和高中生允许骑自行车”,汉语里用“和”字,事实上的含义是“或”。而里面的“允许”其实还是个被动式,汉语总不能给动词加 ed 后缀吧。
    另一个问题是,换个编译环境可能就直接挂了。

    但是有一种情况例外。带新兵团队的时候,一群 E 文弱鸡靠机器翻译瞎命名,可读性简直逆天。比如我见过有人把“促销活动( promotion )”机翻成 activity 的。然后整个程序完全无法阅读了。在这种情况下,用汉字属于没有办法的办法。注意,是直接使用汉字,而不是拼音,否则画面更美了~~~
    murmur
        8
    murmur  
       2018-08-06 09:44:36 +08:00   ❤️ 1
    @zhidian 命名是更累的 而且有的你跨学科都不知道怎么翻译
    有些洋人主导的东西还好翻
    电力行业 现在标准是掌握在我们手里 我们出口技术 你说这东西咋个翻呢
    xuanwu
        9
    xuanwu  
    OP
       2018-08-06 10:17:13 +08:00
    @yulitian888 词性问题英语也有吧.
    就像需求文档, 代码命名一般也会避免口语化用法. 你举的例子英文可以是"junior high and senior high students can ride bike", 那些问题也都有吧. 要是说可以用'are allowed to'表达被动, 中文命名里加个"被"字之类也可以强调.
    只要是语言标准本身支持 unicode 命名, 只要是主流编译器应该都支持吧?
    个人认为业务领域的中文命名可以省去很多从需求文档到实现的中英转换.
    yulitian888
        10
    yulitian888  
       2018-08-06 10:28:02 +08:00
    @xuanwu 上面的举例不必深究,只是用一个例子说明两件事情而已。
    真的要深究的话,汉语的 and 和 or 绝对是坑。专门说一个真实存在的例子喽,某 API,授权超级管理员 [和] 版主两个身份的人访问,其中 [和] 是口语化的,实际含义指的是二选一,应该表述为 [或] 才是程序逻辑。
    但是按口语命名的时候,很有可能真的编码写一个 && 而不是 ||,那意思就变成了两个兼具的人才能访问。妥妥出 bug 喽!
    为了节约中英转换的话,最有可能产生的结果是大量的“英式中文”,因为某些场合下,有人会习惯用前缀来表示一些东西,例如有人喜欢用 t_xxx 表示表的实体类,v_xxx 表示视图的实体类。
    也有表示类型的前缀和表示功能的后缀的。比如 web API 上,有人喜欢对请求加 Request 后缀,对返回值加 Response 后缀。
    这两种命名风格换用中文,感受一下是什么效果?
    ofooo
        11
    ofooo  
       2018-08-06 11:15:36 +08:00   ❤️ 1
    @yulitian888 你语文差劲不要带上汉语。
    为什么要用“和”而不是用“且”? “且”不就一点歧义都没有。你非要用错误的词~~~
    yulitian888
        12
    yulitian888  
       2018-08-06 11:47:38 +08:00
    @ofooo 喷子你好,喷子再见
    xuanwu
        13
    xuanwu  
    OP
       2018-08-06 13:54:53 +08:00
    @yulitian888 对于'和 /或', 个人认为英文对应的'and/or'存在相似歧义情况. "授权超级管理员 [和] 版主两个身份的人访问"这个例子, 英文偏口语也可以用 and(或者说非程序员背景的应该不少会偏向用 and). 和骑车例子类似.
    在之前工作里的可读性审核中, 缩写(甚至是貌似很常见的缩写, 比如 Password->Pwd)不被提倡, 因为在代码需要在各种不同出身 /背景的开发者间共享时, 任何缩写都会导致不必要的歧义. 假如是在某个小团队项目中, 自行规定了类似 t_/v_之类的前缀, 一方面这本身也是非典型的英文, 另一方面用类似中文前缀会对中文母语的开发者更明确, 如"表_xxx", "视图_xxx" (输入效率问题可以另行讨论)
    关于 Request/Response 这类约定俗成的术语, 的确中文命名缺少一个有共识的对应字典("请求 /响应"应该较常用). 个人认为这也是缺少实践所致. 之前在讨论组中也有尝试形成一个对英文命名常用术语的对应字典: https://github.com/program-in-chinese/overview/issues/54 , 希望省去今后的一些弯路.
    xuanwu
        14
    xuanwu  
    OP
       2018-08-06 14:32:25 +08:00
    https://cn.v2ex.com/t/298048 中几位好像有此类实践或者见闻, 请问可以分享下吗?
    @daya
    @doublleft
    @incompatible
    @8qwe24657913
    @ligyxy
    @EyreFree
    EyreFree
        15
    EyreFree  
       2018-08-07 14:57:46 +08:00   ❤️ 2
    # 就瞎几把乱写,至于优劣?貌似有好处有坏处...不能一概而论...反正组内编码、命名规范定好,大家没啥意见就照着执行,遇到特殊情况有争议的拿出来讨论好再写进规范里就成...
    anheiyouxia
        17
    anheiyouxia  
       2018-08-09 08:12:33 +08:00 via Android   ❤️ 1
    @xuanwu 就我自己以前参与的项目,我觉得中文没有什么不好
    当时我们做的网页游戏,很多功能用中文反而可以更好地表达意思,而且注释都不用写了,对了一个刚接触这个项目的人来说,一下子就上手了,根本不用看半天。
    中文开发还有一个好处就是,如果英文并不是说多好的人,那中文还能免去你乱翻译让别人看不懂得问题。
    至于说中文打字麻烦之类的问题,真正写起来后这都不是问题好吗(✪▽✪)
    xuanwu
        18
    xuanwu  
    OP
       2018-08-10 11:00:10 +08:00
    https://zhuanlan.zhihu.com/p/41129712 的评论中提到了 IDE 对中文编程的支持需要加强, 请问上面各位在中文命名的实践中有什么体会吗? 比如某个 IDE 对中文命名支持更好, 或者普遍存在的不足等等? 个人感觉的是中文输入法和 IDE 集成不足, 导致有时 IDE 功能比如代码补全不大顺畅.
    @514656282
    @murmur
    @ofooo
    @EyreFree
    @anheiyouxia
    EyreFree
        19
    EyreFree  
       2018-08-11 14:24:02 +08:00   ❤️ 1
    # Xcode + Swift 表示甚至能资瓷 emoji...🤓
    xuanwu
        20
    xuanwu  
    OP
       2018-08-11 23:27:30 +08:00
    @EyreFree 支持 Unicode 的话应该都支持 emoji 吧?
    之前试过支持中文命名的语言: https://zhuanlan.zhihu.com/p/30886931 最后是支持 Unicode 的列表更长.
    xuanwu
        21
    xuanwu  
    OP
       2018-08-15 05:16:57 +08:00
    又见命名讨论: https://www.v2ex.com/t/478810 请有中文命名经验的分享下:
    @Daming
    @sjx95
    tabris17
        22
    tabris17  
       2018-08-30 14:00:14 +08:00
    @xuanwu 我只是不反对用中文,并没有在项目中实施过。。。

    不过我是强烈反对用拼音的,以及更加恶心的拼音首字母缩写,这些家伙应该浸猪笼!!!

    数据库字段用中文可能会对一些运维工具不友好,不如在备注里写中文。代码中使用中文作为本地变量名我觉得没有什么问题(只要语言支持),函数名方法名类名这些可能会被全局使用的名称不建议使用中文,除非项目是完全封闭的
    xuanwu
        23
    xuanwu  
    OP
       2018-09-01 03:42:24 +08:00
    商业项目使用中文命名例子: https://www.v2ex.com/t/485059
    @tinyuu 如有后续体会欢迎分享!
    xuanwu
        24
    xuanwu  
    OP
       2019-03-12 04:44:39 +08:00
    在博客园发现的早在 2009 年已经开展三年之久的商业项目, .NET 中使用中文命名:
    https://www.cnblogs.com/DotLee/archive/2009/08/19/1549750.html
    xuanwu
        25
    xuanwu  
    OP
       2019-07-29 14:21:50 +08:00
    发现某网络接口在 json 中的键名使用中文: https://www.v2ex.com/t/540750#r_6969269 如知道来历请告知
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   952 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 21:12 · PVG 05:12 · LAX 14:12 · JFK 17:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.