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

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

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

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

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

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

大家怎么看待这个问题?

16309 次点击
所在节点    Java
152 条回复
tulongtou
2018-06-18 19:07:09 +08:00
如果是一个开源项目,中国人贡献汉语代码,韩国人贡献汉语代码,阿拉伯人贡献阿拉伯语代码。。。。。后果不忍直视
wwqgtxx
2018-06-18 20:16:59 +08:00
@tulongtou “韩国人贡献汉语代码”是个什么套路(手动滑稽)
tulongtou
2018-06-18 21:22:04 +08:00
@wwqgtxx 打错了,韩语代码 哈哈哈
fhefh
2018-06-18 22:08:36 +08:00
一般都是这么干来着~
{"status": 0, "msg":"你好,欢迎来到 V2ex"}
zhuangzhuang1988
2018-06-18 22:10:02 +08:00
挺好的比不知所云的拼音,缩写好。
514656282
2018-06-18 23:44:44 +08:00
@fhefh 所以这个时候就需要跟前端解释 0 是什么意思
sd
2018-06-19 02:45:17 +08:00
可读性不高的问题,我也是赞成使用 status 和 msg。
考虑到前端对接难度的问题,我建议写好 API 文档,API 文档应该是必须的。
littlebaozi
2018-06-19 08:52:47 +08:00
用数字吧,注释写明白
66beta
2018-06-19 08:55:43 +08:00
”后端不写文档”

头痛不能医脚
murmur
2018-06-19 09:06:03 +08:00
@tulongtou 这种代码一般不会涉及业务和专业术语
这楼太多人过度关注枚举这个点
而没考虑其他地方用中文
jyf
2018-06-19 09:44:11 +08:00
我比较喜欢用英文和数字 但是我不会去反对你用中文 你这个是提示 提示越清晰越好
楼上有人说编码问题 这个年代还用 gb*的基本很罕见了 大家都是 utf8 没啥不一样的
micean
2018-06-19 09:55:35 +08:00
要是名字不好起呢?
中文 enum 的最大好处是智能提示一出来就明白是什么意思
至于用数字还是字符串,可以用成员变量解决
yimity
2018-06-19 10:10:56 +08:00
@murmur 不用改的情况下,为什么要改?系统(架构)设计就这么脆弱,这么简单的都不能扩展,都要改?
yimity
2018-06-19 10:11:42 +08:00
@514656282 不是给前端显示,其他地方要用是不是也要处理?同样的道理嘛。
adablue77
2018-06-19 10:17:21 +08:00
10001 用户验证失败 ... 直接提示用户错误信息
10002 您的余额不足 ... 给予提示 并显示余额和充值按钮
10003 用户登陆超时 ... 提示错误 过 N 秒后跳转到登陆页
10004 您的权限不足 ... 直接提示用户错误信息
假设上面是一个接口可能返回的集中数据
现在不返回状态码了 请问楼主前端如何实现流程呢
iblessyou
2018-06-19 10:32:00 +08:00
@fuermosi777 和你学了一技,用这么久居然不知道 /笑哭
rocbomb
2018-06-19 10:35:42 +08:00
已经有公司开始中文编程了
没任何问题, 他们用的是 C#
当年的帖子没了, 找个转载
http://www.cnblogs.com/kernel64/archive/2014/06/06/3771658.html

输入法把全角改成半角, 没有任何问题

我们公司没那么激进,只是注释全部都是中文
目前没有任何问题
murmur
2018-06-19 10:37:32 +08:00
@yimity 我不知道你回的哪一条
但是这个只是楼主例子的 enum 不规范
反正 enum 就是 int 如果你不习惯 java 的 enum 写法 直接写一个类 里面写一堆中文 static 变量指向你的状态码就可以
他是变量不就可以扩展 可以 IDE 重构了么
我还是哪句话
这个楼里太多人纠结枚举的例子 中文既然可以拿来做数据库字段 那以后如果有规范的话拿来做变量名甚至函数名也是可以的
起名一直是个很纠结的问题 尤其是涉及到太专业你查字典就查不明白的东西
lamCJ
2018-06-19 10:38:22 +08:00
不怎么样:

- 效率低:编码一天 输入法切换次数不能忽略
- 沟通难:自己一队中国人可能无所谓 但是英文世界都能理解 更别提 i18n 了
- 恐乱码:虽然你的编程环境对 unicode 支持很好 但是代码 /数据 可能会在各种各样的步骤 /环境 /编码中出现 最终格式无法保障 ascii 码大法好

换成中文解决不了 “后端不写文档”的问题 也不能完全解决“更容易理解”的问题(人水平+必要的注释+文档才是) 也并没有解决“前端不方便对接”的根本问题(人水平+流程+文档)

退一万步 命名用拼音也比中文好啊 …

带有个人感情色彩的强迫症结论:要用中文就全部用中文(可惜还做不到)要英文就全部英文 半英半中的感觉就和听见有些人说中文说着说这飙几句英语单词一样 你懂的吧
reus
2018-06-19 10:39:36 +08:00
我觉得不行,输入法切换太麻烦

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

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

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

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

© 2021 V2EX