求问一些java的代码逻辑问题,为什么要这么写

比如我目前做的是一个关闭订单的功能,传入的参数是订单id,
按理来说 我前台应该是所有未关闭的订单才会进到这个方法里面,
为什么代码里面第一行还是获取到订单,然后判断状态是否已关闭,
按理来说不应该是只有未关闭的订单才会进来吗,这一步不是多余的吗。

慕丝7291255
浏览 374回答 3
3回答

Smart猫小萌

多线程修改更新,重复点击等操作都可能对已经关闭的订单再次操作,这是个时序问题,其实这样做的目的主要还是出于安全性和减少数据库操作测次数。

噜噜哒

有这么几个原因你会干“第一行代码先判断状态”1,有的人直接跳过前面的过程(比如之前过程的URL链接),到中间的某一步,甚至使用机器模拟而非人类操作。2,有多个人同时操作某条记录,他们可能是同时登录在同一个页面操作,也可能是不同的功能模块、终端设备改变同一个订单的状态3,这个方法需要复用,或不确定有没有其他人以后会调用(哪怕那个人是你自己)严谨的、健壮的代码,都是会先判断各种状态的,10行代码8行检查是很正常的,程序员慢慢都会养成“得到什么,先检验什么,如果条件不满足,考虑如何返回”的编程思考方式。检查对象本身、检查状态、检查业务逻辑是否正确。这样写出的代码bug会少很多。

潇潇雨雨

主要是基于安全的考虑,如果将特殊情况排除在外,防止出现异常
打开App,查看更多内容
随时随地看视频慕课网APP