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

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

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

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

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

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

大家怎么看待这个问题?

16241 次点击
所在节点    Java
152 条回复
jmc891205
2018-06-17 23:13:28 +08:00
写代码的时候还要中英文切换不会很麻烦吗
ToT
2018-06-17 23:18:36 +08:00
写注释用中文没问题。其他的话,就看你们怎么协调沟通了。API 的话,最好有一个统一的信息吧?
thread2
2018-06-17 23:20:18 +08:00
可以的,之前我们数据库表名也是中文的,软件照样卖好价钱
f2f2f
2018-06-17 23:20:32 +08:00
个人觉得你要是内部前后端协作完善的话应该避免这种情况
不过要是随便一写倒也无妨,毕竟对于国人这种代码看着方便
murmur
2018-06-17 23:22:23 +08:00
utf8 编码普及了应该是可以的
估计都是在互联网公司呆惯了
没开发过行业软件
一般的生活软件还可以英文
行业软件英文不会写写拼音 还有的普通话不标准粤语四川话都写到变量里了 所以想来想去中文变量名真不错
LukeEuler
2018-06-17 23:22:58 +08:00
只要团队规范一致,就可以了,没问题。(个人觉得不爽的是等宽字体的问题,这个会把我逼疯的)
murmur
2018-06-17 23:24:05 +08:00
@yimity java 这种语言还怕你这么简单的重构么
514656282
2018-06-17 23:51:07 +08:00
@yimity 这个不是用来给前端直接显示的,只是用来判断一些情景
zj299792458
2018-06-17 23:55:16 +08:00
写中文真的不会有编码问题么……我的 IDE 都是默认 UTF8
514656282
2018-06-17 23:56:31 +08:00
@jmc891205 还行😄,毕竟硬要挤个英文出来更加头疼
zjsxwc
2018-06-17 23:59:03 +08:00
返回个{"status": "网络恢复"}我觉得很奇怪。

反倒是用数字更加灵活,语意更加丰富,考虑下面的这些情况:

1. 有国际化多语言需求时,新增国家语言时,把“网络恢复”翻译成别的语言,和把数字翻译成别的语言,我觉得还是数字方式顺眼。

2. 业务上的改动对原先的 status 更加细化的需求,比如原先的采购只有“直接发布未报价,被报价,被采纳”,变成了“直接发布待审核,审核通过未报价,被报价,被采纳”,这时本质上其实是原先的“直接发布未报价”变成了现在的“审核通过未报价”,如果用中文等语言写死的话后面的人就还不来了,但如果是数字的话只要给新的“待审核”分配个新数字就行。
514656282
2018-06-18 00:04:15 +08:00
@zjsxwc 返回这个中文真的不是用来给前端直接显示,就跟返回数字一样,返回 0 的时候需要做 xxx 处理,返回 1 的时候要做 xxx 处理,只是在编辑代码上,不需要再备注 0 是什么意思 1 又是什么意思这样。
gamexg
2018-06-18 00:35:31 +08:00
虽然没用中文,
但是现在觉得真用也没什么,各种环境应该不会再碰到不支持中文的情况了。

楼上说可能有团队成员提交成乱码,我觉得这里的问题不是中文,而是没统一规定编码。

即使变量不是中文,国内注释也一点中文没有的不多吧?注释全部变成乱码也是不可接受的。

反对代码内硬编码数字,接口返回数字没问题。
JCZ2MkKb5S8ZX9pq
2018-06-18 00:42:42 +08:00
其实有些情况下用中文无可厚非吧,msg、注释甚至部分 json 的 key。

- 不少程序员的英文水平堪忧,字段名瞎起,不同人读可能会有误解。
- 母语理解不容易有误差,而且很可能更精确简短。
- 最终应用场景是中文,经常碰到 中文 到 英文(数字码) 再回 中文 的情况,匹配起来繁琐。

之前搞基金,各个平台的中文称呼都很规范一致,英文命名就各有一套,很麻烦。最近弄淘宝,也碰到类似问题。
ltxlouis
2018-06-18 02:15:24 +08:00
可以看一下 HttpStatus 的那种枚举类,感觉比较好一点
Perry
2018-06-18 02:46:13 +08:00
有没有考虑过自动补全?
pinews
2018-06-18 05:24:38 +08:00
用中文我是支持的,但是我不支持用中文是为了解决一些问题,或者中文会造成什么问题。
这不仅是个技术问题,更是个责任问题。
----说不规范只是个借口,但是如果出了问题谁来承担责任,这个问题楼主想过吗?如果楼主拍拍胸脯说没问题,我倒觉得有改变的可能
从论坛的情况来看,大部分还只是技术的奴隶,负担不起改造世界的责任,楼主需要付出更多的努力才行。
fuermosi777
2018-06-18 05:32:16 +08:00
按住 ctrl 跳转单词的时候 遇到中文就一个字一个字跳
opengps
2018-06-18 05:43:45 +08:00
总会遇到些奇葩情况的,你可以当探索者去爬一遍前人爬过的坑,总结出同样的结论
Syaoran
2018-06-18 05:55:32 +08:00
个人觉得频繁切换输入法好麻烦……

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

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

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

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

© 2021 V2EX