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

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

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

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

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

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

大家怎么看待这个问题?

16310 次点击
所在节点    Java
152 条回复
YMB
2018-06-19 10:44:18 +08:00
接口规范。
{
"status": "4006",
"message": "服务器错误",
"mess": "error",
"data": [
]
}
也可以参考国内大厂接口规范。
其中 message 是提供给前端直接弹出的
murmur
2018-06-19 10:45:09 +08:00
@lamCJ 我一个行业甚至是公司的定制软件根本不考虑 i18n 啊
我可以保证一个公司全用一套操作系统一个 IDE 不就可以了么
只要有规范什么都不是问题
命名是个很烦人的问题
比如电力里的凝汽器 写成拼音 NingQiQi ???即便是学过电力的人也反映不过来这是个什么东西吧
写成英文的 Condensor 翻译回来叫冷凝器 这个不准确 因为电厂里的行业翻译他就是凝汽器
其余的就更不说了 比如主副是翻译成 Primary 还是 Main 呢
纠结这么多 有这时间照着需求文档敲出来就可以了 一下输入法切换和纠结来纠结去死一堆脑细胞那个更好
一群人怕是认为这个世界除了互联网就是通用软件了吧 没有行业软件的立足之地了么
loqixh
2018-06-19 10:53:32 +08:00
@murmur 支持中文
chaleaochexist
2018-06-19 10:55:56 +08:00
我还是喜欢用英文.
chaleaochexist
2018-06-19 10:56:02 +08:00
或者拼音...
luoway
2018-06-19 11:01:39 +08:00
@chaleaochexist 拼音是绝不能用的,会被英文党和中英党一块儿鄙视
yulitian888
2018-06-19 11:03:41 +08:00
其实也不是什么不能忍的事,更搓的也不是没见过。反正我们曾经在代码里用过英文+瑞典文混杂的名词,作为历史遗留问题一直没改过。
汉字>汉语拼音>多语言混杂>汉语拼音首字母
ryuzaki113
2018-06-19 11:05:10 +08:00
这种情况还是写个国际化资源文件,写死中文有点蠢
IvanLi127
2018-06-19 11:06:14 +08:00
代码里有中文呐,不觉得怎么样呢。
cjw1115
2018-06-19 12:19:45 +08:00
看你公司啥情况了,要是外企那就妥妥的全英文,要是私企国企啥的,怎么方便怎么来呗
xuecat
2018-06-19 12:50:24 +08:00
恩!!!你个人爱好我不会批判。
但代码用中文就过分了。
当你在 Windows 写代码的时候,如果设置中国国区,文件编码格式默认是 gbs

然后你用 git 上传或者其他默认以 utf-8 编码格式打开文件的编辑器打开时,中文会变成一堆乱码。

然后你的枚举代码就会变成屎,不可读,乱码!!!
xuecat
2018-06-19 12:51:08 +08:00
对了 Linux 的文件默认编码格式就是 utf-8
514656282
2018-06-19 12:51:20 +08:00
@YMB
@ryuzaki113
@adablue77
@yimity
@66beta
@sd
@fhefh
@xiaowangge
@ToT
@zjp
大家看看帖子追加的部分吧
Bramblex2
2018-06-19 12:52:50 +08:00
反正质量差的,不准备长期维护迭代,尤其是不准备做结构性或功能性的迭代更新的,当然爱怎么搞怎么搞。你就算中文英文拼音混用,一个函数几千行,套几十个 ifelse 都没关系。

这种情况大部分都在外包公司或者一些所谓的“商业”或者“企业级”软件公司,语言以 java,php,c#为主。

所以建议跳槽换公司,要不然在公司里面换岗转销售算了,在这样的公司里面做技术一点前途都没有,大概率被迫吃青春饭。
sampeng
2018-06-19 12:53:44 +08:00
我可以预感。。你的代码别人接到的第一时间心里就是一句 mmp。。。。
在代码里面用 0,1,2 这样魔法数字本来就不对。但可以用常量啊。。。ok。就算懒得写常量。自定义一个枚举行不行。变量名是中文这个脑回路很清奇
514656282
2018-06-19 12:55:08 +08:00
@sampeng 看看帖子追加部分
hdr01
2018-06-19 12:56:11 +08:00
看了追加部分,两种都行吧,不矫情
sampeng
2018-06-19 12:56:15 +08:00
ps 你的例子

后端返回数字的写法
<div v-if:="user_type === 0">
...显示普通用户面板
</div>

后端返回中文的写法
<div v-if:="user_type === '普通用户'">
...显示普通用户面板
</div>


这么写行不行?
<div v-if:="isXXX1User()">
<div v-if:="isXXX2User()">
<div v-if:="isXXX3User()">

这样呢?
<div v-if:="isXXX1User">
<div v-if:="isXXX2User">
<div v-if:="isXXX3User">

如果到处都在用,封个自定义标签可好?

不要用自己的习惯,强迫别人改成你的习惯。原来代码怎样就怎样。你一定要全改成中文枚举。。。下一个接手的一定会亲切的问候你的
514656282
2018-06-19 12:56:45 +08:00
@Bramblex2 就是为了长期维护,才想着增加可读性,接手过很多项目,用一堆的数字 01234 来表示各种业务逻辑,让人摸不着头脑,看看帖子追加部分
514656282
2018-06-19 12:59:12 +08:00
@sampeng 对于 app 开发呢,有时候需要抓个包来查看问题,你看到这些数字 01234 时候,能马上想起他实际的意义么

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

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

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

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

© 2021 V2EX