我是做 java 后端开发的,因为安卓端调用查询接口中非必要参数未做空字符串判断,问我后端为什么不将空字符串转成 null 处理?骂我连培训班的差生都不如.我是不是该离开这家公司?
我是做 java 后端开发的,因为安卓端调用查询接口中非必要参数未做空字符串判断,问我后端为什么不将空字符串转成 null 处理?骂我连培训班的差生都不如.我是不是该离开这家公司?
|
1
空字符转 null ???这人是在骂自己吧
|
|
42llMay 29, 2019 via iPhone
2
不 你应该打 年轻轻狂 胜者为王
|
|
4
|
|
creanmeMay 30, 2019 via Android
5
什么逻辑?被同事怼了就离职?
|
|
6
你就给人家转成“ null ”嘛
|
|
scnaceMay 30, 2019 via Android
7
xswl 那你先让他把自己代码里的空字符串都改成 null
|
|
8
你也是少经验,换我就怂回他爱用不用,搞烦了我随机 return error 给他们,让他们 debug de 到怀疑人生。
|
|
9
还有这种操作?嫌空指针不够多?
|
|
shehuizhuyiMay 30, 2019
11
你们都是 java 啊 菜鸡互啄
|
|
NerverLibisMay 30, 2019 via iPhone
12
我们的安卓不支持整形…不支持 description 之类的字段…每次我都是 string ('111')
|
|
freak118May 30, 2019
13
为什么你们的同事都这么凶啊 我们平常都和和气气的啊
|
|
cyssxtMay 30, 2019 via iPhone
14
空字符串为什么要转成 null ?理由?
|
|
MonoLogueChiMay 30, 2019 via Android
15
空字符串是 "" 还是 empty ?
|
|
traitMay 30, 2019 via iPhone
16
@springGun 那菜鸡再在这个问题上 bb 就甩 clean code/Paterns of Enterprise Application Architecture 给他:人菜多读书
|
|
17
@drush 而且还要搞一个时间判断,每天晚上 2 点到 3 点没半小时随机返回 error,让丫被运维的电话从床上轰醒起来查 bug。
|
|
guotao2beijingMay 30, 2019 via iPhone
18
我们 java 后台连 double 都传成空给我,我跟谁说理去。你这是脾气好,不是你水平差。
|
|
RaisuMay 30, 2019
19
就传个字段能看出水平了?
|
|
lusi1990May 30, 2019 via Android
20
这 Android 水平也不行啊
|
|
VdreamMay 30, 2019
21
我是做 android 的 不管传啥只要约定好不久可以了吗 最烦一个系统传值规则变来变去
|
|
98jiangMay 30, 2019
22
又不是什么大事
|
|
wugzMay 30, 2019 via iPhone
23
这个本来就不是什么大事,商量一下就好了,但就按照你说的那样,说明人家并不把你放眼里
|
|
hahiruMay 30, 2019
24
什么鬼,空字符串返回 NULL ?脑子瓦特了。
|
|
daguaochengtangMay 30, 2019
25
被怼了就离职,你以后是当算当跳跳忍者吗
|
|
zoeyzhangMay 30, 2019
26
你们公司安卓这么 nb 的么 我司前端移动端都是背锅的 : )
|
|
zsk425May 30, 2019
27
对方也是够没素质的
另外,最好以后提供接口的时候,在文档里描述下字段取值类型、范围、是否可为 null |
|
yalinMay 30, 2019
28
把定义接口定负责人,拖出来,不要技术与技术之间相互伤害
|
|
michaelchengMay 30, 2019
29
我们这儿后端是数据库存啥就给你啥,啥都不处理,想自己用的爽,自己整个 BFF 层处理(前端的工作)
|
|
forYouMay 30, 2019
31
为什么你们的同事都好凶,我们公司氛围就挺和气的
|
|
32
这已经是彻底撕破脸了
说实话我怀疑 LZ 你描述事实省略了一些东西,比如他是不是认为你在别的地方技术能力不行,而这个 null 只是出气的一个导火索,因为在公司这种地方直接当面骂对方的行为,如果不是某一方特别傻逼的情况,无异于职场自杀 |
|
nicevarMay 30, 2019
33
不一定是这点问题导致别人暴躁的,如果你经常挖坑,可能这只是最后一根稻草
流程上来说你们应该有文档约定,尽量减少沟通,直接看文档 我做客户端的时候如果服务端总是瞎搞,上火了也会怼的,最后急了干脆跟公司说服务端我自己来做,后面公司客户端的接口部分完全由我来做。 |
|
hhhsuanMay 30, 2019 via Android
34
空字符串,null,还是根本没有,这三者是有语义上的差别的,并不是说哪一种是错的,主要看你们的约定,习惯,具体的场景决定。
|
|
35
偏听则暗,兼听则明.
选填参数要添加判断,过滤所有筛选条件,必填参数为空则返回异常,选填参数为空则跳过本条规则,的确不需要做转换,直接判断就行了. 空包括直接不传和空值(null/"")两种情况,都应该妥善处理. 在公司对他他人的技术有怨言可能是菜鸡互啄,也可能是大神嫌弃菜鸡,但是一般不会有大神被菜鸡嫌弃的情况. |
|
keikeizhangMay 30, 2019
36
之前和算法合作,key 是中文,还有分隔符,不是下划线,是 - ,
比如这样 北京-海淀区 呵呵 |
|
excelooMay 30, 2019
39
他自己煞笔呗,前端不判断所有情况还有理了?要是接口挂了是不是还得咆哮为啥接口会挂??
|
|
passerbytinyMay 30, 2019
42
你是不是该离职不好说,但你要主动离职了,对方估计也该滚蛋了。加班时间因为接口问题吵起来,这种环境八成是“稳定”为主。
|
|
DonneMay 30, 2019
43
让安卓端来讲,可能是另一个故事了。
|
|
passerbytinyMay 30, 2019
44
@springGun #33 !!!!兄弟,我也想骂你。查询条件 null 和 "" 同时判断是常识,因为查询条件是通过 HTTP 参数传进来的。
|
|
hstdtMay 30, 2019 via iPhone
46
我更喜欢 null 返回空字符串给我
|
|
47
@passerbytiny 那查询一个空字符串的数据怎么办?我也没见 ali 和腾讯的接口会给你忽略掉该条件,要么返回参数检验异常,要么直接返回空的查询结果
|
|
wutiantongMay 30, 2019
48
看楼主后面的回复,好多人前面都理解错了:
并非客户端要求后端用 null 代替,而是客户端发请求时传了个空字符串,后端(楼主)没做判断。 |
|
aLazarusMay 30, 2019 via Android
50
还是要做判断的吧…
|
|
nxforceMay 30, 2019
51
空字符串或者 null 值,应该不传,让客户端采取 default 值。
|
|
jiuanziMay 30, 2019 via Android
52
伟大都是熬出来的
|
|
passerbytinyMay 30, 2019
53
@springGun #43 你能给我找出来一个查询“非 null 但空字符串”的需求出来吗?对于你的第二句话,我觉得没必要做深入回复,一句“你去 ali 和 腾讯吧”就足够了。
|
|
rb6221May 30, 2019 via iPhone
54
如果你没隐瞒别的,那这个安卓有点辣鸡
你可以直接一句:这接口 ios 用着没问题就你有问题,怪我咯 |
|
BreakTheBankMay 30, 2019
55
解决问题的前提是好好说话。你确定他是这种语气和措辞的话建议你先调教下他。
|
|
56
为什么你要离职?你应该想办法让他离职
|
|
kingztMay 30, 2019
57
空字符串和 null 语义本来就不一样, 直接怼回去
|
|
58
@passerbytiny
elasticsearch 查询文档中字段为""的需求又不是没有 |
|
kevin1852May 30, 2019
59
应该是 API 里的可空请求参数没有传或者传的“”,bind parameter 时自动转成了“”,然后查询的时候只判断了是不是 null,导致查询不到结果吧?
|
|
kuyuzhiqiMay 30, 2019
60
做 Android 的表示会自己用 TextUtils.isEmpty()判断,这种 Android 可以走了
|
|
sanqianMay 30, 2019
61
怼回去啊
|
|
kuyuzhiqiMay 30, 2019
62
@gouchaoer2 确实,这么点东西不至于说这么重的话
|
|
biantaoGGMay 30, 2019
63
表示这种难道后端不应该也做吗,本人安卓开发,这种接口一般调之前都会用 TextUtils.isempty 判断,但是后端也应该对非必须字段做判空处理啊,并且很显然后端更应该做啊,你的接口又不一定只有我一个人调,防止接口报错难道不应该做好各种判空?
|
|
zekMay 30, 2019 via Android
64
公司规定要把空字符串转成 null? 没有就按你的规矩来,还惯着他不成
|
|
mmskyMay 30, 2019
65
这个是谁强势谁有理。我服务端的,有时候有些数据需要处理一下,不想吵架的时候了,就处理好再返回。想吵架的时候,就懒得处理,直接返回
|
|
66
|
|
biantaoGGMay 30, 2019
67
楼上的老哥们怎么都理解成了人家要把""转成 null 啊, 很明显是客户端穿了个""参数到服务端,让服务端吧""当成 null 一样的无数据处理,wfl
|
|
kuyuzhiqiMay 30, 2019
68
@passerbytiny 那也差不多,Android 端为啥不做 TextUtils.isEmpty()判断再请求,😄
|
|
wangcansunMay 30, 2019
69
null 和空字符串是两件事啊
|
|
liukanshanMay 30, 2019
70
还没看出来吗 这个已经不是接口对错的问题了 而是对你个人有一些看法 。
协议应该约定好 空字符串转换成 null 会更容易导致空指针 甚至在一些书里面为了避免空指针都采用这种写法 return null => return new ArrayList() 谁对谁错应该很清楚吧 你也没有必要和同事争论 你同事非蠢即坏。 另外为什么要离职 他让你不爽 你也可以让他不爽。 |
|
wl904836468May 30, 2019
71
你应该继续挖更大的坑,恶心死他,到时候直接甩锅到他头上。他还怼你的话,怂啥,下班别走
|
|
passerbytinyMay 30, 2019
72
假如界面长这样(字符画请复制到文本编辑器中并采用等宽字体查看):
+-----+ A |abc | +-----+ +-----+ B | | +-----+ 那么,此时 B 是 null 还是 "" |
|
passerbytinyMay 30, 2019
73
@kuyuzhiqi #64 见上面。这不是 TextUtils.isEmpty() 能解决的事
|
|
TobiahShawMay 30, 2019
74
建议定义接口的时候,定义是否可空,例如文档定义变量类型的时候,Integer Nullable ; int NotNull ;
|
|
TobiahShawMay 30, 2019
75
建议工作的时候还是要以解决问题为目的,而不是互相伤害,这样他出发点不是解决问题抱怨的时候,就会显得他很 low (或许吧,至少你这么想不会让自己很尴尬,而去理性分析解决方案)。
主要还是建议公事公办。 |
|
jxf2008May 30, 2019
77
下班后直接找到真人 PK,然后双双被开除
话说就算走也要拉个垫背的吧 |
|
ben1024May 30, 2019
78
怼回去
|
|
birdrallyMay 30, 2019 via iPhone
79
他说的前半句在理,有则改之,走不是必须的
|
|
mrdemonsonMay 30, 2019 via Android
80
对象的 null 和""是完全不同的概念,好比领导安排了研究任务,没做和做了但没研究出来,完全是两个问题。对接时候,要做好接口规范,用文档白纸黑子写出来,避免接锅,容易追责。
|
|
66betaMay 30, 2019 via Android
81
不是技术问题,是情商问题
如果他对别人不这样,你自己也查查原因 |
|
wanghaaMay 30, 2019 via Android
82
这尼玛是服务端没做校验,一群人怎么理解的,真服了
|
|
tabris17May 30, 2019
83
你跟他谁比较强壮?
|
|
wanghaaMay 30, 2019 via Android
84
@passerbytiny 一群瞎子,我佛了
|
|
ThomasZMay 30, 2019 via Android
85
这前端怼后端。。。 凭什么转 null
|
|
chairuosenMay 30, 2019
86
我理解是不是类似搜索接口,query?keyword= ,结果 keyword=''没返回结果,客户端期待返回全部内容。
如果是,是你的问题。 |
|
tt67wqMay 30, 2019
87
忍一时越想越气,退一步越想越亏
|
|
huage2580May 30, 2019
89
8 说了,我觉得 86L 说的对
|
|
winglight2016May 30, 2019
90
lz 无需反驳啊,后台是需要处理这种情况的——你不能假定传过来的值“全部”是经过校验的。http 协议里,参数的等号后面什么都没有就表示 java 里的 null,前端这么搞毫无问题。
至于走不走,我是觉得不至于这么点小事儿就要离职吧,有则改之,无则加勉啊。每个人遇到自己的知识盲点都要离职,这项目就没法做啦。 |
|
amonMay 30, 2019
91
判断参数不等于 null,并且不等于空字符串,才将参数设置到查询条件里面。
沟通不就完了,让他气到骂人估计你当时也挺拽的~ |
|
92
@RicardoY #10 空值 null 值在 json 序列化的时候可以过滤掉。
|
|
GakhoMay 30, 2019
93
Python 就这点好, 一个 if xxx 就能同时去掉了 None 跟空字符串了🙃
|
|
loryyangMay 30, 2019
94
空和 null 就不是一个东西啊,得看具体业务定义,需要的到底是什么,这个属于定接口的问题。不是水平问题
|
|
pcatzjMay 30, 2019 via Android
95
即使楼主有理,这种反讽也让人膈应
|
|
yanyuyu89757May 30, 2019
96
有这种同事,直接给他一个大嘴巴子
|
|
shx1943May 30, 2019
97
我上一家公司老板在背后说我技术垃圾,连他上学时候技术都不如,然后第二天招聘经验三年的技术,我干了不到一年,去他那干了不到一个月,把三个新人全部踢掉
|
|
runtu2019May 30, 2019
98
@chairuosen #86
应该是这么个理,后端根据可选参数过滤出结果,安卓传了“”,后端没做好验证去除可选参数或者判空,直接根据“”过滤的结果出问题了 这真的是个低级错误了,最后发现是你在接受传参时没做好验证,要我我也抓狂 但是对方这种方法肯定是不可取的,顶多开玩笑叫请吃顿饭算了 有点自信,慢慢积累经验吧,查询数据库的时候多考虑传入字符串的可能性 加油,共勉 |
|
loy6491May 30, 2019
99
可能他是培训班的中等生。
|
|
whl619969187May 30, 2019
100
难道他是培训班的优等生?
|