第一次见以汉字命名的 Java 类

2018-08-17 10:11:18 +08:00
 samples

想把简体转成繁体,找了下 util,ZHConverter,看了下源码还以为我的 ide 出问题了 😰

如图: http://note.youdao.com/noteshare?id=6c2b1a2f774a9818d7e9080ff7bb2b7d

15835 次点击
所在节点    Java
91 条回复
AntiGameZ
2018-08-18 11:28:36 +08:00
之前做一些特定行业的项目,专有名词特别多,而且都是那种普通人一眼看上去完全不知道什么意思的名词。但是考虑到和客户更好的沟通,又不能忽视这些名词的存在,英文命名需要纠结很久并且基本上不可能达到 100%准确翻译,回头客户那边看到这些变量还得解释好久。

遂弄了个示例代码,直接使用中文用做变量名,个人体验良好,程序也没有任何问题。

奈何甲方也是程序员出生,看到源代码第一时间就怒了,强烈要求改回英文名……
idtaanlcoe
2018-08-18 11:41:45 +08:00
难受
leido
2018-08-18 11:47:23 +08:00
@xuanwu 没记错的话,日本开发 Java 用罗马音做方法名,假名做变量名(可能记反),所以对日外包要求日语 N2
xuanwu
2018-08-18 12:49:40 +08:00
@AntiGameZ 呵呵 希望随着中文命名的逐渐成熟和普及 包括编码 /命名规范的一致 这样的落花有意流水无情情况会少一些
NoDocCat
2018-08-18 13:31:16 +08:00
好的, 我注意, 不用汉字了.
下次写代码, 我用日文怎么样? 或者 Emoji 表情, 你更喜欢哪一个?
fuyufjh
2018-08-19 10:16:28 +08:00
反对在代码中用中文,尤其是开源项目。如果做给自己用的,您随意。要是做给别人用的,为什么不尽量多给一些人用呢?

英语是个包容度很高的语言,对于非 native speaker,你只要用最简单的单词语法就好了,大家都会接受的
Kyle18Tang
2018-08-19 10:33:58 +08:00
@fly9i 写代码的中文输入法标点可以设置为英文的
xuanwu
2018-08-19 15:28:44 +08:00
@fuyufjh
库 /API 使用什么语言命名应是库开发者的选择. 详请见"中文编程"知乎专栏"Python3 选择支持非 ASCII 码标识符的缘由"一文.
另有"对在代码中使用中文命名的质疑与回应"中"不利于非中文编程者贡献"一节
fuyufjh
2018-08-20 11:34:34 +08:00
@xuanwu
1. 语言本身有义务支持 unicode,但这和鼓励是两码事。比如,你可以把某个函数命名为 `AN_AWESOME_FUNCTION`,编译器不会 warning,然而别人会指责你:这样不符合 convention
2. 结巴分词这种特例就不要拿出来说了,绝大多数开源项目都是和语言无关的。我开源的目的也不是“吸引外国贡献者”,我只是希望这个代码能帮到更多的人
xuanwu
2018-08-20 13:48:53 +08:00
@fuyufjh
> 语言本身有义务支持 unicode,但这和鼓励是两码事

之前在 Python 官方文档翻译组中建议把中文版的代码中文化, Doc-SIG 的日本翻译组长也有类似回应: 'I think "enabling" to do it and "encouraging" to do it have different bar.' 个人认为这是见仁见智. 感觉这个说法也适用于不少其他的编程语言功能特性.

> 你可以把某个函数命名为 `AN_AWESOME_FUNCTION`

我们的出发点是增强代码可读性, 因此会避免使用此类违背可读性的命名方式.
如果中文命名比起相对应的英文命名明显更不可读, 在个人体验中, 更多的情况是由于中文命名尚有改进空间.
至于 convention, 现今的代码风格规范基本都源于英语为母语的公司 /开发者. 罔顾具体使用环境而视非英文命名为禁区, 个人认为是固步自封.

> 绝大多数开源项目都是和语言无关的。我开源的目的也不是“吸引外国贡献者”,我只是希望这个代码能帮到更多的人

在上文中也提到这与项目目的和作者初衷有关. 从项目总量上来说, 闭源项目远多于开源的, 单人的远多于多人的, 这是个人的估计. 闭源 /单人的项目, 也许更适合中文命名. 至于开源项目, 就像 PEP 3131 提到 API 命名的问题, 就由创作者来自行选择吧.
xuanwu
2018-10-19 05:01:17 +08:00
@leido 刚发现了一本在例程中使用日语命名的编程书籍"初めてのJavaScript 第 3 版". 译者提到(2016 年 12 月):
これからは、日本国内をターゲットにした開発では徐々に日本語識別子が使われることになるのでしょう
在线翻译如下:
"今后,以日本国内为目标的开发会逐渐使用日语标识符吧"

请问日本业界是出台了什么命名规范推广日语命名吗?

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

https://tanronggui.xyz/t/480623

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

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

© 2021 V2EX