日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求求你!不要在网上乱拷贝代码了!一段网上找的代码突然炸了,项目出现大BUG...

發布時間:2024/9/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求求你!不要在网上乱拷贝代码了!一段网上找的代码突然炸了,项目出现大BUG... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:陳宏鴻

鏈接:https://www.cnblogs.com/aspwebchh/p/12220673.html

作者是做游戲服務器開發的,碰到一個需求,給符某些要求的玩家的發送道具獎勵,獎勵的數量根據離線的天數計算。

這個需求實現起來很簡單,只需要在玩家上線的時候計算上次離線時間和當前時間間隔的天數,然后根據策劃的算法,計算出道具種類與數量,發一封郵件給玩家就可以了。

計算兩個時間間隔天數的函數沒有現成的,自己又懶得寫,就上谷歌搜了下,選了第一條結果,代碼如下

public?static?int?differentDays(Date?date1,Date?date2){Calendar?cal1?=?Calendar.getInstance();cal1.setTime(date1);Calendar?cal2?=?Calendar.getInstance();cal2.setTime(date2);int?day1=?cal1.get(Calendar.DAY_OF_YEAR);int?day2?=?cal2.get(Calendar.DAY_OF_YEAR);int?year1?=?cal1.get(Calendar.YEAR);int?year2?=?cal2.get(Calendar.YEAR);if(year1?!=?year2)???//同一年{int?timeDistance?=?0?;for(int?i?=?year1?;?i?<?year2?;?i?++){if(i%4==0?&&?i%100!=0?||?i%400==0)????//閏年{timeDistance?+=?366;}else????//不是閏年{timeDistance?+=?365;}}return?timeDistance?+?(day2-day1)?;}else????//不同年{System.out.println("判斷day2?-?day1?:?"?+?(day2-day1));return?day2-day1;}}

代碼來源:https://www.cnblogs.com/0201zcr/p/5000977.html

把代碼復制到項目里,調試下,發現沒問題就直接用了,畢竟谷歌結果第一名,放心。

這段代碼跑了幾個月一直沒問題,但是到了2020-1-1日那天,有玩家反饋收到了幾百封獎勵郵件,高興壞了,但是出于對游戲的熱愛,還是通知了運營人員。

運營把bug反饋到服務器這邊后我開始排查,百思不得其解的是最近幾天都沒有更新服務器, 而前幾天服務器都穩穩地,怎么突然就出BUG了呢。

接下來就是分析玩家數據,結合代碼邏輯確定問題所在,最終根據BUG的表現排除了所有可能性后,發現唯一可能出問題的地方就是那個網上復制過來的計算天數差的函數。

根據調試發現,這個函數在兩個日期參數是不同的年份并且第一個日期大于第二個日期的時候,會返回一個錯誤的結果

比如

differentDays("2020-1-1","2019-12-25")

理論上這么調用正確的結果是 -7,但是因為函數有bug,調用結果是 358

于是本來不用發獎勵,因為這種特殊情況一下子發出去358份,嚴重影響了游戲某類道具的平衡性。

至于補救方式就是統計名單,把發出去但還沒有用掉的道具回收,用掉的就當福利,然后再發公告道歉,再送些其他物品彌補。

也幸好補救的及時,要是這些道具收不回來,游戲運營的策略都要大變了,我特么肯定沒好果子吃了。

所以千萬別在網上復制來路不明的代碼亂用,如果真的要用,必須反復測試,否則哪一天突然暴雷有你受的。

改用Java8的日期庫修復了BUG

????public?static?int?differentDays(Date?date1,?Date?date2)?{if?(date1?==?null?||?date2?==?null)?{throw?new?RuntimeException("日期不能為空");}LocalDate?localDate1?=?date2LocalDate(date1);LocalDate?localDate2?=?date2LocalDate(date2);return?Generic.long2int(localDate1.until(localDate2,?ChronoUnit.DAYS));}public?static?LocalDate?date2LocalDate(Date?date)?{Instant?instant?=?date.toInstant();ZoneId?zoneId?=?ZoneId.systemDefault();LocalDate?localDate?=?instant.atZone(zoneId).toLocalDate();return?localDate;}

知乎:https://www.zhihu.com/people/aspwebchh

github:https://github.com/aspwebchh

email:mailto:aspwebchh@gmail.com

? ???精 彩 文 章?

  • Python的heapq模塊源碼分析

  • Python進階:enum模塊源碼分析

  • 超好看的弦圖,Python一行代碼就能做

  • seaborn常用的10種數據分析圖表

END

來和小伙伴們一起向上生長呀~~~

掃描下方二維碼,添加小詹微信,可領取千元大禮包并申請加入 Python學習交流群,群內僅供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學習」,我會盡快通過好友申請哦!

(添加人數較多,請耐心等待)

(掃碼回復 1024? 即可領取IT資料包)

總結

以上是生活随笔為你收集整理的求求你!不要在网上乱拷贝代码了!一段网上找的代码突然炸了,项目出现大BUG...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品卡一 | 一级肉体全黄裸片中国 | 国产精品第8页 | 日本不卡一区在线观看 | 日本aaa视频| 一级成人免费 | 黄色三级在线观看 | 91国偷自产一区二区三区女王 | 国产肥老妇视频 | 九色在线观看 | 亚洲人视频在线观看 | 亚洲成a人片77777精品 | 成人国产视频在线观看 | 男女裸体无遮挡做爰 | 日韩天堂在线 | 国产女教师一区二区三区 | 少妇高潮av| 欧美日韩一区二区久久 | av黄在线 | 97人妻人人揉人人躁人人 | 色又黄又爽 | 殴美毛片 | 久久久久久久久久综合 | 17c国产精品一区二区 | 夜夜嗨av | 污污网站在线播放 | 国产综合视频在线 | 伊人7| 99视频免费| 国产日韩精品一区二区三区 | 欧美人与动牲交a欧美精品 欧美三级在线看 | 亚洲人免费视频 | 色97色| 在线免费看av | 亚州av免费 | av不卡高清 | 亚洲成人久久久 | 免费日b视频 | 久久久久国产视频 | 日本精品久久久久久久 | 婷婷精品视频 | 国产精品久久久999 www日本高清视频 | www.久久网 | 久久久久久久9 | 国产熟女一区二区 | 午夜久久久久久久久 | 少妇毛片一区二区三区 | 男生插女生视频 | 中文字幕天堂在线 | 少妇高潮久久久 | 国产热99 | 国内精品视频在线 | 成人精品一区二区三区中文字幕 | 国产一区二区精华 | 日本激情网 | 国产九色av| www亚洲色图| 亚洲最大福利视频网 | 三及毛片| 狠狠gao | 国产乱子伦精品无码码专区 | 欧美性aaa| 草草影院国产第一页 | 美女裸体网站久久久 | 色视频国产 | www.国产精品.com | 亚洲国产精品成人午夜在线观看 | 色偷偷av | 免费成人在线观看视频 | 国产精品女同一区二区 | 久久99热精品 | 天天操夜夜摸 | 荡女精品导航 | 波多野结衣福利视频 | 手机看片日韩国产 | 女人喷潮完整视频 | 日本成人久久 | 欧美怡红院视频一区二区三区 | 最近免费中文字幕大全免费版视频 | 亚洲中文字幕一区二区 | 久久精品无码一区二区三区 | 91成人免费看 | 少妇高潮一区二区三区99欧美 | 毛片全黄 | 另类综合视频 | 按摩ⅹxxx性hd中国 | 在线观看日本网站 | 亚洲va在线 | 国产又粗又猛又爽又黄又 | 成人av一区二区三区 | 日本男人的天堂 | av丝袜天堂 | 人人九九| www黄色在线观看 | 色综合久久久久 | 麻豆免费观看网站 | 五月婷在线 | 亚洲欧美成人 | 日韩在线专区 |