• 请不要在回答技术问题时复制粘贴 AI 生成的内容
FakeLeung
V2EX  ›  程序员

大家对于中文变量名是如何看待的?

  FakeLeung · Nov 1, 2019 · 34871 views
This topic created in 2561 days ago, the information mentioned may be changed or developed.

恕我愚昧,实在是不想翻译各种奇怪的名称了,直接用中文当作变量名简洁明了(对于我来说)

不知道大家如何看待中文变量名的?

317 replies  •  2019-12-17 14:53:19 +08:00
1  2  3  4  
❮ ❯
xavierniu
xavierniu
Nov 1, 2019 via iPhone❤️47
1
你别说 这个代码格式配合中文变量名 还挺好看…
jipaidian
jipaidian
Nov 1, 2019❤️1
2
适合自己的就是最好的
QingXuJiaZhi
QingXuJiaZhi
Nov 1, 2019 via iPad❤️21
3
讲道理,非面向国际的开源项目,用中文利大于弊。不过很多人会有民族自卑感。
7sj525bL0Wy7FOx9
7sj525bL0Wy7FOx9
Nov 1, 2019
4
求配色
viko16
viko16
Nov 1, 2019 via Android❤️7
5
我觉得这种场景中就挺好的,想英文名反而难理解
blankme
blankme
Nov 1, 2019 via Android❤️6
6
还不如用拼音呢,用中文切输入法得累死。。。
lxk11153
lxk11153
Nov 1, 2019❤️1
7
没什么问题呀,比拼音首字母好多了
binbinyouliiii
binbinyouliiii
Nov 1, 2019
8
不遇到还好,遇到编码问题就麻烦了
xctcc
xctcc
Nov 1, 2019❤️2
9
你这个用中文确实好理解
z1s23
z1s23
Nov 1, 2019 via iPhone❤️2
10
你这个确实难翻译,还别说,这样看去还挺工整,哈哈
secondwtq
secondwtq
Nov 1, 2019❤️1
11
居然没人 @辣个蓝人
taogen
taogen
Nov 1, 2019❤️1
12
还是按照规范来吧,变量名用英文。

你用中文,我用英文,他用日文。。。不乱套了吗?

某些场合可能不支持中文,或者需要配置才支持中文,如 vim,server terminal 等,可能导致乱码,或抛出异常。

建议读一下《 clean code 》
jin7
jin7
Nov 1, 2019
13
看上去还不错
弄了个 中-->英 变量命名脚本
https://getquicker.net/Sharedaction?code=3682097b-a5cb-4293-67a2-08d71837d942
greatdancing
greatdancing
Nov 1, 2019 via Android❤️1
14
中英文切换累死人
fhsan
fhsan
Nov 1, 2019❤️3
15
没问题,只要清晰好维护就行。
JsonLee
JsonLee
Nov 1, 2019 via iPhone
16
若非不是全中文,中英混合切输入法都累死;如果是全中文,真的要敲多好多次键盘。
xkzhangsan
xkzhangsan
Nov 1, 2019
17
有可能会出现编码问题,比如乱码。
controller
controller
Nov 1, 2019 via Android
18
写起来不方便,且,可能会有莫名其妙的错误,为避免踩坑,不推荐。。
ayase252
ayase252
Nov 1, 2019
19
自动补全什么的可以识别吗?
Jirajine
Jirajine
Nov 1, 2019 via Android
20
这种情况没问题,用中文对中文母语者来说可读性很高。
但一般情况,除了国际化,编码之外,用中文最大的问题是不好输入。
只要不用拼音和一些特别奇葩的缩写就好。
nemo95
nemo95
Nov 1, 2019 via Android
21
这来回切输入法不是要疯了
linvaux
linvaux
Nov 1, 2019
22
打!往死里打!
QingXuJiaZhi
QingXuJiaZhi
Nov 1, 2019 via iPad❤️11
23
切换中英文是按一下 shift

而英文切换大小写是按一下 caplock 或按住 shift

如果上面这些中文改成英文,必然中间会需要转换大小写或增加下划线

