恕我愚昧,实在是不想翻译各种奇怪的名称了,直接用中文当作变量名简洁明了(对于我来说)
不知道大家如何看待中文变量名的?
![]() | 1 niuxuewei 2019-11-01 21:39:35 +08:00 via iPhone ![]() 你别说 这个代码格式配合中文变量名 还挺好看… |
2 jipaidian 2019-11-01 21:42:51 +08:00 ![]() 适合自己的就是最好的 |
![]() | 3 cmdOptionKana 2019-11-01 21:43:11 +08:00 via iPad ![]() 讲道理,非面向国际的开源项目,用中文利大于弊。不过很多人会有民族自卑感。 |
![]() | 4 7sj525bL0Wy7FOx9 2019-11-01 21:43:54 +08:00 求配色 |
![]() | 5 viko16 2019-11-01 21:44:52 +08:00 via Android ![]() 我觉得这种场景中就挺好的,想英文名反而难理解 |
![]() | 6 blankme 2019-11-01 21:45:05 +08:00 via Android ![]() 还不如用拼音呢,用中文切输入法得累死。。。 |
![]() | 7 lxk11153 2019-11-01 21:45:18 +08:00 ![]() 没什么问题呀,比拼音首字母好多了 |
![]() | 8 binbinyouliiii 2019-11-01 21:46:10 +08:00 不遇到还好,遇到编码问题就麻烦了 |
![]() | 9 xctcc 2019-11-01 21:46:12 +08:00 ![]() 你这个用中文确实好理解 |
10 z1s23 2019-11-01 21:48:04 +08:00 via iPhone ![]() 你这个确实难翻译,还别说,这样看去还挺工整,哈哈 |
![]() | 11 secondwtq 2019-11-01 21:48:04 +08:00 ![]() 居然没人 @辣个蓝人 |
12 taogen 2019-11-01 21:51:13 +08:00 ![]() 还是按照规范来吧,变量名用英文。 你用中文,我用英文,他用日文。。。不乱套了吗? 某些场合可能不支持中文,或者需要配置才支持中文,如 vim,server terminal 等,可能导致乱码,或抛出异常。 建议读一下《 clean code 》 |
13 jin7 2019-11-01 21:57:25 +08:00 |
![]() | 14 greatdancing 2019-11-01 21:59:31 +08:00 via Android ![]() 中英文切换累死人 |
![]() | 15 fhsan 2019-11-01 22:00:33 +08:00 ![]() 没问题,只要清晰好维护就行。 |
![]() | 16 JsonLee 2019-11-01 22:03:06 +08:00 via iPhone 若非不是全中文,中英混合切输入法都累死;如果是全中文,真的要敲多好多次键盘。 |
![]() | 17 xkzhangsan 2019-11-01 22:03:09 +08:00 有可能会出现编码问题,比如乱码。 |
18 controller 2019-11-01 22:03:19 +08:00 via Android 写起来不方便,且,可能会有莫名其妙的错误,为避免踩坑,不推荐。。 |
![]() | 19 ayase252 2019-11-01 22:10:55 +08:00 自动补全什么的可以识别吗? |
![]() | 21 nemo95 2019-11-01 22:13:44 +08:00 via Android 这来回切输入法不是要疯了 |
![]() | 22 linvaux 2019-11-01 22:22:30 +08:00 打!往死里打! |
![]() | 23 cmdOptionKana 2019-11-01 22:24:28 +08:00 via iPad ![]() 切换中英文是按一下 shift 而英文切换大小写是按一下 caplock 或按住 shift 如果上面这些中文改成英文,必然中间会需要转换大小写或增加下划线 结论是,中文变量名并没有增加按键次数。 |
![]() | 24 ksedz 2019-11-01 22:24:57 +08:00 ![]() 可读性真不错,有些比较专业的词与其看那些蹩脚的英语,不如中文变量 |
25 essicaj 2019-11-01 22:29:54 +08:00 这种情况如果用英文或者拼音,多多少少都要配上个注释才好读懂。加上注释的话,一旦发生变更,变量名一改注释也得跟着改。再加上注释会增大代码的行数,怎么都没有直接用中文的简洁。只是不知道 ide 对中文的支持到什么程度,包括像拼写错误提示、重构、输入提示可能都会失效 |
![]() | 26 miaomiao888 2019-11-01 22:30:43 +08:00 可以,相当简洁明了 |
![]() | 28 FakeLeung OP @binbinyouliiii #8 我是看过了,webpack 打包后,不会有中文的,全部变成了 abcd。 |
![]() | 31 FakeLeung OP ![]() |
![]() | 32 shiji 2019-11-01 22:50:23 +08:00 ![]() 我觉得你这种情况用中文变量名非常合适。 |
![]() | 33 loading 2019-11-01 22:50:39 +08:00 via Android 知足吧,你还没见过拼音,不对,拼音首字母的。 |
![]() | 34 robinchina 2019-11-01 22:52:35 +08:00 ![]() 挺好的。恕我直言,有多少程序是面向国际的? |
![]() | 35 blankme 2019-11-01 23:11:30 +08:00 via Android @FakeLeung 混编的时候需要时刻注意输入法状态,不然会出现各种状况,比如移动光时标输入法出中文,标点全角半角错误。 用 markdown 写文字的时候这种情况最明显,不胜其烦。 当然可能用的输入法不同,所以体验有差异。 |
![]() | 36 secsilm 2019-11-01 23:14:18 +08:00 via Android 能行,有时候遇到实在不好翻译的时候我就用拼音 |
![]() | 37 maomaomao001 2019-11-01 23:15:38 +08:00 就算不知道,你谷歌翻译都行写个英文,实在不行,写拼音都比这个强, 你这个完全吧 ide 的自动补全都稿废了,而且还要切换 |
![]() | 38 chendy 2019-11-01 23:16:19 +08:00 拼音就够用了 输入中文要切换输入法 /切换中英文,提示虽然有但是有点残 比如 应收工程款,用拼音的话,打 yS 基本就出来了 |
![]() | 39 FakeLeung OP ![]() |
![]() | 40 mamahaha 2019-11-01 23:39:33 +08:00 你这个函数也太大了吧,段落倒是挺工整的,这个风格也太让人无语了。 |
![]() | 41 AV1 2019-11-01 23:40:48 +08:00 ![]() 这是 Javascript 吧,那就没问题了,不用在意上面那些“编码问题”,反正打包之后一个样。 |
43 Jirajine 2019-11-01 23:44:41 +08:00 via Android ![]() @blankme 我用的 rime,一般这种情况可以直接强制全局英文标点,但快捷键有些还会有问题。 现代工具对 Unicode 支持性以及相当良好了,混编最大的问题还是输入不便。 还是那句话,用中文虽然糟糕,但也绝对比拼音和奇葩缩写高到不知哪里去了。 |
44 loqixh 2019-11-01 23:52:32 +08:00 ![]() 中文变量名信息量比英文大得多, 可以免除绝大部分注释和文档, 那些说切换麻烦的怕不是现在输入法, 不能设置中文状态输入英文标点 |
![]() | 45 FakeLeung OP @DOLLOR #41 是的,其实我特意看过打包后的代码,因为这些都是局部变量,所以可以被混淆,如果是作为对象的 key 就无法被混淆,就可能出现问题。 |
![]() | 46 secondwtq 2019-11-02 00:06:49 +08:00 ![]() 王垠前两天发了两条微博,大谈特谈”汉字拉丁化“的问题,认为非拼音文字都是”落后“的东西,并且顺便扣了很多帽子。 我的观点:一,王垠在 PL 之外的言论还是随便看看随便笑笑;二,开微博对于王垠来说也是错误的选择 不过换到楼主的问题,汉语没有一个易认的 Romanization 表示,确实导致不得不面对这种境,这大概是王垠的观点唯一站得住脚的场景 要做的话技术上也有难度 ... 因为亲身体验是,不仅对付输入法麻烦,就算是一段话里面频繁出现 Diacritical mark 也很麻烦 ... 更扯淡的是,三个桌面系统的中文输入法都差不多,但是输入 diacritical mark 的方式都不一样 |
47 gavindexu 2019-11-02 00:27:04 +08:00 via iPhone 命名时就是 this 和 last 的关系…… 这个变量不难命名啊 |
48 McContax 2019-11-02 00:30:23 +08:00 via iPhone ![]() 习惯英文命名每次变量名都会花很多时间去构思,不用赶进度还好,赶进度就很 jb 烦,命名这种没有标准答案,不要用 123 abc 这种草草应对的变量名就好,避免踩坑最好确认用的编程语言对中文的支持程度 @secondwtq 这个人我也没怎么关注过,但是非拼音文字落后这种说法实在不能苟同,中文是世界上少有的 speaking system 和 writing system 分离的语言,就上手而言绝对比英文和法语之类的难,英文是能说就能写,但是中文需要额外支配资源来建立读音和图像的连结,这也是很多国人学英文单词总拼错的原因之一,这也是为什么很多外国电视台和视频不提供 subtitle 的原因,因为英语中你听到了你就知道了,而中文模式下的理解你需要听到再加上看到才能理解(用数据库的说法来解释就是在 select 的时候 when 语句要带两个条件,才能匹配出唯一值,只带读音或者图像其中一个只能匹配同音字或者同字不同音),但是这并不是说中文就是落后的就是过时的,正如游戏一样,越是复杂的游戏游玩系统在上手之后的可玩性就会越强,中文学习只要能跨过那段艰难的学习期其实一切都还是挺光明的。 |
![]() | 49 anguiao 2019-11-02 00:49:09 +08:00 via Android 我觉得没什么问题,只要看起来清晰明了就行。 不过上面有一个说得还是有道理的,汉字命名确实不利于补全。 |
50 laike9m 2019-11-02 00:52:49 +08:00 via Android that's fine |
![]() | 51 miyuki 2019-11-02 01:12:25 +08:00 via Android 真要图一乐还得图一乐 自己喜欢就完事了,名字太长的时候我也愿意用汉字 |
![]() | 52 kokutou 2019-11-02 01:15:25 +08:00 没有输入法的时候。。。。 |
53 paopjian 2019-11-02 01:18:38 +08:00 via Android ![]() 自己写可以接受,对于那些强制 UTF8 编码的语言也不会出现编码问题,但是要是跨平台多编码的情况得特别小心。 |
![]() | 54 ericgui 2019-11-02 02:26:38 +08:00 代码里不要用中文,实在需要,搞个翻译包 |
55 mozutaba 2019-11-02 02:48:41 +08:00 ![]() 中文可以等宽,这点很爽。比如长宽高等,英文 long 就挂了 |
![]() | 56 zjsxwc 2019-11-02 06:34:26 +08:00 via Android ![]() 不喜欢中文编程, 由于编码不一致( vim 配置不一致,Linux 看 Windows 的 gbk 汉字等等),会碰到被删了半个汉字的情况 |
![]() | 57 zjsxwc 2019-11-02 06:46:06 +08:00 via Android ![]() 小写拼音首字母+汉字 可以作为折中的办法, 比如 "bqfkbl 本期付款比例" "bzwchtngck 班组完成合同内工程款" 解决了想名字难,又解决了编码时输入难的问题。 |
![]() | 58 xuanwu 2019-11-02 06:53:54 +08:00 @jin7 将标识符批量中翻英的 VSC 插件: https://github.com/program-in-chinese/vscode_english_chinese_dictionary @cmdOptionKana 的确切换(shift)不一定更多。而且最近有时输入英文时不切换输入法,直接在中文输入状态下输入,还有点单词联想的感觉,比如搜狗下’inp’就有”input“。 @blankme 一般在编程时,我就切换输入法设置到”中文输入下使用英文标点“。 @FakeLeung form 下的是改不了吗?”in_fact_“读起来实在是。。。 |
![]() | 59 xuanwu 2019-11-02 07:24:42 +08:00 @mozutaba 赞,等宽这个之前还没意识到。刚加到这里了《在代码中进行中文命名(类 /变量 /方法等)的优势》: https://zhuanlan.zhihu.com/p/40098652 |
60 masker0817 2019-11-02 07:29:19 +08:00 via Android 我能说这些都不是很偏僻的词汇,其实是写的人英文不好的缘故吗? |
![]() | 61 binux 219-11-02 07:36:20 +08:00 ![]() 源代码比起机器看得懂,让人看得懂更重要。 比起让别人看得懂,让自己看得懂更重要。 比起让外国人看得懂,让你的同事看得懂更重要。 在实现同样功能前提下,能让人很容易看懂的代码就是好代码。 打字速度慢?一个项目能有 20% 时间花在编码上吗? |
![]() | 62 zazalu 2019-11-02 07:59:03 +08:00 via Android ![]() 比那些又臭又长还不懂啥意思的变量名好多了 |
![]() | 63 sl0000 2019-11-02 08:05:07 +08:00 经济学术语用英语真的是为难我等猿呀 |
64 a1562619919 2019-11-02 08:24:38 +08:00 via Android @masker0817 漏了,看的人也不一定足够好 |
![]() | 65 TangMonk 2019-11-02 08:31:41 +08:00 via iPhone ![]() 挺好的,有些很难翻译的我也用中文变量,这个时候反而更简洁易懂。 |
![]() | 66 meetguardian 2019-11-02 08:40:07 +08:00 via iPad 好是好,到真是在线上这么搞我是不敢 逃 |
67 goodlg 2019-11-02 08:48:19 +08:00 via Android 还是主流一点吧,不要这样命名,如果力求易懂,写好注释就可以,不管怎么说,自己喜欢就这样吧,自己看着舒服就好。 |
![]() | 69 lwh0328 2019-11-02 08:53:05 +08:00 via iPhone 什么编辑器呀 |
![]() | 70 ThomasZ 2019-11-02 09:00:47 +08:00 以前编译器中文变量编译不过, 于是就习惯了拼音[doge] |
![]() | 71 zachlhb 2019-11-02 09:04:52 +08:00 via Android 不推荐,会遇到各种问题,再者翻译一些也不难的,另外不会写注释吗 |
![]() | 72 ikw 2019-11-02 09:06:52 +08:00 via iPhone ![]() 进来之前是准备喷的,你这一张图片整得我不好开口了… |
73 Hurriance 2019-11-02 09:08:09 +08:00 ![]() 楼主这样的中文命名很规范啊!学到了学到了 |
![]() | 74 orzorzorzorz 2019-11-02 09:12:34 +08:00 ![]() 本来进来准备看 v 众如何花式反对,但看了这张图我才发现,不是中文变量不好,是我见过的中文变量不够专业。讲道理,如果是这样的中文变量,跟规范不冲突我是一万个愿意的。 |
75 loqixh 2019-11-02 09:15:19 +08:00 @masker0817 英文的固有缺陷, 不过有些人是不会承认的, 反而是为了省个字母缩写变成了所谓的 unix 哲学 |
![]() | 77 skiy 2019-11-02 09:26:41 +08:00 为什么就没有人发明拼音文输入法呢?带声调的。 中文的话,服务器如果不配置一下,打开会乱码。且打码时切换输入法很不方便啊。 |
![]() | 78 chensuiyi 2019-11-02 09:26:43 +08:00 ![]() 开始用中文写代码。 |
![]() | 79 musi 2019-11-02 09:34:49 +08:00 via iPhone 在代码理解方面来说,中文的利大于弊,特别是一些专有名词,程序员还得一个一个查词典?但在程序运行方面来说,中文的弊大于利,编码就是个问题 |
![]() | 80 ljspython 2019-11-02 09:39:56 +08:00 ![]() 居然还挺好看 |
81 DefoliationM 2019-11-02 09:40:36 +08:00 via Android 看着就累。打中文比英文多打好多键呢 |
![]() | 84 realpg PRO ![]() @zachlhb #83 你怕是没写过大型财务系统 每次引用变量都注释一下?还是回去翻注释定义 还是把字典打印出来放手头 |
![]() | 85 Leigg 2019-11-02 09:52:50 +08:00 via Android ![]() 难的是说服你以外的人。 |
86 lovestudykid 2019-11-02 10:03:04 +08:00 英文没有空格就是不如中文容易看懂,信息密度就是没有中文高,再加上大多数中国人浏览英文的速度总是不如中文快。主要的阻碍就是输入速度了。 |
![]() | 87 zhanao1994 2019-11-02 10:05:15 +08:00 via Android ![]() 我觉得挺好的 |
![]() | 88 Maxwells8 2019-11-02 10:07:10 +08:00 ![]() 中文命名可以做到词等宽,所以排版会更整齐 |
89 fpure 2019-11-02 10:11:10 +08:00 via Android ![]() 有一说一,效果还不错 |
![]() | 91 cmdOptionKana 2019-11-02 10:28:22 +08:00 ![]() @lovestudykid 输入速度中文反而是优势,首先按键次数不会增加,然后自动补全也是有的,不仅编辑器有补全,中文输入法本身也有补全。 |
![]() | 92 redbuck 2019-11-02 10:29:03 +08:00 via Android webpack 可能没问题,但是 git 以及 git 生态里的工具可能会出问题,遇到过某个同事用的 diff 工具把源码里的中文都变乱码还提交的 |
![]() | 93 weixiangzhe 2019-11-02 10:29:53 +08:00 via Android 打包后是 abcd 啊,冲这句 我之后也要试试 |
![]() | 94 vipppppp 2019-11-02 10:57:34 +08:00 这是我见过最好看的中文变量编程了 但我还是不会用,感觉切输入法也麻烦还有就是在一些终端上不额外安装东西不支持中文字符。。。 |
![]() | 95 iugo 2019-11-02 11:18:37 +08:00 我可以接受. 我在项目初期没有找到合适专业词汇的时候也会写中文变量名. 后面命名统一后会改. |
![]() | 96 bumz 2019-11-02 11:19:46 +08:00 via iPhone ![]() 私以为,楼主这种情况需要的不是变量 而是字典 |
![]() | 97 FakeLeung OP @weixiangzhe #93 一定要是局部变量,而且不能是对象键名。 |
![]() | 99 liuzhiyong 2019-11-02 11:58:45 +08:00 via Android 我觉得不错,可读性非常好。读代码的时间一般大于写代码的时间,个人觉得可读性更重要。然后我遇到这种情况一般是拼音。 |
100 hubqin 2019-11-02 12:32:24 +08:00 ![]() 以前用过百度的 API,返回的数据,KEY 就是用中文,对于一些名字,翻译后反而不知道十个啥,还是直接中文好。 |