代码里面有中文,大家觉得怎么样?

2018-06-17 22:28:36 +08:00
 514656282

举个简单的例子,如下,平时写代码的时候一些枚举的状态我比较倾向直接用中文,包括前端传参和返回给前端的内容,个人认为这样可读性会高一点。

做了三年 Android 开发,以前对接后端接口的时候经常都是一堆数字 0123,每次查问题或者抓包的时候都要看看代码(后端基本不写文档,返回的一大堆无用的字段),所以现在转后端了,写接口的时候都会尽量考虑减少前端的对接的难度

public enum Status {
    网络断开, 网络恢复
}

同事认为这样很不规范,叫我以后不要这样写了,要么用英文,要么用数字 0, 1, 2, 3

大家怎么看待这个问题?

16314 次点击
所在节点    Java
152 条回复
lcdxiangzi
2018-06-19 14:40:48 +08:00
所有回复看了一遍,发现我们公司就 tm 是个大坑,和外面的差距大概在 5-10 年。。。
saulshao
2018-06-19 14:58:05 +08:00
实践经验告诉我,大概是如下的情况:
1. 用数字确实会导致代码传承过程中的理解问题
2. 用中文则可能会导致字符串编码问题
3. 楼主最后补充的那段,无论你用什么语言写代码,应该相关的书都会告诉你先用个枚举,然后再做类似的判断......
我的结论:
1. 建议定义枚举变量,不要直接在代码里面写楼主举例的判断语句,至于枚举变量本身,我还是建议用英文。原因其实很简单:没人可以预测未来,谁知道自己的代码有一天会不会用到别的地方?
cout2013mr
2018-06-19 15:38:08 +08:00
想起来以前见过一个大佬写了这样的代码:
if(user.name == '张三'){
……//有权审批
} else if(user.name == '李四'){
……//有权查看
} else {
……//无权
}
OSF2E
2018-06-19 17:08:34 +08:00
我推荐你按前端的方式来,除了注释,我不喜欢代码的任何地方出现中文,总感觉不美观,反之也是一样,中文文章里面突然冒几个单词,总感觉有违和谐。

当然,如果 IDE 字体选的好,可以避开这个问题。
shenjo
2018-06-19 17:20:41 +08:00
关于追加的部分有一个小疑问:
为什么不写成函数呢? 我管你是 user_type === 0 还是 user_type === '普通用户',封装成函数,想怎么实现怎么实现

v-if='isNormalUser' 可读性不更高吗
annielong
2018-06-19 18:05:54 +08:00
还是不建议用中文,说不定哪里就会遇到编码的坑,至于用数字这个,一般都是提前做预定义的,有的时候用英文短句也很麻烦,尤其是几个词义相近的时候,
ToT
2018-06-19 21:56:44 +08:00
要是你们有文档或者 config 文件把所有变量都提前定义好,那还好一些。枚举一下:"普通用户", "普通用户(活动)", “乞丐用户”, “金主”
947211232
2018-06-19 22:41:17 +08:00
长远考虑:扩展、兼容环境等不建议使用中文;
ofooo
2018-06-20 10:13:20 +08:00
我自己代码里有,方便。给公司的代码里没有,绞尽脑汁想变量名~~~
thinkmore
2018-06-21 09:56:17 +08:00
可能这个已经是后台国际化返回给前台的内容了。

至少我们是这么干的,前台接受到的已经是国际化之后的数据了
xuanwu
2018-08-05 15:07:51 +08:00
支持! 至今在 Java/JavaScript/Python 等环境里使用中文命名, 只要框架支持, 还没有发现运行出问题的. Sprint Boot 例子: https://cn.v2ex.com/t/477003
欢迎到知乎"中文编程"专栏分享经验体会!
HENQIGUAI
2020-08-27 10:17:48 +08:00
为啥都说输入法切换麻烦。。就摁一下 shift 能有多麻烦?

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

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

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

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

© 2021 V2EX