恕我愚昧,实在是不想翻译各种奇怪的名称了,直接用中文当作变量名简洁明了(对于我来说)
不知道大家如何看待中文变量名的?
101
no1xsyzy 2019-11-02 12:38:56 +08:00 1
@maomaomao001 请换 IDE,目前 JB 家应该都是支持的
为什么 IDE 要管你标识符的是不是中文? IDE 做这种多余工作? |
103
Rasphino 2019-11-02 12:53:47 +08:00 1
挺好的啊
|
104
no1xsyzy 2019-11-02 12:54:47 +08:00
不用那些 “智(sha)能(bi)” 输(cai)入(hua)法(qi),弄个能自定义码表的就行了,甚至可以把 snippets 也嵌入进去。
工欲善其事,必先…… |
105
liuxingbaoyu 2019-11-02 12:56:44 +08:00 2
感觉挺好的啊,中文能轻松解决的事没必要硬整个给外国人看都看不懂的英文单词来,只要团队统一就行了
|
106
DOLLOR 2019-11-02 13:00:32 +08:00 via Android 1
@FakeLeung
Uglify 有个参数可以把 i.key 转为 i['key']形式,另有个参数可以把字符串里的汉字转为\uXXXX 形式。 利用这两个参数,“对象.键名”就会被转成“o['\uXXXX\uXXXX']”形式,不会造成“编码问题”。 实际上即使你不做代码混淆,JS 也很少像其他语言一样在意“编码问题”。 |
107
1OF7G 2019-11-02 13:04:19 +08:00 3
我觉得用中文真的挺好的,尤其在复杂的场景,包括一些团队里经常会说的中文的运营或技术术语,很难翻译,翻译好了也很难对应回去。
凭借大部分人的英语水平(包括我),对于复杂点的变量名,只能想好中文然后用翻译软件,各种词不达意,后来的人根本读不懂。效果参考曾经公共场合的各种标牌上的奇葩英语。 |
108
netnr 2019-11-02 13:09:31 +08:00
个人观点,不推荐
|
109
hhhsuan 2019-11-02 13:13:17 +08:00
用中文用拼音都 low 爆了,基本的英文都不懂?
|
110
superrichman 2019-11-02 13:16:44 +08:00 via iPhone
你这样可能会被打(逃
|
111
xuanwu 2019-11-02 13:17:14 +08:00 1
@no1xsyzy 之前碰到一个 VSC 的 Python 插件对中文变量自动补全的问题: https://github.com/microsoft/vscode-python/issues/8304
反正不因噎废食,积极向社区反馈,总能逐渐促进问题的解决。 |
112
justin2018 2019-11-02 13:20:22 +08:00
楼主 这是啥字体?
|
113
CodeCore 2019-11-02 13:20:32 +08:00 via iPhone 1
我自己写工具也是用中文,Go 语言,哈哈
想起一句话:代码首先是给人读的,顺便给机器运行。 |
116
kaneg 2019-11-02 13:27:57 +08:00 via iPhone
楼主的代码格式很整洁。
对机器来说变量名只是个符号,什么语言是无所谓的。代码的语言跟我们社会交流一样,是一种协作的工具。如果团队大多数人都认可该语言,其实是否中文也是无所谓。如果是个人项目,或者纯粹的本地化项目,可能中午跟适合阅读理解。 |
117
justin2018 2019-11-02 13:41:03 +08:00
@FakeLeung 楼主 IDE 是啥字体 😁
|
118
maomaomao001 2019-11-02 13:56:24 +08:00
@no1xsyzy 你就算换到 IDE 也一样啊,切换输入方式打汉字, 还不如拼音
|
119
cmdOptionKana 2019-11-02 13:58:11 +08:00 16
用中文最大的问题就是 “民族自卑感”。
上面有人已经说出来了:用中文用拼音都 low 爆了,基本的英文都不懂? 这个逻辑很奇怪,我是中国人,就算我真的不懂英文,怎么就 low 了?英国人美国人不懂中文的一抓一大把,他们 low 不 low ? 其次,就算我懂英文,我用中文怎么就 low 了?唯一的理由就是民族自卑感,除此之外我想不到 low 的原因。 |
120
iMusic 2019-11-02 14:10:36 +08:00 1
很清晰
|
121
LZSZ 2019-11-02 14:14:11 +08:00
哇,这样搞感觉更慢更复杂。
|
122
FakeLeung OP |
124
FakeLeung OP @DOLLOR #106
虽然我们也有键值用中文,但是已经保证运行在 chrome 下才敢用的,至于 uglify,就没去了解了。不知道用了之后,在 ie 下表现如何。 |
125
adamzhuang 2019-11-02 14:32:08 +08:00
第一感觉挺好的哈哈,能解决起变量名难的问题。可能是因为英文泛用能力强,但是表现能力(定语啥的)不如中文?
不过实际敲了一下几行代码,觉得有点怪怪的。。。中文夹杂着英文,有点别扭的,感觉是从小到大学习的数学表达式都用英文有关 |
126
CoCoMcRee 2019-11-02 14:45:48 +08:00 1
我就想问...你写代码中英文不断切换不觉得麻烦吗
|
127
xuanwu 2019-11-02 14:54:27 +08:00
|
128
javalaw2010 2019-11-02 14:59:23 +08:00
中英文切换起来稍微有点麻烦,另外看起来表单对象属性还是要用英文表示的,所以就感觉不是很必要了,毕竟“想一个英文名称”这一步似乎并不能免掉
|
129
Hanggi 2019-11-02 15:02:15 +08:00
你会发现分不清请,常量、变量、类、全局或局部。
|
130
snowonion 2019-11-02 15:11:28 +08:00 via iPhone 2
肥肠支持。假设在可预期的未来里该项目参与者都会中文。
业务复杂的时候,如果业务侧同事不给出一份业务概念的“权威英文翻译”,研发同学们各自发挥简直是灾难。 而且有的概念,业务侧内部能统一就不错了,还要搞一份英文的,“统二”,简直难为人。 这是需求。encoding 什么的都是困难,用工具解决(比如配 locale、提高跟输入法的同步率)、push 相关责任方(比如,编译器开发者、IDE 开发者、terminal / shell 开发者)解决就可以了。 |
131
snowonion 2019-11-02 15:14:07 +08:00 via iPhone
@Hanggi #129 观察出现在句子中的位置、IDE 跳转到定义、加你喜欢的前缀(“m”、“常_”)
|
133
snowonion 2019-11-02 15:27:11 +08:00 via iPhone
想到一个点:有没有 IDE / 编辑器插件可以实现:
如果定义了标识符“有一级打野刀吗”,则打 yyj 可以补全它 |
134
xuanwu 2019-11-02 15:31:57 +08:00 1
|
135
xuanwu 2019-11-02 15:36:01 +08:00 1
@snowonion #133 还有通过修改 VSC 实现的类似效果: https://github.com/program-in-chinese/overview/issues/11#issuecomment-320431936
|
136
no1xsyzy 2019-11-02 15:45:59 +08:00
@maomaomao001 反过来,你为什么要切换输入方式来打英文?何况切换的问题还没 Python 调对齐高。
目前 Windows 也好,fcitx 和 ibus 也好,甚至高度集成化的 OSX 或者 iOS 也好,处理输入法的方式都是有问题的,没有环境词组反传。软件界面能为鼠标操作任意添加按钮,为什么它们不能为键盘输入提供任意自定义词组?输入法内能够完成任意所需的补全才是正常的状态。以不完善的工具苛责改进方向,你就是完人? |
137
ddup 2019-11-02 16:32:04 +08:00 via Android
从不用中文命名变量,不过你这个代码里面还挺好看的,而且很易懂啊,弄成英文变量的话就很难理解咯。
|
138
applehater 2019-11-02 16:32:21 +08:00
用 emoji 写变量名都是可以的呀
|
139
Kylin30 2019-11-02 17:06:02 +08:00
自己的项目想怎么用就怎么用
|
140
PhaSelEza 2019-11-02 17:21:28 +08:00 1
"It’s more important to be understood than it is to form a grammatically perfect sentence."
出自:Novelist Cormac McCarthy’s tips on how to write a great science paper 只要全部开发工具、人员都能处理中文,我觉得就没问题。 人生苦短,哪有那么多时间精雕细琢这些。 |
141
hst001 2019-11-02 17:54:04 +08:00
要不是输入不方便可以试试,从业务和多人维护的角度来说,中文命名是个优势把,比英文短,但是输入太麻烦
|
143
yazinnnn 2019-11-02 18:31:16 +08:00
小项目可以的,言简意赅
|
144
HanMeiM 2019-11-02 18:38:03 +08:00
emmm
有一个问题就是,英文用多了,看到中文就认为是字符串,会不会在调用变量的时候第一时间反应不过来,哈哈哈 |
145
yingfengi 2019-11-02 18:44:05 +08:00 via Android
我嚼的吧,最大的问题可能是编码不兼容之类
|
146
murmur 2019-11-02 18:46:09 +08:00
只要没语法问题 我看着挺舒服的
|
147
murmur 2019-11-02 18:53:33 +08:00 1
@adamzhuang 都是写通用软件写习惯的,对于我们行业软件开发来说,尤其是电力这些行业本身就是中国领先,中国标准,翻译简直痛苦
|
151
maomaomao001 2019-11-02 19:49:16 +08:00
@no1xsyzy 你这也太暴躁了
1.输入法给你做好只能补全 ??? 简直是做梦 , 难不成输入法还给你分析项目 , 分析代码 还要对各种编程语言适配 ??? 而且输入法去做这个事情就像,网易云里看直播 , 用迅雷当浏览器一样。 2.你喜欢就那么用呗,我也就说了我的观点而已(而且也是我现在使用的规则),你看这个观点不爽你你可以提出自己的啊 比如 软件界面能为鼠标操作任意添加按钮,为什么它们不能为键盘输入提供任意自定义词组?输入法内能够完成任意所需的补全才是正常的状态 可是后面这一句你在干嘛? ** 以不完善的工具苛责改进方向,你就是完人? ** 我既没说这个 low () , 更没人身攻击 你上来就带着这么大的敌意干什么 ??? 你喜欢甚至可以去用易语言什么的呀 , 我又管不着你 |
152
MeteorCat 2019-11-02 20:04:56 +08:00 via Android
语法补全我感觉很麻烦呀
|
153
Elephant696 2019-11-02 20:08:36 +08:00 1
我靠!
这是 js ??? 我感觉我发现了新世界,下周就开始用中文做变量名! |
154
gbin 2019-11-02 20:11:27 +08:00 via Android
原来变量名还可以用中文?老师不是说变量名必须是字母,数字或下划线组成的吗?
(手动狗头,保命 |
155
Chieh 2019-11-02 20:24:59 +08:00 2
好过不懂英文的乱用英文
|
156
Forelax 2019-11-02 21:02:11 +08:00 3
@hhhsuan 求大佬帮我们翻译一下 "亢龙有悔” “九阴白骨爪” 同时保证大部分团队的人都看的懂,做武侠游戏的招式变量名伤不起啊。。
|
157
no1xsyzy 2019-11-02 23:35:11 +08:00 1
@maomaomao001
> 难不成输入法还给你分析项目 , 分析代码 还要对各种编程语言适配 ??? 说了环境回传,微软现在在新 Edge 上做类似这个事,您自以为比微软搞新 Edge 那拨人聪明? IDE 或者编辑器分析出可供补全的词汇,然后传回输入法。 就好像你在 WOW 里输入,WOW 就会告诉输入法存在 “银鳞胸甲” 这个词,根本不需要输入法自己搞词库,还会慢半拍。 —— > ** 以不完善的工具苛责改进方向,你就是完人? ** > 我既没说这个 low () , 更没人身攻击 > 你上来就带着这么大的敌意干什么 ??? 您是不是忘了您说了啥?给您回忆回忆: > 你这个完全吧 ide 的自动补全都稿废了,而且还要切换 |
159
no1xsyzy 2019-11-02 23:41:28 +08:00
@bumz 数据类型的话 dict 是 Python 独有叫法…… 大部分编程语言里叫 Map…… JavaScript 的 Object 其实可以代替一部分这个用。写 Object 当 Map,连 Twitter API 都这么用(因为 JSON 没有 Map )。
|
160
xuanwu 2019-11-03 05:09:44 +08:00
@HanMeiM #144 不会, IDE 的高亮还是很明显的.
@yingfengi #145 一般项目内部开发平台应该都能做到编码一致吧, 而且只要牵涉到中文字符串(注释 /字符串)都要搞定源码编码 @MeteorCat #152 中文命名用过的 IDE 有 Eclipse (Java 开发), IntelliJ (Scala), VSC (JS, TS, Python), 只发现了 VSC+Python 对中文补全有点明显问题, 已报给 M$ (#111), 如果碰到中文命名导致补全问题又不方便提 issue 的话, 乐意代劳报告. @Elephant696 #153 常用的应该都支持中文命名标识符: https://www.v2ex.com/t/518915#reply82 |
161
atcdef 2019-11-03 06:57:39 +08:00
如果 IDE 能提供 中文 变量名的首拼输入功能 的话,我会很乐意用中文 变量 名的。可惜,我没看到过有提供这种支持的插件啥的
|
162
lc7029 2019-11-03 07:26:20 +08:00 1
很好,正在用。
不管某个对象是变量还是类,一目了然,而且不用写注释 |
163
JerryCha 2019-11-03 08:29:50 +08:00
没啥问题
英文描述有时会不可避免的需要超过 3 个词来描述,读起来会比较痛苦。 ![]( http://dialogtree.com/wp-content/uploads/2011/01/A-class-declaration1.jpeg) |
164
hyy1995 2019-11-03 09:06:37 +08:00
如果这个项目前端就你一个人负责,那你怎么喜欢怎么写,用中文也无所谓。。。不过如果是团队开发,我觉得你的前端同事会打死你
|
165
lawrenxe 2019-11-03 09:12:47 +08:00 via iPhone
楼主是审计所的吗
|
166
shfanzie 2019-11-03 09:36:43 +08:00
自己玩那随便咯,团队写这样的代码会被打死
|
167
fps23dot9999 2019-11-03 09:50:47 +08:00 via Android
字符编码容易出问题,中英文切换非常难受(特别是对于 VIM 玩家)
|
168
jzmws 2019-11-03 09:53:42 +08:00
遇到不支持中文的系统就 gg 了这个只能说是在各种的项目上用, 要是做工程 后期的维护就好问题很大了
|
169
clare0621 2019-11-03 10:33:04 +08:00 via iPhone
@secondwtq 汉语本来就没有英语易学易用。事实上王垠的很多观点都没什么问题。前提是学会站在完全客观的角度去看待。
|
170
silentstorm 2019-11-03 10:39:20 +08:00 via Android 2
国内项目管那么多国际化干嘛,中国人自己看得懂就行,别整出一堆蹩脚英文徒增笑料
|
171
nanjia 2019-11-03 10:46:15 +08:00 via Android
get 姓名 这样可以吗
|
172
nanjia 2019-11-03 10:47:22 +08:00 via Android
getter setter 支持吗
|
173
petelin 2019-11-03 11:02:08 +08:00
受不了
|
174
petelin 2019-11-03 11:03:38 +08:00
你可以用拼音, 这样的代码我看起来就跟好像烧饼里面本来可以加鸡蛋,肉. 你加的是牛奶.
不接受辩论. |
175
shiji 2019-11-03 11:10:44 +08:00
再补充几句,你这种情况用中文很合适。。
不过如果有人想来劝你把 const key return calc 也换成中文,那就很扯淡了。 |
176
x86 2019-11-03 11:14:24 +08:00 via iPhone 1
比一些奇奇怪怪的翻译好多了…
|
178
qiyuey 2019-11-03 11:59:47 +08:00
变量需要全局一致,如果都能够打通,也是一个很好的选择
|
180
markgor 2019-11-03 12:11:41 +08:00 1
在報表的基礎上,我支持中文變了名,一眼就看懂了,知道統計的是什麼數,後續需要使用這些數據計算的時候也不會出錯。
|
182
ooops 2019-11-03 12:41:46 +08:00
英文 > 中文 > 拼音。拼音是万万接受不了的
|
183
icylogic 2019-11-03 12:57:58 +08:00
没啥不行啊,在一些场景下可读性更好是肯定的,我觉得就是三点不方便,
一个是输入效率,大部分编辑环境对于拼音补全支持得不好,ascii 字符基本输入两三个就可以选到自己想要的了, 第二就是你这段代码其主要是数据定义,又比较好对齐,所以比较好看,可以放到更加复杂的逻辑(比如几层嵌套)中,看着其实会更混乱一些。 第三是没办法避免中英文混杂的问题,比如图中的“payment proportion” 和”in fact contact money last time”为啥不用中文呢,要么就是这是其他库的变量,要么这是团队其他人写的或者遗留代码,这是没法完全避免的。那你们的规范到底是什么时候用中文,什么时候用英文呢。 我对于任何编码规范的看法是,只要团队内成员能一致同意并且遵守,就没啥问题,比如你定大括号必须换行 /一行内的语句可以不用换行,缩进用 4 格还是 2 格,都会有人喜欢或者不喜欢,因为程序员审美观不同。上面说的后两点其实都是审美观问题,只要团队成员能接受并遵守一致的约定,那就没问题。 如果要解决第三个问题,可以给团队定一个专有词汇表(注释或者集中写一个 glossary.md ),项目内这些专有名词必须用这些文本表达。实际上我即使在纯英文的项目里都会这么干,一些容易引起混淆的词或者常用的缩写我会写在这里。比如我写一个图像处理程序,图像中间会经过各种变换,我可以定义,要求一开始输入的图像数据统一称为 input (而不是 raw, original, 原始图像, etc.),这样项目里 所有 input_前缀的都是代表输入的原始数据(input_dimension, input_height, input_file ),不会引起混淆。如果没有这类规范,可能就会在一个地方看到 raw_height, 另一个地方看到“输入图像高度”, input_rows ... 例如楼主的项目里肯定要约定,”实付工程款”这类概念(明显不止一个变量,在整个项目中会到处定义这类变量),在能控制的代码里,必须统一用这五个中文字符,不允许用 payment 之类的代替,否则可能会引起混淆的,至少是可读性上的不便,因为看到 payment 和实付工程款同时出现的时候,我需要反应一下这是不是同一个概念(如果有的地方相同,有的地方不一样,那就很恶心了) 开源项目要面向全世界的话,那唯一能让大部分程序员都接受的规范也就是英文变量了 pep 8: For Python 3.0 and beyond, the following policy is prescribed for the standard library (see PEP 3131): All identifiers in the Python standard library MUST use ASCII-only identifiers, and SHOULD use English words wherever feasible (in many cases, abbreviations and technical terms are used which aren't English). In addition, string literals and comments must also be in ASCII. The only exceptions are (a) test cases testing the non-ASCII features, and (b) names of authors. Authors whose names are not based on the Latin alphabet (latin-1, ISO/IEC 8859-1 character set) MUST provide a transliteration of their names in this character set. Open source projects with a global audience are encouraged to adopt a similar policy. |
184
think2011 2019-11-03 13:11:30 +08:00 1
别的不说,我喜欢截图的代码,好看
|
185
heiheidewo 2019-11-03 13:15:28 +08:00
竟然这么多人赞同,你们赢了
|
186
asche910 2019-11-03 13:25:33 +08:00
不能接受。 反正我只见过新手用中文命名,当然不排除有少数厉害的。
|
187
crella 2019-11-03 13:53:07 +08:00
我爱你 = 'I have loved you for a long time.'
puts 我爱你[13]; puts 我爱你[14] |
188
cashew 2019-11-03 14:53:35 +08:00 via Android
我觉得,如果是自己长期维护或者是个人项目,用中文也未尝不可。
你这个如果非要用英文,如何翻译真是要头疼。 最后,你这个排版真是好看,简单明了又好看。 |
189
zhouwei520 2019-11-03 15:38:03 +08:00 1
一句话,中文不 low
|
190
bumz 2019-11-03 15:43:36 +08:00 via iPhone
|
191
52coder 2019-11-03 15:48:42 +08:00 1
非常之清晰了,这么写代码都不用加注释了。
|
192
cpdyj0 2019-11-03 16:06:53 +08:00
个人感觉倒是不错,唯一的一个疑问就是你是怎么解决输入问题的,切换来切换去不觉得麻烦吗,总得按 Shift (别说英文标点那个事,就现在 MS 拼音输入法时不时给你加一个单引号进去就挺难受)
这种英文一般人翻译还真翻不对 |
193
EminemW 2019-11-03 16:07:41 +08:00 via iPhone
你这和截图和代码看起来好舒服啊,出于意料,截图怎么做的
|
195
ZredoC 2019-11-03 17:57:01 +08:00
楼主您好,求字体 0.0
|
196
fakeshadow 2019-11-03 18:10:19 +08:00 1
有句讲句,有些英语不好的那变量搞到人一头雾水,还不如老实用中文.
|
197
new2500 2019-11-03 18:41:08 +08:00
google 一下 你也知道......
|
198
mgrddsj 2019-11-03 19:16:55 +08:00
|
199
HeiXiaoBai 2019-11-03 19:43:03 +08:00 1
只要能用,不会引起歧义,不会出现编码兼容性问题,那总比拼音好,用英文还可能得注释个对应翻译
|
200
loveour 2019-11-03 19:52:39 +08:00 1
觉得中文变量名挺好的。很多东西可能比较好翻译,之前做武侠游戏,很多名字实在不知道怎么翻译。
|