结论是,中文变量名并没有增加按键次数。
ksedz
ksedz
Nov 1, 2019❤️1
24
可读性真不错,有些比较专业的词与其看那些蹩脚的英语,不如中文变量
essicaj
essicaj
PRO
Nov 1, 2019
25
这种情况如果用英文或者拼音,多多少少都要配上个注释才好读懂。加上注释的话,一旦发生变更,变量名一改注释也得跟着改。再加上注释会增大代码的行数,怎么都没有直接用中文的简洁。只是不知道 ide 对中文的支持到什么程度,包括像拼写错误提示、重构、输入提示可能都会失效
miaomiao888
miaomiao888
Nov 1, 2019
26
可以,相当简洁明了
shily
shily
Nov 1, 2019 via Android
27
@linvaux 不是拉出去弹死?
FakeLeung
FakeLeung
OP
Nov 1, 2019
28
@binbinyouliiii #8
我是看过了,webpack 打包后,不会有中文的,全部变成了 abcd。
FakeLeung
FakeLeung
OP
Nov 1, 2019
29
@niuxuewei #1
@LionXen #4

vscode 的 palenight theme.
FakeLeung
FakeLeung
OP
Nov 1, 2019❤️4
30
@ayase252 #19
有的

FakeLeung
FakeLeung
OP
Nov 1, 2019❤️1
31
@nemo95 #21
@blankme #6
其实切换也就按 caps 一下而已,比 shift+-要快多了。
shiji
shiji
Nov 1, 2019❤️1
32
我觉得你这种情况用中文变量名非常合适。
loading
loading
Nov 1, 2019 via Android
33
知足吧,你还没见过拼音,不对,拼音首字母的。
robinchina
robinchina
Nov 1, 2019❤️10
34
挺好的。恕我直言,有多少程序是面向国际的?
blankme
blankme
Nov 1, 2019 via Android
35
@FakeLeung
混编的时候需要时刻注意输入法状态,不然会出现各种状况,比如移动光时标输入法出中文,标点全角半角错误。

用 markdown 写文字的时候这种情况最明显,不胜其烦。

当然可能用的输入法不同,所以体验有差异。
secsilm
secsilm
Nov 1, 2019 via Android
36
能行,有时候遇到实在不好翻译的时候我就用拼音
maomaomao001
maomaomao001
Nov 1, 2019
37
就算不知道,你谷歌翻译都行写个英文,实在不行,写拼音都比这个强,
你这个完全吧 ide 的自动补全都稿废了,而且还要切换
chendy
chendy
Nov 1, 2019
38
拼音就够用了
输入中文要切换输入法 /切换中英文,提示虽然有但是有点残
比如 应收工程款,用拼音的话,打 yS 基本就出来了
FakeLeung
FakeLeung
OP
Nov 1, 2019❤️1
39
@maomaomao001 #37
vscode 其实能识别的。
mamahaha
mamahaha
Nov 1, 2019
40
你这个函数也太大了吧,段落倒是挺工整的,这个风格也太让人无语了。
AV1
AV1
Nov 1, 2019❤️1
41
这是 JavaScript 吧,那就没问题了,不用在意上面那些“编码问题”,反正打包之后一个样。
FakeLeung
FakeLeung
OP
Nov 1, 2019
42
@mamahaha #40
没办法啊,要计算的东西真的有这么多,这还是只有 2 处地方用到。。。
Jirajine
Jirajine
Nov 1, 2019 via Android❤️1
43
@blankme 我用的 rime,一般这种情况可以直接强制全局英文标点,但快捷键有些还会有问题。
现代工具对 Unicode 支持性以及相当良好了,混编最大的问题还是输入不便。
还是那句话,用中文虽然糟糕,但也绝对比拼音和奇葩缩写高到不知哪里去了。
loqixh
loqixh
Nov 1, 2019❤️2
44
中文变量名信息量比英文大得多, 可以免除绝大部分注释和文档, 那些说切换麻烦的怕不是现在输入法, 不能设置中文状态输入英文标点
FakeLeung
FakeLeung
OP
Nov 2, 2019
45
@DOLLOR #41
是的,其实我特意看过打包后的代码,因为这些都是局部变量,所以可以被混淆,如果是作为对象的 key 就无法被混淆,就可能出现问题。
secondwtq
secondwtq
Nov 2, 2019❤️1
46
王垠前两天发了两条微博,大谈特谈”汉字拉丁化“的问题,认为非拼音文字都是”落后“的东西,并且顺便扣了很多帽子。

