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

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

  FakeLeung · 2019-11-01 21:38:00 +08:00 · 29242 次点击
这是一个创建于 1851 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

317 条回复    2019-12-17 14:53:19 +08:00
1  2  3  4  
xuanwu
    201
xuanwu  
   2019-11-03 20:37:53 +08:00
@nanjia 可以的. 之前写的 spring 的前后端使用中文命名演示: https://zhuanlan.zhihu.com/p/31417833

@cpdyj0 关于输入, 并非想象中的那么烦. 见 #23 #44 #58
ipwx
    202
ipwx  
   2019-11-03 20:49:01 +08:00
你这场景我觉得很合适嘛。我自己的场景一般用不着。

https://tva1.sinaimg.cn/large/006y8mN6ly1g8l4yo2pfnj30u011vtg2.jpg
xuanwu
    203
xuanwu  
   2019-11-03 21:00:53 +08:00
@ipwx #202 n_max_rows => 最大行数 n_cols => 列数 batch_size => 批量
readability 是蛮主观的东东, 反正自己和同事看着顺眼最大
xuanwu
    204
xuanwu  
   2019-11-03 21:17:22 +08:00
@FakeLeung 刚注意到高亮的一个问题, return 的数组里那些量是不是应该也是蓝色才对? 比如"付款比例"? 不知道类似的英文命名的高亮效果如何?
iPhoneXI
    205
iPhoneXI  
   2019-11-03 22:10:29 +08:00 via Android
挺舒服,有种看 excel 表格的感觉
FakeLeung
    206
FakeLeung  
OP
   2019-11-03 22:21:01 +08:00
@xuanwu #204
英文也是白色的。
FakeLeung
    207
FakeLeung  
OP
   2019-11-03 22:23:25 +08:00
@ZredoC #195
@EminemW #193
截图软件:xnip
编辑器:xcode
主题配色:palenight theme
字体:Menlo, Monaco, 'Courier New', monospace
xuanwu
    208
xuanwu  
   2019-11-03 23:07:28 +08:00
@FakeLeung #206 测了下我这里好像有高亮:
不知何故..

VSC 版本信息:

Version: 1.39.2
Commit: 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Date: 2019-10-15T15:33:00.827Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Darwin x64 17.7.0
HangoX
    209
HangoX  
   2019-11-03 23:20:05 +08:00   ❤️ 1
我觉得用来做枚举非常适合
mwr1998
    210
mwr1998  
   2019-11-04 00:36:28 +08:00
要是配合一款中文代码提示插件就更好了
mwr1998
    211
mwr1998  
   2019-11-04 00:38:26 +08:00   ❤️ 1
