有没有团队在实际项目中,在写业务代码时,遇到业务强相关的变量,使用中文变量名称?

2020-06-26 01:36:40 +08:00
 einsdisp

有时候遇到业务强相关的变量,如果按照传统使用英文变量,一来要想翻译成地道的英文很困难,二来难以理解,不仅别人看代码时难以理解,如果这些变量太多的话,自己也难于记忆。

我看别人的代码,像英文命名不地道的、拼写错误的,更有甚者使用拼音命名的,这种恶心的事情简直不要太多。

于是我想,现在但凡主流的高级编程语言以及数据库,全都支持使用 Unicode 字符命名变量,遇到业务强相关的逻辑时,何不直接用中文?

当然,在写通用模块或库时,或者与业务联系不大的逻辑,当然还是应该用英文变量名。

如果是个人项目无所谓,适合自己的就是最好的。但是如果是公司团队,有没有团队在实际项目中使用中文命名?

4932 次点击
所在节点    程序员
48 条回复
zhilincom
2020-06-26 01:56:45 +08:00
还是用英文比较好吧,最好加上中文注释。一般行业术语 /专业术语都有对应的英文翻译,除非是自编自造且不流行的特定词汇,这种情况用中文一般人也很难理解好不。
zhilincom
2020-06-26 01:58:11 +08:00
还有一个用中文做变量你不觉得切换输入法就很麻烦吗?
watzds
2020-06-26 01:59:45 +08:00
我用中文枚举
RicardoY
2020-06-26 02:28:16 +08:00
我感觉中文枚举比英文枚举清晰很多...但是 leader 好像不是很喜欢...
darrenfang
2020-06-26 02:39:50 +08:00
之前遇到一个枚举:一居室,二居室,三居室,四居室,联排别墅,独栋别墅...

果断用中文了
Code418
2020-06-26 06:00:20 +08:00
虽然中文变量名我是反对的。

这确实是个很大而且很烦的议题。编码五分钟,命名一小时……有时候找对应通用翻译不是非常容易,尤其很多领域跟业务场景,其实内地的习惯跟全世界都不一样,只能勉强对应上去,事实上表意反而很不精确。而且常常也会导致命名太长的问题,生生当 java 写(咳)

前面提到的用中文枚举感觉虽然还是很难受,但感觉大家商量下,在必要的地方用,感觉还是勉强可以接受的,应该也可以解决掉大部分问题。但是如果是作为普通变量名或是其他 token 的话感觉就真的太难受了,这个完全不能接受。

而且中文本身过度自由了,有 ide 自动完成实现得够好的情况还成,但团队如果有人用的开发工具这个不行的话,估计应该会非常难受。

环境问题还有很多,现在可能还好些,基本上应该问题不大,但我想起几年前吧,有很长一段时间(记得是 java vm 的问题还是怎么的),我用 idea 全家桶没法儿用输入法直接键入中 /日等语言,那会儿要我在代码中用中文那就是要我死。而且这还要求开发环境必须要能用中文,虽然应该很少人遇到这种情况…

混杂拼音的话主要是感觉视认性跟表意性也很差,而且真的看起来会非常不舒服,这个不知道怎么整。日语的话用罗马拼音在这个问题上感觉不会这么难受,可能一方面因为英语中引入日语词汇已经非常多了,观感上已经习惯了,加上日语本身的音节特别干净简单。但是真的用太多看起来还是会非常恶心,而且虽然没有中文那么严重,视认性也还是很烂的。

楼主还有提到数据库,库里的表或栏位或 key 直接使用中文从没做过,不确定可行性,但也感觉难以接受,而且吐出一堆 field 都是中文这个看了会傻眼的吧就。而且 non-ascii 额外还牵涉到编码的问题,整体的可用性可靠性鲁棒性可移植性各种性感觉都会有影响,说就直接 unicode 解决一切拯救世界这个,反正我这种老古董是很难直接就接受的。

反正这个问题真的困扰。为了规避这个问题,我反正常常在其实不需要的情况下强行拆出来结构甚至逻辑,使其完全脱离代码,别问,问就是可自定义,高扩展性,增加业务弹性…

嘛写了一些想法但也没有提出什么建设性的东西,总之我就当插个眼。
Daming
2020-06-26 06:32:41 +08:00
有些特定行业内的枚举值会使用中文,主要是那玩意基本没法正常翻译成英文。
xuanwu
2020-06-26 07:22:34 +08:00
xuanwu
2020-06-26 07:25:47 +08:00
这是之前在本站和他处看到的项目中用中文命名的例子汇集: https://www.v2ex.com/t/477109
hantsy
2020-06-26 08:22:08 +08:00
你们这些用中文应该从来没做过国际化的项目,如:多语言支持,本地化页面,虽然每个框架都会考虑国际化。
dttzmm
2020-06-26 08:59:07 +08:00
英语不行还是要补英语,找这么多借口不好
lululau
2020-06-26 09:08:50 +08:00
就算拼音首字母缩写也比汉字强啊,汉字输入效率太低,还有输入法切换的开销
murmur
2020-06-26 09:40:12 +08:00
只见过数据库中文,还没见过代码中文,但是有些行业用语真不是你抱着字典就能纠结出来的

又有人来吹国际化,你服务中国人都服务成那样还想着国际化,中国人的项目中国人开发中国人维护中国人使用,哪里能碰到国际化
murmur
2020-06-26 09:42:48 +08:00
说英语不行 xxx 的怕是不知道隔行如隔山,更不说有些行业是国内领先,我们用的就是自己的标准,去哪里翻译中文去
murmur
2020-06-26 09:45:28 +08:00
我举几个发电相关最基本的词:脱硫 脱硝 电除尘 这些词如果写成中文的话高中文化水平就可以理解,根本不需要文档

把脱硫翻译成英文,desulfurization,这个词怕是过了六级的都不知道啥意思
gwybiaim
2020-06-26 09:47:14 +08:00
有利于可读性,就可以做。
上面有人提到的无脑英语优先、切换输入法麻烦、视认性???、国际化、提升英语水平、输入效率的,都找不到编程的重点。
gwybiaim
2020-06-26 09:47:58 +08:00
另,中文也是联合国常用语言,很国际化
hakono
2020-06-26 09:52:01 +08:00
@hantsy 一个项目的用户可以国际化,但代码的开发维护者差不多都是固定国家的。
除非本身开发的项目涉及到国际外包,或者公司里不光有中国人还有大量其他国家的职员(这情况在日本美国倒是很常见),一般也不会遇到代码上有国际合作的情况。
slyang5
2020-06-26 10:03:47 +08:00
@Code418 你去看看日本的开源项目, 枚举一般都用日文了。嘻嘻 不知道你难受什么。人家项目是规范的很
pigspy
2020-06-26 10:09:07 +08:00
我一个同事跟我吐槽过,以前做对日项目的时候,本子写的老代码里面英文变量名音读训读一起来,个别变量还用片假名

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

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

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

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

© 2021 V2EX