我可能遇到了假 Java 程序员

2018-02-09 13:12:49 +08:00
 qce7

忍不住来 v2 吐槽了,由于业务需要,我们部门和另一个部门的系统要做频繁的接口交互,但是,他们的接口有百分之几的概率会出险空指针异常,各种 504,更奇葩的还会出险访问 A 接口会返回 B 接口的数据。。

这样的情况持续了大半年,年前任务不多昨天终于忍不住找到他们一个开发,帮他找到日志,定位到了一个存储 sql 数据的对象,对其引用居然是 static 的。。

他们部门接近 10 个 java 程序员,项目上线这么久居然才发现,还是我这个其他部门的 phper 发现并给出解决方案的,觉得有点奇葩

8658 次点击
所在节点    程序员
67 条回复
enzohobmg
2018-02-10 21:04:51 +08:00
跟 java 有什么关系 扯犊子
beginor
2018-02-11 07:01:58 +08:00
这个也碰到过,非 static 也的 connection 对象也会这样, 并发量一大就出现了。 不只是代码审核,压力测试也能测出问题。
atcdef
2018-02-11 08:59:16 +08:00
就是把本该作为对象成员的设置成了类成员,导致 new 了两个类的实例,A 对象设置 sql 设置完,还没来得及执行查询,B 对象又设置了 sql,由于这个 sql 成员是静态成员,所有该类的对象共享的,然后 A 类再执行查询时执行了 B 设置的 sql,结果当然不对啦。
atcdef
2018-02-11 09:01:19 +08:00
不过我觉得,这一般不该由程序员背锅,是架构的锅,缺少责任心。
renke
2018-02-11 09:38:08 +08:00
sqlRes 指得难道不是 sqlResult ?
并发时,客户端 1 调用 A,客户端 2 调用 B,1 查询结束,sqlRes=result1,还来得及没有返回,2 查询结束,sqlRes=result2
,此时返回 sqlRes 其实是 result2,所以,调用 A,返回了 B 结果。
另外,你们好像天生就知道每个关键字的用法?
目前的大环境下面,有多少人是因为对应业务场景或者工作需求去研究语言细节,又有多少人因为兴趣去研究语言细节?
49gd
2018-02-11 11:18:03 +08:00
可能是菜 可能是没责任心 跟什么语言没什么关系吧
TZ
2018-02-11 14:49:11 +08:00
写出这样的垃圾代码,我服气

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

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

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

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

© 2021 V2EX