我的观点:一,王垠在 PL 之外的言论还是随便看看随便笑笑;二,开微博对于王垠来说也是错误的选择

不过换到楼主的问题,汉语没有一个易认的 Romanization 表示,确实导致不得不面对这种囧境,这大概是王垠的观点唯一站得住脚的场景
要做的话技术上也有难度 ... 因为亲身体验是,不仅对付输入法麻烦,就算是一段话里面频繁出现 Diacritical mark 也很麻烦 ... 更扯淡的是,三个桌面系统的中文输入法都差不多,但是输入 diacritical mark 的方式都不一样
gavindexu
gavindexu
Nov 2, 2019 via iPhone
47
命名时就是 this 和 last 的关系……
这个变量不难命名啊
McContax
McContax
Nov 2, 2019 via iPhone❤️1
48
习惯英文命名每次变量名都会花很多时间去构思,不用赶进度还好,赶进度就很 jb 烦,命名这种没有标准答案,不要用 123 abc 这种草草应对的变量名就好,避免踩坑最好确认用的编程语言对中文的支持程度

@secondwtq 这个人我也没怎么关注过,但是非拼音文字落后这种说法实在不能苟同,中文是世界上少有的 speaking system 和 writing system 分离的语言,就上手而言绝对比英文和法语之类的难,英文是能说就能写,但是中文需要额外支配资源来建立读音和图像的连结,这也是很多国人学英文单词总拼错的原因之一,这也是为什么很多外国电视台和视频不提供 subtitle 的原因,因为英语中你听到了你就知道了,而中文模式下的理解你需要听到再加上看到才能理解(用数据库的说法来解释就是在 select 的时候 when 语句要带两个条件,才能匹配出唯一值,只带读音或者图像其中一个只能匹配同音字或者同字不同音),但是这并不是说中文就是落后的就是过时的,正如游戏一样,越是复杂的游戏游玩系统在上手之后的可玩性就会越强,中文学习只要能跨过那段艰难的学习期其实一切都还是挺光明的。
anguiao
anguiao
Nov 2, 2019 via Android
49
我觉得没什么问题,只要看起来清晰明了就行。
不过上面有一个说得还是有道理的,汉字命名确实不利于补全。
laike9m
laike9m
Nov 2, 2019 via Android
50
that's fine
miyuki
miyuki
Nov 2, 2019 via Android
51
真要图一乐还得图一乐

自己喜欢就完事了,名字太长的时候我也愿意用汉字
kokutou
kokutou
Nov 2, 2019
52
没有输入法的时候。。。。
paopjian
paopjian
Nov 2, 2019 via Android❤️1
53
自己写可以接受,对于那些强制 UTF8 编码的语言也不会出现编码问题,但是要是跨平台多编码的情况得特别小心。
ericgui
ericgui
Nov 2, 2019
54
代码里不要用中文,实在需要,搞个翻译包
mozutaba
mozutaba
Nov 2, 2019❤️2
55
中文可以等宽,这点很爽。比如长宽高等,英文 long 就挂了
zjsxwc
zjsxwc
Nov 2, 2019 via Android❤️1
56
不喜欢中文编程,
由于编码不一致( vim 配置不一致,Linux 看 Windows 的 gbk 汉字等等),会碰到被删了半个汉字的情况
😂
zjsxwc
zjsxwc
Nov 2, 2019 via Android❤️2
57
小写拼音首字母+汉字 可以作为折中的办法,

比如 "bqfkbl 本期付款比例" "bzwchtngck 班组完成合同内工程款"

解决了想名字难,又解决了编码时输入难的问题。
s1E4GnZ4A2qGRyva
s1E4GnZ4A2qGRyva
Nov 2, 2019
58
@jin7 将标识符批量中翻英的 VSC 插件: https://github.com/program-in-chinese/vscode_english_chinese_dictionary

@cmdOptionKana 的确切换(shift)不一定更多。而且最近有时输入英文时不切换输入法,直接在中文输入状态下输入,还有点单词联想的感觉,比如搜狗下’inp’就有”input“。

@blankme 一般在编程时,我就切换输入法设置到”中文输入下使用英文标点“。

@FakeLeung form 下的是改不了吗?”in_fact_“读起来实在是。。。
s1E4GnZ4A2qGRyva
s1E4GnZ4A2qGRyva
Nov 2, 2019
59
@mozutaba 赞,等宽这个之前还没意识到。刚加到这里了《在代码中进行中文命名(类 /变量 /方法等)的优势》: https://zhuanlan.zhihu.com/p/40098652
masker0817
masker0817
Nov 2, 2019 via Android
60
我能说这些都不是很偏僻的词汇,其实是写的人英文不好的缘故吗?
binux
binux
Nov 2, 2019❤️17
61
源代码比起机器看得懂,让人看得懂更重要。
比起让别人看得懂,让自己看得懂更重要。
比起让外国人看得懂,让你的同事看得懂更重要。

