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