对了有一个问题,有时候 docker 某些容易报错 log 不出中文,别问我咋知道的(
mingl0280
    212
mingl0280  
   2019-11-04 04:52:22 +08:00 via Android   ❤️ 1
挺好的,反正客户又不是国际的,写中文没毛病。
我这有个库是从客户的共享代码里拷过来的,全是西班牙语,整个办公室没一个能看懂的……动都不敢动……不建议在对外的共享库里塞中文,但是自用的随便啦
JasonTsang
    213
JasonTsang  
   2019-11-04 05:47:02 +08:00
你不觉得烦?如果变量变成中文,你得频繁切换语言 ,真是只有更麻烦没有最麻烦。。。变量出现是最频繁的。而且定义变量和一些语法逻辑你却不能使用中文。我怕你效率会变得异常低。
murmur
    214
murmur  
   2019-11-04 08:28:26 +08:00   ❤️ 1
@JasonTsang 除了前端切页面,你可以算算一天有效的代码行数有多少,本土变量意味着我在给变量命名的时候思考时间=0,维护理解额外开销=0,准确度=100%,对着需求文档起名就对了
xuanwu
    215
xuanwu  
   2019-11-04 08:28:33 +08:00
@mwr1998 #210 有自动补全的, 见#30
log 不支持中文大概是编码问题? 这个不算中文命名标识符的锅哈

@mingl0280 #212 其实即使有 API 需要对外开放, 也可以做中英两套, 毕竟额外维护一套仅是命名不同的 API 的工作量相对有限( https://zhuanlan.zhihu.com/p/53050766 )
ganbuliao
    216
ganbuliao  
   2019-11-04 08:52:19 +08:00   ❤️ 1
又不是什么开源项目.内部使用 我觉得挺好的
xuanwu
    217
xuanwu  
   2019-11-04 08:52:34 +08:00
@murmur #214 实在精辟,在这里引用了一下哈: https://zhuanlan.zhihu.com/p/30529835

另外,
@FakeLeung 在头条引用了一下你的图: https://www.toutiao.com/a1649187086782467 如有不妥烦请告知。
wonderay
    218
wonderay  
   2019-11-04 08:53:44 +08:00
自己瞎翻译干什么,找一本会计书,看看附录不好吗
prof
    219
prof  
   2019-11-04 08:58:11 +08:00   ❤️ 1
不是拼音就行。
yufeInfo
    220
yufeInfo  
   2019-11-04 09:02:06 +08:00
刚知道 js 里可以用中文定义变量 去 vscode 试了下是 ok 但是感觉怪怪的
annielong
    221
annielong  
   2019-11-04 09:09:49 +08:00
个人觉得切输入法太麻烦,宁愿中文拼音加标注,鼠标放上去就能显示标注的中文,
nnnToTnnn
    222
nnnToTnnn  
   2019-11-04 09:09:50 +08:00   ❤️ 1
写代码是给机器运行的,并顺带给人阅读。

估计楼主是没吃过亏,偷偷告诉你 GBK 编码和 UTF-8 的编码不一样,除非你保证你系统中的编码是一样的并且编译 or 运行的环境支持中文,命名当然没问题,例如某某的易语言。

看楼主写的大概率是 js,目前 js 好像没有明确表示支持中文哟,祝你好运
nnnToTnnn
    223
nnnToTnnn  
   2019-11-04 09:12:11 +08:00
而且现在比较流行的是 约定>配置 你认为中文真的靠谱么?
nnnToTnnn
    224
nnnToTnnn  
   2019-11-04 09:16:13 +08:00   ❤️ 1
尽量不要使用非 ASCII 进行命名,这个显然是基础。 你用 a,b,c 命名都没关系,起码电脑识别,但是你用非 ASCII 的字符命名,完了,电脑不一定认识它了。比如一个很简单的例子。 你把代码上传到 gitlab 走的 cl ,结果 docker 里面没有这个编码,之后直接编译的时候就凉了
murmur
    225
murmur  
   2019-11-04 09:23:16 +08:00   ❤️ 1
@nnnToTnnn 如果是局部变量,那么压缩一下不就是 ascii 命名了,这样既保证可维护性又保证运行不会出错
代码是给机器运行的,维护也很重要,尤其是企业应用,一次开发几年都不会推了,这个和互联网的推倒频率没法比
murmur
    226
murmur  
   2019-11-04 09:26:57 +08:00
@ipwx 别人写这个算法的时候会附一篇完整论文作为参考写到注释里,拿着论文才能看懂整个代码,因为论文是英文的用英文变量甚至是 abcd 这些字母都是正常的
prodcd
    227
prodcd  
   2019-11-04 10:15:35 +08:00   ❤️ 1
有些有着明显用途的变量,像楼主这样用,我觉得挺好,不然还得编英文名再注释中文,英文编的不一定就贴切,别人看了还不一定认识。只要编译器不废话,就用着吧。
cmdOptionKana
    228
cmdOptionKana  
   2019-11-04 10:19:57 +08:00   ❤️ 1
看到不少人提编码问题,他们应该平时很少留意编码吧,Linux 体系里 utf8 成为事实标准已经很多年了,编码问题踩坑几率很小。不过事先做一些试验还是必要的,试验过编码没有问题就行,没必要过度担心。
zunceng
    229
zunceng  
   2019-11-04 10:21:09 +08:00
当年领导要求我写代码注释都必须用英文 原因是我们有海外员工。。。
pkoukk
    230
pkoukk  
   2019-11-04 10:23:14 +08:00
楼主你是没吃过编码的亏...
Chingim
    231
Chingim  
   2019-11-04 10:24:41 +08:00
切换输入法太累了.除非你用易语言, 不用切换输入法
zhangyangkam1
    232
zhangyangkam1  
   2019-11-04 10:31:07 +08:00   ❤️ 2
@blankme 拼音比中文还坑,多音字太多,还有很多人分不清平舌翘舌
no1xsyzy
    233
no1xsyzy  
   2019-11-04 10:37:35 +08:00   ❤️ 1
@xuanwu #208 需要注意的是,原图的 form e1 e2 e3 也不是蓝色,我估计是着色策略上的区别
cmdOptionKana
    234
cmdOptionKana  
   2019-11-04 10:39:22 +08:00   ❤️ 1
@pkoukk 楼主这是 js,上面楼主也说了 webpack 打包后变量名都被改为英文字母,不可能有编码问题。
index90
    235
index90  
   2019-11-04 10:42:43 +08:00
楼主你是没吃过编码的亏...+10086
ypzhou
    236
ypzhou  
   2019-11-04 10:44:16 +08:00
你叫接手你代码的人怎么活
index90
    237
index90  
   2019-11-04 10:46:20 +08:00
@cmdOptionKana js 开发都是 webpack 打包后再提交到 VCS 的?
dswyzx
    238
dswyzx  
   2019-11-04 10:55:50 +08:00   ❤️ 1
@blankme #35 实名反驳中英文全角半角
就想知道需要具体到全角标点的使用场景对于程序员能有多少,是在这用全角还是邮件用半角会被打死.最多年终汇报时候手动设置一下
剩下所有的时间都是:中文+半角标点.
shift 拯救所有切换
看看,我打完这么多字,就用了 shift 控制输入法,难受了吗?
'''
print('asdf')

'''
blankme
    239
blankme  
   2019-11-04 10:58:13 +08:00 via Android
@dswyzx
全角标点的宽度是和中文字体相适配的,混用真的很丑,比如你这段文字。。。
FakeLeung
    240
FakeLeung  
OP
   2019-11-04 11:10:01 +08:00
@index90 #235
愿闻其详?
mantout
    241
mantout  
   2019-11-04 11:20:27 +08:00
中英文的利弊大家说得很多了,我也说不出更多花样。虽然本贴下几乎一边倒的支持,保留我的态度吧。
no1xsyzy
    242
no1xsyzy  
   2019-11-04 11:34:23 +08:00   ❤️ 1
@xuanwu #208 需要注意的是,原图的 form 也不是蓝色,我估计是着色
@icylogic #183 你所说第三,之前楼主解释了是因为担心键名导致问题…… 后面有人说了 uglify 开两个设定之后键名也是没问题的。
@bumz #190 这数据结构从数学上来说就叫 Map,而且是多对一映射
hmxxmh
    243
hmxxmh  
   2019-11-04 11:38:02 +08:00   ❤️ 1
我觉得很好,说中英文切换麻烦能不能自己试下再来评论,按下 shift 的事,这么说英文大小写切换也麻烦了?
no1xsyzy
    244
no1xsyzy  
   2019-11-04 11:39:17 +08:00   ❤️ 2
@index90 编码的亏,吃过,但越来越少吃了,因为我即使极端情况也基本不再用 Windows 下的 Notepad 了,也不玩某些编码敏感的 R18 日本游戏了。
dswyzx
    245
dswyzx  
   2019-11-04 11:49:50 +08:00   ❤️ 1
@blankme 原来是丑拒.看来说的不在一个频道上...
再说了,一般 idea 提供的格式化都会在标点后加空格.完美覆盖你的宽度说法.
另.我们讨论的是编码的时候怎么样方便.期待你打开输入法设置中文输入英文标点写几次代码再回来探讨这个问题.
blankme
    246
blankme  
   2019-11-04 12:07:34 +08:00 via Android
@dswyzx
你上个回帖可以另开一个帖子:中文内容完全使用英文标点好不好看(即使加了空格)

我个人是觉得不好看的

所以就有个衍生问题,写代码要设置全局英文标点,摸鱼发帖又要改成中文标点 orz...
murmur
    247
murmur  
   2019-11-04 12:09:53 +08:00   ❤️ 1
亏是总有人要吃的,坑总有人要踩的,这是真的解决问题,不是中文关键字中文编程在瞎胡闹
中文变量名、中文数据库解决了什么问题?
中国人开发、中国人设计、中国人维护、中国人使用的程序,居然要全翻译成英文变量,为什么
明明是中国领先、中国标准的技术,却要强行翻译英文,给谁看
你开发一个武侠游戏,你设计了一个系统叫洗练,但是这个词没有翻译,于是你想到魔兽世界有个东西叫重铸,最后你打开魔兽世界的英文 wiki 去看相关资料,折腾不
为了一个中文软件的变量命名,你说我还在用高中词汇,我说他用语不够 native,撕来撕去有意思么
QdouHuiQwaiLai
    248
QdouHuiQwaiLai  
   2019-11-04 12:09:59 +08:00   ❤️ 1
比拼音 好多了
murmur
    249
murmur  
   2019-11-04 12:11:46 +08:00   ❤️ 1
说什么编码坑的,为什么洋人的东西那么香,国外公司出了新框架新技术都抢破头去尝试,你咋不说坑了
等到真正解决问题的时候坑坑坑都出来了
说白了还是行业软件没话语权
cigarzh
    250
cigarzh  
   2019-11-04 12:49:06 +08:00
你是领导,没问题
dif
    251
dif  
   2019-11-04 13:38:04 +08:00
@prof 拼音不可怕,可怕的是拼音缩写。
ech0x
    252
ech0x  
   2019-11-04 13:47:15 +08:00 via iPhone
@murmur 对不起,洋人就是那么香。要不你也搞一个香的起来东西。
jccg90
    253
jccg90  
   2019-11-04 14:36:07 +08:00 via Android   ❤️ 1
现代的编程语言,用中文毫无压力。

我觉得,用中文变量,比用英文水平捉急的变量再额外写一堆注释避免误解,要强得多

编程语言和规范是为了业务服务的,自然哪种方法效率高用哪种
ragnaroks
    254
ragnaroks  
   2019-11-04 14:38:28 +08:00
维护的人觉得可以那就可以
Leonard
    255
Leonard  
   2019-11-04 14:40:01 +08:00
不是 emoji 变量名我就能接受
ragnaroks
    256
ragnaroks  
   2019-11-04 14:40:12 +08:00
另外方法内变量,我习惯习惯用类型首字母+序号,比如字符串就是"s1",布尔型就是"b1",我工作 5 年多以来从没有接手的人说看不懂或者理解困难的
bbao
    257
bbao  
   2019-11-04 14:41:44 +08:00
没毕业咋写都没人管
piaochen0
    258
piaochen0  
   2019-11-04 16:04:12 +08:00
虽然大部分时候可能都没太大问题,但是某些情况下,要是因为中文变量名出了一些诡异的问题,到时候连哭的地方都没有
nnnToTnnn
    259
nnnToTnnn  
   2019-11-04 16:05:35 +08:00
@murmur

```
说什么编码坑的,为什么洋人的东西那么香,国外公司出了新框架新技术都抢破头去尝试,你咋不说坑了
等到真正解决问题的时候坑坑坑都出来了
说白了还是行业软件没话语权
```


当你说这句话的时候,我可以很肯定的告诉你,真正问题解决的时候并不是有了行业软件的话语权,而是形成所谓的孤岛。


其次为什么要用洋人的东西?

并不是要用洋人的东西,而是要和国外的人交流,你用的可能是 python 可能是 golang 可能是 ruby 也可能是 js,这些生态并不仅仅只是一个国家搞定的,而是需要全世界的人进行交流然后创造出来了。

如果每个国家一门语言,那么必然加大了沟通成本,以及开发成本,所以尽量统一一门语言。

那么统一什么语言比较好? 日语,简体中文,繁体中文,英语还是西班牙语? 显然为了大家的沟通成本应该选择大家都比较熟悉的语言,那么很显然就是英语,因为英语是世界通用语言

其次,最早的时候是洋人搞的计算机,而不是我们搞出来的,尊重别人的劳动成果我也觉得没啥。




------------------------------------------------------

其次你的思想里面有种垄断的意思,在软件行业中没有所谓的话语权,只有谁的贡献最大,例如 Spring 或者 linux 或者微软
virtual2019
    260
virtual2019  
   2019-11-04 16:32:17 +08:00   ❤️ 1
@dif #251 拼音也可怕。。。拼音重码率太高了,看到一个词的拼音很难直接反应过来是哪个词,更别说没有声调的拼音了。用拼音真还不如直接用汉字。。。
Very0ldMan
    261
Very0ldMan  
   2019-11-04 17:12:29 +08:00
本来是觉得挺不靠谱的,但是进来一看代码写得工工整整的,一时之间也不知道该说点什么了哈 (≧∇≦), 变量名正好数字都相同,如果不同的话,可能看起来就会劝退别人了
ps1aniuge
    262
ps1aniuge  
   2019-11-04 19:16:50 +08:00   ❤️ 1
支持中文变量名~~~~~~~~~~~~~~~~~~~!
ChengLuffy
    263
ChengLuffy  
   2019-11-04 19:19:51 +08:00 via iPhone
我见过 emoji 命名,我敲都敲不出来
murmur
    264
murmur  
   2019-11-04 19:30:52 +08:00   ❤️ 1
@nnnToTnnn 你没看懂我的问题
我的问题是,我开发中国人设计、中国人用、中国人维护、中国人制定行业标准还领先世界的东西
为什么要考虑外国人的感受,结果搞得自己人命名读代码都成了老大难的问题,你写一个英文变量,还得后面注释写中文什么意思
luoway
    265
luoway  
   2019-11-04 20:40:10 +08:00   ❤️ 1
看了下评论反对理由:
1. 切换输入法麻烦——不会用输入法,设置一下即可一键切换中英文,比 JS 命名规范中的“大小写”简单多了
2. 编码问题——浏览器开发时往往会在 meta 设置字符集 utf-8,覆盖默认的 GBK ; Nodejs 只支持 utf-8 ;
3. low——民族自卑感
4. 自动补全——VSCode、WebStorm 两大主流编辑器均支持
5. 不能用英文编程规范——没有外国人可以教你中文编程规范

也许一些观点是站在非 JS 开发者自身的角度在评论,但对于频繁更新而又满是兼容性问题的 JS 而言,支持中文变量名不是问题,问题是你用不用。你用,就有同样的 JS 开发者借助 babel 帮你解决一切问题。
iYoloyolo
    266
iYoloyolo  
   2019-11-04 20:55:15 +08:00
看了你的这种代码,反正我是不愿意成为你的同事的
PinLock
    267
PinLock  
   2019-11-04 22:14:07 +08:00   ❤️ 1
讨论三页了,就看人说不合适,有人说太“低级”( low ),就没人说一下,这“班组完成合同内工程款”怎么翻译。以我有限的英语能力外加翻译软件帮助,我没找到比较贴切合适的翻译作为变量名,望哪位能者能帮忙翻译一下,先行谢过了。
Seanfuck
    268
Seanfuck  
   2019-11-04 23:28:08 +08:00 via iPhone   ❤️ 1
挺好的,中文应用应该推广使用中文变量。楼上有些说的编码问题根本不事,而是习惯问题。
xuanwu
    269
xuanwu  
   2019-11-05 01:08:08 +08:00   ❤️ 1
@Very0ldMan #261 以之前的实践经验,一般来说中文命名更容易齐整,比如这里列出的对比: https://zhuanlan.zhihu.com/p/33993440 @HangoX #209 枚举来了



中文命名:

shiny
    270
shiny  
   2019-11-05 01:20:49 +08:00   ❤️ 1
之前也遇到过类似问题,有些术语实在很难翻译出来,用中文做变量,清晰易懂,便于维护。
qianji201712
    271
qianji201712  
   2019-11-05 01:26:12 +08:00
写这种代码的大神,有一个简称——傻逼
foo256
    272
foo256  
   2019-11-05 01:45:53 +08:00   ❤️ 1
说会出现编码问题的,可能是上古程序员,用着上古的文本编辑器,写上古编程语言。中文变量完全没问题
foo256
    273
foo256  
   2019-11-05 01:52:50 +08:00
@maomaomao001 你用的什么 ide 啊,我的 ide 中文变量也可以自动补全啊
FrankHB
    274
FrankHB  
   2019-11-05 03:30:47 +08:00   ❤️ 1
和业务文档能直接对应,需要应对的涉众能懂就没问题。
非得生造需求瞎翻译增加成本的乱棍打出去。
FrankHB
    275
FrankHB  
   2019-11-05 03:35:02 +08:00
@cmdOptionKana 用拼音技术上就是 low:重码率高得发指,没事增加歧义,在绝大多数正常的中文用户眼里就是抽。
另外你得正视还有不少人拼音不如汉字水平的,以及拼音编码本身就有争议会引起文化冲突。
murmur
    276
murmur  
   2019-11-05 08:13:51 +08:00
@Livid #271
nnnToTnnn
    277
nnnToTnnn  
   2019-11-05 08:51:10 +08:00
@murmur

```
我开发中国人设计、中国人用、中国人维护、中国人制定行业标准还领先世界的东西
为什么要考虑外国人的感受,结果搞得自己人命名读代码都成了老大难的问题,你写一个英文变量,还得后面注释写中文什么意思
```

没错,易语言不就是这样的产物吗? 开源社区都提倡减少沟通成本,大家都尽量采用大家都知道语言来进行开发维护,
你一个中文编程,命名中文,每个操作系统都不一样,编码都不同会导致很多的错误。

其次

```
你写一个英文变量,还得后面注释写中文什么意思
```

我最早开始学编程的时候,偷偷的告诉你我那个时候没有变量的概念,只有寄存器。对,没错当时我因为 od 和 ce 入了编程行业,还记得当时用汇编调用 win32 接口做桌面开发。

你可以下载易语言编程一下看看,大部分是
```
如果



```
还有什么 循环,说实话我虽然英语不好,甚至没有怎么学过小学英语,但是我感觉 if for 比如果 则 很方便别人理解。

我最开始用用过易语言。 你可以试试就知道了。


```
中国人设计、中国人用、中国人维护、中国人制定行业标准还领先世界的东西
为什么要考虑外国人的感受
```

不感苟同这个观念,我认为标准是大家都认同,且一起定制的,而不是所谓的中国人定制。
aaronhua
    278
aaronhua  
   2019-11-05 09:40:40 +08:00
你这排版格式,用中英文看起来都整洁啊。即使英文也很容易懂。但是,中文变量不代表可以不用注释。接手过,那种一千多行一个方法的代码,还中文变量,没有注释。一堆中文变量,密密麻麻,看得头晕。排版、注释、模块化才是重点。中文变量在代码烂的时候,表现得更差。
myfei
    279
myfei  
   2019-11-05 10:31:15 +08:00
不好,别用,看到有人用直接打死。
举个简单的例子 我们定义一个变量
let leader = "小明"
我每次再用到 leader 这个变量时,只需要打出 le 两个字母 IDE 就会提示出来,回车选择就可以直接用了。
假设你是这么定义的
let 领导者 = "小明"
你每次用的时候,就算有中文的编写提示,至少得把「领」字打出来吧。 它需要打出 ling 然后再去选择正确的领字。
还是说你每次用到某个变量,就要把变量名复制一下,再粘贴??
还有上面各位说的编码问题,兼容问题。
Jrue0011
    280
Jrue0011  
   2019-11-05 10:31:47 +08:00   ❤️ 1
还行啊,这个格式看起来挺舒服,我一般只介意代码读起来会不会难受,abcd 那种才是坑
masker0817
    281
masker0817  
   2019-11-05 10:38:52 +08:00 via Android
@myfei 我昨天也试了下,确实是这样。不到不得已还是不用中文变量名。Shift 按多了也累的
hoosin
    282
hoosin  
   2019-11-05 11:19:14 +08:00   ❤️ 1
JavaScript 居然可以用中文命名了~
usagi
    283
usagi  
   2019-11-05 12:46:10 +08:00 via Android   ❤️ 1
莫名好看是怎么回事
xuanwu
    284
xuanwu  
   2019-11-05 12:52:35 +08:00
@myfei 不妨就事论事,回应一下 #267 的疑问:这“班组完成合同内工程款”怎么翻译
以及其他几个截图中的中文变量吧

@hoosin 市面上常用的绝大多数都支持了: https://zhuanlan.zhihu.com/p/30886931
Python3 应该是 2008 年就支持了: https://zhuanlan.zhihu.com/p/31598712
刚看了一下 JS 貌似在 ECMAScript 5 就支持了( 2012 年?): https://mathiasbynens.be/notes/javascript-identifiers
bertonzh
    285
bertonzh  
   2019-11-05 13:03:14 +08:00
我认为挺好,虽然我没有这样用
KasonPasser
    286
KasonPasser  
   2019-11-05 13:05:29 +08:00   ❤️ 1
所有高级语言的代码都是为了方便人的理解,如果不是,请用汇编。我个人觉得只要是好理解,所有的合法变量名都可以使用。
ayanmw
    287
ayanmw  
   2019-11-05 13:41:44 +08:00
函数内部 自己用用就行了, API 你用一个试试..
还有 类似 if 和 `如果`
所以部分变量可以用中文,仅限 难翻译,英文别扭的~

另外 程序员的自我修养: 兼容上下文的语法和规则,别人没用,你最好也别用! 尽量跟上下文风格一致,除非上下文本身有重大问题的!
xuanwu
    288
xuanwu  
   2019-11-05 13:49:05 +08:00
@ayanmw #287 发布到 maven 的中文 API:
myfei
    289
myfei  
   2019-11-05 14:20:59 +08:00
@xuanwu 若是他们真的要定义一个像『班组完成合同内工程款』这种变量名字,我觉得他们代码设计有问题。
这种东西最后出来的不应该是 Team.contract.cash 这样的。
xuanwu
    290
xuanwu  
   2019-11-05 14:38:19 +08:00
@myfei #289 设计可以另开讨论。从命名来说,Team.contract.cash <=> 班组.工程款.合同内,高下立判?如 @murmur #214 所言,沿用需求、设计文档的术语很顺其自然,不用额外命名 /理解开销。
hoosin
    291
hoosin  
   2019-11-05 15:00:01 +08:00   ❤️ 1
@xuanwu 查了只要支持 unicode 的语言都支持
myfei
    292
myfei  
   2019-11-05 15:09:48 +08:00
@xuanwu
首先我们能用到的变量名,其实就个名词,通常不会太复杂。其实就算用中文变量名,注释也不是就不用写了。
再者,我还是那个观点,像英语这种语言,26 个字母排列组合,用现有键盘输入天然就比中文输入方便,使用起来也方便。
最后写代码讲究一个连贯性,在写的过程中,时不时切换中英文是很破坏这种连贯性的。
xuanwu
    293
xuanwu  
   2019-11-05 16:02:39 +08:00
@myfei "本期“,”工程款“,”保修金“, 仅是上面的几个术语我就一时不确定恰当英文。更不用说即使翻词典找到直译后,过段时间再看的再理解成本了。
以前可读性审核时,目标就是用恰当的命名取代注释。
写代码过程中,想破头起英文命名的比比皆是。
至于切换,一键搞定。见 #238 #243 #265,不用说英文驼峰之类本身也需 shift, 见 #23
k10ndike
    294
k10ndike  
   2019-11-05 16:05:29 +08:00   ❤️ 2
我觉得挺好,有些语言官方教程就表明支持中文变量了
https://i.loli.net/2019/11/05/hy7doqfXPS4lGvD.png
a4854857
    295
a4854857  
   2019-11-05 17:21:15 +08:00   ❤️ 1
挺不错的,反正 js 混淆了以后都是 abcde, 不会出现编码不支持的问题。。
hmxxmh
    296
hmxxmh  
   2019-11-05 17:29:01 +08:00
@k10ndike 表情变量。。。哈哈
fayloue
    297
fayloue  
   2019-11-05 17:34:40 +08:00   ❤️ 1
用中文非常清晰明了
1a0ma0
    298
1a0ma0  
   2019-11-05 18:17:51 +08:00
个人项目可以(拼音算了,太容易出现歧义了),要是团队的话,我感觉还是用英文好。
zpfhbyx
    299
zpfhbyx  
   2019-11-05 18:20:18 +08:00
只有我是嫌打中文麻烦么.
xuanwu
    300
xuanwu  
   2019-11-06 02:02:48 +08:00
@1a0ma0 #298 团队使用中文命名更能体现优势。英文水平参差不齐,对词语理解也有差异。但中文需求 /设计文档大家都应该看过,这就已经有个中文术语共识。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3128 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 14:02 · PVG 22:02 · LAX 06:02 · JFK 09:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.