在实现同样功能前提下,能让人很容易看懂的代码就是好代码。
打字速度慢?一个项目能有 20% 时间花在编码上吗?
zazalu
zazalu
Nov 2, 2019 via Android❤️2
62
比那些又臭又长还不懂啥意思的变量名好多了
sl0000
sl0000
Nov 2, 2019
63
经济学术语用英语真的是为难我等猿呀
a1562619919
a1562619919
Nov 2, 2019 via Android
64
@masker0817 漏了,看的人也不一定足够好
TangMonk
TangMonk
Nov 2, 2019 via iPhone❤️1
65
挺好的,有些很难翻译的我也用中文变量,这个时候反而更简洁易懂。
FynnRelx
FynnRelx
Nov 2, 2019 via iPad
66
好是好,到真是在线上这么搞我是不敢 逃
goodlg
goodlg
Nov 2, 2019 via Android
67
还是主流一点吧,不要这样命名,如果力求易懂,写好注释就可以,不管怎么说,自己喜欢就这样吧,自己看着舒服就好。
askfilm
askfilm
Nov 2, 2019❤️1
68
@FakeLeung 非常好!清晰易懂, 带给我很大的启示,打破思维禁锢。 另外汉字的表意完爆英文, 发挥的空间更大了
lwh0328
lwh0328
Nov 2, 2019 via iPhone
69
什么编辑器呀
ThomasZ
ThomasZ
Nov 2, 2019
70
以前编译器中文变量编译不过, 于是就习惯了拼音[doge]
zachlhb
zachlhb
Nov 2, 2019 via Android
71
不推荐,会遇到各种问题,再者翻译一些也不难的,另外不会写注释吗
ikw
ikw
Nov 2, 2019 via iPhone❤️7
72
进来之前是准备喷的,你这一张图片整得我不好开口了…
Hurriance
Hurriance
Nov 2, 2019❤️1
73
楼主这样的中文命名很规范啊!学到了学到了
orzorzorzorz
orzorzorzorz
Nov 2, 2019❤️2
74
本来进来准备看 v 众如何花式反对,但看了这张图我才发现,不是中文变量不好,是我见过的中文变量不够专业。讲道理,如果是这样的中文变量,跟规范不冲突我是一万个愿意的。
loqixh
loqixh
Nov 2, 2019
75
@masker0817 英文的固有缺陷, 不过有些人是不会承认的, 反而是为了省个字母缩写变成了所谓的 unix 哲学
realpg
realpg
Nov 2, 2019❤️2
76
@zachlhb #71
大胸弟,就图里这些你翻译一下试试,翻译完再找个同事阅读看能理解不
skiy
skiy
Nov 2, 2019
77
为什么就没有人发明拼音文输入法呢?带声调的。
中文的话,服务器如果不配置一下,打开会乱码。且打码时切换输入法很不方便啊。
chensuiyi
chensuiyi
Nov 2, 2019❤️1
78
开始用中文写代码。
musi
musi
Nov 2, 2019 via iPhone
79
在代码理解方面来说,中文的利大于弊,特别是一些专有名词,程序员还得一个一个查词典?但在程序运行方面来说,中文的弊大于利,编码就是个问题
ljspython
ljspython
Nov 2, 2019❤️1
80
居然还挺好看
DefoliationM
DefoliationM
Nov 2, 2019 via Android
81
看着就累。打中文比英文多打好多键呢
love
love
Nov 2, 2019
82
@realpg 这些都是专业名词吧,本身就不会很多,公司出个对照表让大家按上面的命名别自己发明不就行了
zachlhb
zachlhb
Nov 2, 2019 via Android
83
@realpg 我又不是没翻译过,再说注释是干嘛的
realpg
realpg
Nov 2, 2019❤️1
84
@zachlhb #83
你怕是没写过大型财务系统 每次引用变量都注释一下?还是回去翻注释定义 还是把字典打印出来放手头
Leigg
Leigg
Nov 2, 2019 via Android❤️1
85
难的是说服你以外的人。
lovestudykid
lovestudykid
Nov 2, 2019
86
英文没有空格就是不如中文容易看懂,信息密度就是没有中文高,再加上大多数中国人浏览英文的速度总是不如中文快。主要的阻碍就是输入速度了。
zhanao1994
zhanao1994
Nov 2, 2019 via Android❤️1
87
我觉得挺好的
Maxwells8
Maxwells8
Nov 2, 2019❤️1
88
中文命名可以做到词等宽,所以排版会更整齐
fpure
fpure
Nov 2, 2019 via Android❤️1
89
有一说一,效果还不错
zachlhb
zachlhb
Nov 2, 2019 via Android
90
@realpg 你用的什么编辑器?现在编辑器都可以直接提示定义变量时写的规范注释
QingXuJiaZhi
QingXuJiaZhi
Nov 2, 2019❤️2
91
@lovestudykid 输入速度中文反而是优势,首先按键次数不会增加,然后自动补全也是有的,不仅编辑器有补全,中文输入法本身也有补全。
redbuck
redbuck
Nov 2, 2019 via Android
92
webpack 可能没问题,但是 git 以及 git 生态里的工具可能会出问题,遇到过某个同事用的 diff 工具把源码里的中文都变乱码还提交的😔
weixiangzhe
weixiangzhe
Nov 2, 2019 via Android
93
打包后是 abcd 啊,冲这句 我之后也要试试
vipppppp
vipppppp
Nov 2, 2019
94
这是我见过最好看的中文变量编程了
但我还是不会用,感觉切输入法也麻烦还有就是在一些终端上不额外安装东西不支持中文字符。。。
iugo
iugo
Nov 2, 2019
95
我可以接受.

我在项目初期没有找到合适专业词汇的时候也会写中文变量名. 后面命名统一后会改.
bumz
bumz
Nov 2, 2019 via iPhone❤️1
96
私以为,楼主这种情况需要的不是变量
而是字典
FakeLeung
FakeLeung
OP
Nov 2, 2019
97
@weixiangzhe #93
一定要是局部变量,而且不能是对象键名。
FakeLeung
FakeLeung
OP
Nov 2, 2019
98
@bumz #96
不太懂什么叫字典。
liuzhiyong
liuzhiyong
Nov 2, 2019 via Android
99
我觉得不错,可读性非常好。读代码的时间一般大于写代码的时间,个人觉得可读性更重要。然后我遇到这种情况一般是拼音。
hubqin
hubqin
Nov 2, 2019❤️1
100
以前用过百度的 API,返回的数据,KEY 就是用中文,对于一些名字,翻译后反而不知道十个啥,还是直接中文好。
1  2  3  4  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1567 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 148ms · UTC 23:39 · PVG 07:39 · LAX 15:39 · JFK 18:39
♥ Do have faith in what you're doing.