亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求問一些java的代碼邏輯問題,為什么要這么寫

求問一些java的代碼邏輯問題,為什么要這么寫

慕絲7291255 2018-06-23 10:34:35
比如我目前做的是一個關閉訂單的功能,傳入的參數是訂單id,按理來說 我前臺應該是所有未關閉的訂單才會進到這個方法里面,為什么代碼里面第一行還是獲取到訂單,然后判斷狀態是否已關閉,按理來說不應該是只有未關閉的訂單才會進來嗎,這一步不是多余的嗎。
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

多線程修改更新,重復點擊等操作都可能對已經關閉的訂單再次操作,這是個時序問題,其實這樣做的目的主要還是出于安全性和減少數據庫操作測次數。

查看完整回答
反對 回復 2018-07-13
?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

有這么幾個原因你會干“第一行代碼先判斷狀態”
1,有的人直接跳過前面的過程(比如之前過程的URL鏈接),到中間的某一步,甚至使用機器模擬而非人類操作。
2,有多個人同時操作某條記錄,他們可能是同時登錄在同一個頁面操作,也可能是不同的功能模塊、終端設備改變同一個訂單的狀態
3,這個方法需要復用,或不確定有沒有其他人以后會調用(哪怕那個人是你自己)

嚴謹的、健壯的代碼,都是會先判斷各種狀態的,10行代碼8行檢查是很正常的,程序員慢慢都會養成“得到什么,先檢驗什么,如果條件不滿足,考慮如何返回”的編程思考方式。檢查對象本身、檢查狀態、檢查業務邏輯是否正確。這樣寫出的代碼bug會少很多。


查看完整回答
反對 回復 2018-07-13
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

主要是基于安全的考慮,如果將特殊情況排除在外,防止出現異常

查看完整回答
反對 回復 2018-07-13
  • 3 回答
  • 0 關注
  • 411 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號