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

2018-08-05 23:43:39 +08:00
 xuanwu

之前个人的业余项目:

3582 次点击
所在节点    程序员
25 条回复
zhidian
2018-08-06 01:15:14 +08:00
中文打起来不累吗?
xuanwu
2018-08-06 04:04:49 +08:00
https://cn.v2ex.com/t/463788 中几位好像有此类实践, 请问可以分享下吗?
@514656282
@thread2
@murmur
@JCZ2MkKb5S8ZX9pq
@yulitian888
@ofooo
PythonAnswer
2018-08-06 06:30:36 +08:00
自己能看懂 自己用就可以啊

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

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/477109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX