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

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

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

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

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

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

大家怎么看待这个问题?

16592 次点击
所在节点    Java
152 条回复
chnhyg
2018-06-17 22:37:27 +08:00
为什么不用英文呢?

public enum NetworkStatusEnum {
Connected, Disconnected, ...
}
xujinkai
2018-06-17 22:38:27 +08:00
中文解码错误就整体悲剧了...
514656282
2018-06-17 22:40:35 +08:00
@chnhyg 只是随便举了个简单的例子,实际业务上出现的情况会更加复杂
zjp
2018-06-17 22:42:09 +08:00
用数字的话还要 enum 干嘛,甚至还不如中文。除非同时返回 status 和 message
514656282
2018-06-17 22:42:48 +08:00
@xujinkai 代码一直都是运行得好好的,不论是前端还是后端,暂时没有发现会影响到实际运行的情况
ho121
2018-06-17 22:45:17 +08:00
@514656282 再复杂也可以用英文。像你这样说,国外 it 公司都该怎么办。

不用中文首先是习惯问题。然后中英文切换会很烦(比如在 vim 中切换中英文)。最后,中文编码问题比较明显,兼容性也可能有问题
rockyou12
2018-06-17 22:46:03 +08:00
很多时候部署的环境一变,真的可能有很多奇奇怪怪的问题,哪怕是 c#或者 go 这种对 utf-8 支持得非常好的语言……
514656282
2018-06-17 22:46:07 +08:00
@zjp 公司的后端一般都是返回 {"status": 0}这种,不存在 enum,然后用聊天工具告诉你一下这些数字代表什么意思 😂
littleylv
2018-06-17 22:47:22 +08:00
说句难听的……很奇葩……
514656282
2018-06-17 22:48:41 +08:00
@littleylv 确实很多人都没见过😂
514656282
2018-06-17 22:52:20 +08:00
@ho121 小项目基本上不会指望会有外国人看到,我一直在 idea 上用 vim,切换问题似乎不太大
geelaw
2018-06-17 22:54:43 +08:00
enum 成员的名字必须是标识符,因此不可以是数字开头,自然也不能是数字。

Java 允许汉字作为标识符,因为汉字属于 Lo Unicode 一般类(这类字符都允许作为标识符的一部分)。

“不规范”应该是说你们的团队规范,看待方式是 be compliant.
zjp
2018-06-17 22:55:04 +08:00
生产环境可能有其他的考虑,起码 debug 时附上一句状态消息。其实还是英文省事,不用考虑编码问题
@514656282
HangoX
2018-06-17 22:58:14 +08:00
不瞒楼主,我干过这事情,其实没问题的,但是我应对的场景更复杂。想想你写了英文,最后因为过于复杂,还是要看注释,还不如直接用中文。Java 是天生支持中文的,用的都是 AS,没有编码问题。
514656282
2018-06-17 23:02:16 +08:00
@HangoX 我应对的场景也很复杂😂 只是为了方便在这里举了个很简单的例子
q397064399
2018-06-17 23:02:23 +08:00
@514656282 #8 JPA 默认序列化的 ENUM 是字符串
514656282
2018-06-17 23:04:57 +08:00
@geelaw 这个解释很好,不过这个“不规范”,感觉只是其他人没见过,就觉得反感了
changnet
2018-06-17 23:08:43 +08:00
不同的机器,不同的终端,不同的编辑器,不同的语言交互,出问题你就知道有多麻烦。当然你硬要说现在程序能跑,没问题,那也没问题。
yimity
2018-06-17 23:09:23 +08:00
一定要用数字,不然产品让你改成网络已断开,网络已连接,你怎么办?
nicevar
2018-06-17 23:10:23 +08:00
楼主没有经历过 vs 和 eclipse 混用的时代,某个人一不小心一个操作导致代码所有中文全部乱码,包括注释,没有注意到就提交了,这时候再有个人操作一下有可能乱套了,可能都没法还原,所以那个时代经常会看到一些小公司的项目代码总有些奇奇怪怪的乱码

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

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

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

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

© 2021 V2EX