第一卷:宿命的召喚_第六章 不具合1

五月十八日,週四,AM9:00。   姜北在自己辦公桌前填着借款表格。   根據公司的規矩,出差或常駐的人員在臨行前可以向公司借款,金額2萬到十萬不等,出差或常駐回來後再拿發票報銷,這對於經濟狀況不好的員工來說這是個很惠民的政策。因爲都是內部人,通常審批的都很快,隔天款項就會打進來。   姜北的手頭很緊,僅憑自己手裡的那點錢,換成日元到那邊根本不夠自己的花銷,所以出發前他需要先向公司借筆款。通常出差的人員不論手頭是否寬裕都會這麼做,反正也沒有利息,何樂而不爲呢?   他正低頭填着表格,旁邊一個聲音道:“北哥,忙什麼呢?”   姜北擡頭一看,是韓鈺,因爲項目前天剛提交,項目組這兩天難得清閒。   姜北笑道:“沒什麼,填個表格,出差前向公司借點錢。”   因爲昨天晚上跟她的約定,他今天的心情大好。   “你下週就要走了吧?”   “是啊,你有什麼想帶的不用客氣,儘管開口。”   姜北對韓鈺的印象一向很好,他工作認真,脾氣又好,是自己的得力助手。   韓鈺笑道:“那太好了,讓我想想……”他摸着下巴沉吟一會兒,說道:“你到那邊後就給我寄點清酒吧,中國酒我喝過很多,日本酒還真從來都沒嘗過。”   姜北笑道:“沒問題,等我到那邊什麼清酒燒酒的都讓你喝個夠。”   韓鈺大笑,摟着姜北肩膀道:“北哥真是夠義氣……”   兩人正說着,不遠處的李麗薇衝這邊喊道:“姜北,你過來一下。”   李麗薇的辦公桌離姜北那也就五六米,姜北拍拍韓鈺,走到她身邊,笑問道:“李姐也需要我帶點什麼東西嗎?”   姜北今天

心情着實不錯,不然他平時是很少跟她開玩笑的。   李麗薇面沉似水,指着自己的顯示器,對他說道:“你看看這個。”   姜北見她面色不善,心中正疑惑,便轉頭看向她的顯示器,頓時吃了一驚。   李麗薇給他看的是日方剛剛發來的一封EMail,裡面的內容是昨天晚上在日方的真實運行環境上出現了重大的不具合,直接導致服務器崩潰,現在正在緊急維護中,而照成這個問題的正是前天S市分部提交的項目。日方總部對這件事情十分惱怒,勒令這邊馬上調查不具合原因。   這封EMail是直接發給周東亦的,另外抄送給了幾個公司高層。   姜北怔怔的看着顯示器,剛纔的笑容就像凝固了一般,硬生生的僵在了臉上,他瞬間就意識到了這次問題的嚴重性,如果事情屬實,自己作爲項目的負責人實在是難辭其咎。   “會不會……是他們搞錯了。”姜北驚訝的發現自己竟然磕巴了,說出的這話連自己都不信。   “希望是吧,”李麗薇臉色難看極了,“我把郵件轉發給你,你趕緊回去看看,一會兒可能會開檢討會,你要有所準備。”   “好的。”姜北應了一聲,趕忙回到了自己的座位。   正像李麗薇說的那樣,周東亦對這件事極其重視,下午一點便召集了衆人開檢討會,與會的有公司幾個高層,品質部的幾人和項目組的相關人員。   會議的主題是分析這次重大不具合的原因,主要由品質部的嚴亦分析講解。   會議室的氣氛很壓抑,周東亦更是陰沉着一張臉,這次的事故讓他受到總部的嚴厲批評,正在氣頭上,這時候誰也不敢多說話,生怕觸了黴頭。   嚴亦打開投影儀,將會議室的電腦遠程連接到自己的電腦

上,開始了分析講解。   “這次不具合的原因已經初步調查清楚,之所以照成日方服務器的崩潰,是因爲程序中的邏輯出錯,形成了死循環。具體出錯的地方我已經定位到,大家看下面這段代碼……”   嚴亦說着打開了一個文件,映在牆壁的投影上顯示出了一段代碼:   for(inti=0;i<getLength();i++){//todo...ListaccountList=accountDao.getAccountInfo();//todo...if(getLength()>CONSTANTS.MAX_LENGTH){break;}//todo...}   “大家請看,代碼for循環中對DB做了一些請求,但是循環上限的getLength方法得到的數值卻是一個天文數字,所以照成這個循環始終在運行,大量的DB請求直接導致了服務器超載,最後崩潰……”   “那爲什麼我們這邊的測試沒有出現問題?”李麗薇打斷嚴亦的講解問道。   “那是因爲我們這邊的數據量小,而日方的真實運行環境中卻是非常龐大的數據量,所以同樣的代碼在不同的環境中運行次數完全不在一個數量級。”   嚴亦停頓了一下,見李麗薇沒有異議,正要繼續講解,旁聽的韓鈺突然打斷道:“我有個問題。”   “你說。”   “你看for循環中的代碼,在if語句中明明有跳出循環的break,如果getLength方法得到的結果真是一個天文數字,循環早在達到常量CONSTANTS.MAX_LENGTH定義的上限值前就跳出循環了,怎麼可能一直進行下去?”

(本章完)

第六卷:虛擬的現實_第一百六十五章 作弊第四卷:世界的真相_第九十三章 人禍第六卷:虛擬的現實_第一百六十八章 避禍第五卷:真實的世界_第一百二十六章 送餐第三卷:抵拒的覺醒_第六十七章 拒絕第四卷:世界的真相_第七十六章 探底第六卷:虛擬的現實_第一百六十五章 作弊第六卷:虛擬的現實_第一百六十七章 慎始第五卷:真實的世界_第一百二十三章 明修棧道第五卷:真實的世界_第一百二十三章 明修棧道第四卷:世界的真相_第一百零五章 斬首第一卷:宿命的召喚_第二十一章 背叛第二卷:迷茫的揚帆_第三十九章 收線(2)第六卷:虛擬的現實_第一百六十六章 試卦第六卷:虛擬的現實_第一百七十二章 入夥第五卷:真實的世界_第一百四十五章 爭論第四卷:世界的真相_第八十七章 移情第五卷:真實的世界_第一百二十九章 風逝第六卷:虛擬的現實_第一百六十九章 殘酷世界第六卷:虛擬的現實_第一百六十八章 避禍第二卷:迷茫的揚帆_第三十四章 決意第三卷:抵拒的覺醒_第七十五章 崩潰第三卷:抵拒的覺醒_第六十七章 拒絕第二卷:迷茫的揚帆_第三十一章 開眼第五卷:真實的世界_第一百一十四章 趙彥兮第二卷:迷茫的揚帆_第二十四章 小鎮風雲(2)第五卷:真實的世界_第一百二十四章 暗度陳倉第二卷:迷茫的揚帆_第四十五章 死與生第三卷:抵拒的覺醒_第四十九章 警告第三卷:抵拒的覺醒_第六十六章 去執着第五卷:真實的世界_第一百一十五章 融合第三卷:抵拒的覺醒_第五十二章 陰雲第五卷:真實的世界_第一百五十章 特13服第四卷:世界的真相_第九十四章 離別第七卷:夢中的夢中_第一百九十三章 拐點第六卷:虛擬的現實_第一百八十七章 解圍第三卷:抵拒的覺醒_第七十四章 神廟第二卷:迷茫的揚帆_第四十五章 死與生第六卷:虛擬的現實_第一百八十四章 新力量第六卷:虛擬的現實_第一百六十四章 賭卦第六卷:虛擬的現實_第一百五十六章 販奴第一卷:宿命的召喚_第三章 試探1第三卷:抵拒的覺醒_第五十四章 無需再忍第六卷:虛擬的現實_第一百八十六章 百鼠第七卷:夢中的夢中_第一百九十八章 攤牌第一卷:宿命的召喚_第七章 不具合2第六卷:虛擬的現實_第一百六十四章 賭卦第五卷:真實的世界_第一百二十三章 明修棧道第五卷:真實的世界_第一百四十四章 決議第五卷:真實的世界_第一百四十八章 彈劾第五卷:真實的世界_第一百四十三章 委員擴大會議第二卷:迷茫的揚帆_第三十章 我還是我第五卷:真實的世界_第一百二十章 歌德爾命題第三卷:抵拒的覺醒_第四十七章 三個預言第一卷:宿命的召喚_第十一章 科學邊界第六卷:虛擬的現實_第一百六十九章 殘酷世界第五卷:真實的世界_第一百二十七章 平衡第二卷:迷茫的揚帆_第二十六章 轉機(1)第五卷:真實的世界_第一百二十二章 特殊身份第三卷:抵拒的覺醒_第六十三章 再會牛教授第四卷:世界的真相_第九十七章 割袍第五卷:真實的世界_第一百四十五章 爭論第三卷:抵拒的覺醒_第七十三章 沙丘上的危房第七卷:夢中的夢中_第一百九十六章 反諷第四卷:世界的真相_第八十七章 移情第三卷:抵拒的覺醒_第六十八章 提前協議第三卷:抵拒的覺醒_第七十五章 崩潰第一卷:宿命的召喚_第十二章 成交第五卷:真實的世界_第一百二十四章 暗度陳倉第二卷:迷茫的揚帆_第二十九章 屈辱第六卷:虛擬的現實_第一百八十二章 夜戰第六卷:虛擬的現實_第一百五十九章 陳楓第二卷:迷茫的揚帆_第四十二章 救贖第六卷:虛擬的現實_第一百五十七章 兇獸第四卷:世界的真相_第八十四章 突襲第五卷:真實的世界_第一百四十四章 決議第六卷:虛擬的現實_第一百五十九章 陳楓第一卷:宿命的召喚_第一章 畫中仙第二卷:迷茫的揚帆_第三十七章 撒網(2)第二卷:迷茫的揚帆_第四十五章 死與生第六卷:虛擬的現實_第一百五十五章 官道第五卷:真實的世界_第一百四十二章 圈套第五卷:真實的世界_第一百一十一章 起源(2)第一卷:宿命的召喚_第六章 不具合1第七卷:夢中的夢中_第一百九十八章 攤牌第一卷:宿命的召喚_第十四章 餌第六卷:虛擬的現實_第一百七十四章 攻城第四卷:世界的真相_第九十一章 恐慌第五卷:真實的世界_第一百四十四章 決議第四卷:世界的真相_第九十四章 離別第六卷:虛擬的現實_第一百八十八章 一波又起第六卷:虛擬的現實_第一百六十三章 枉嘆第一卷:宿命的召喚_第二十二章 命運第六卷:虛擬的現實_第一百八十九章 進化第一卷:宿命的召喚_第十七章 評級1第六卷:虛擬的現實_第一百七十八章 反擊第五卷:真實的世界_第一百一十二章 起源(3)第四卷:世界的真相_第八十九章 風情第六卷:虛擬的現實_第一百六十一章 異狀
第六卷:虛擬的現實_第一百六十五章 作弊第四卷:世界的真相_第九十三章 人禍第六卷:虛擬的現實_第一百六十八章 避禍第五卷:真實的世界_第一百二十六章 送餐第三卷:抵拒的覺醒_第六十七章 拒絕第四卷:世界的真相_第七十六章 探底第六卷:虛擬的現實_第一百六十五章 作弊第六卷:虛擬的現實_第一百六十七章 慎始第五卷:真實的世界_第一百二十三章 明修棧道第五卷:真實的世界_第一百二十三章 明修棧道第四卷:世界的真相_第一百零五章 斬首第一卷:宿命的召喚_第二十一章 背叛第二卷:迷茫的揚帆_第三十九章 收線(2)第六卷:虛擬的現實_第一百六十六章 試卦第六卷:虛擬的現實_第一百七十二章 入夥第五卷:真實的世界_第一百四十五章 爭論第四卷:世界的真相_第八十七章 移情第五卷:真實的世界_第一百二十九章 風逝第六卷:虛擬的現實_第一百六十九章 殘酷世界第六卷:虛擬的現實_第一百六十八章 避禍第二卷:迷茫的揚帆_第三十四章 決意第三卷:抵拒的覺醒_第七十五章 崩潰第三卷:抵拒的覺醒_第六十七章 拒絕第二卷:迷茫的揚帆_第三十一章 開眼第五卷:真實的世界_第一百一十四章 趙彥兮第二卷:迷茫的揚帆_第二十四章 小鎮風雲(2)第五卷:真實的世界_第一百二十四章 暗度陳倉第二卷:迷茫的揚帆_第四十五章 死與生第三卷:抵拒的覺醒_第四十九章 警告第三卷:抵拒的覺醒_第六十六章 去執着第五卷:真實的世界_第一百一十五章 融合第三卷:抵拒的覺醒_第五十二章 陰雲第五卷:真實的世界_第一百五十章 特13服第四卷:世界的真相_第九十四章 離別第七卷:夢中的夢中_第一百九十三章 拐點第六卷:虛擬的現實_第一百八十七章 解圍第三卷:抵拒的覺醒_第七十四章 神廟第二卷:迷茫的揚帆_第四十五章 死與生第六卷:虛擬的現實_第一百八十四章 新力量第六卷:虛擬的現實_第一百六十四章 賭卦第六卷:虛擬的現實_第一百五十六章 販奴第一卷:宿命的召喚_第三章 試探1第三卷:抵拒的覺醒_第五十四章 無需再忍第六卷:虛擬的現實_第一百八十六章 百鼠第七卷:夢中的夢中_第一百九十八章 攤牌第一卷:宿命的召喚_第七章 不具合2第六卷:虛擬的現實_第一百六十四章 賭卦第五卷:真實的世界_第一百二十三章 明修棧道第五卷:真實的世界_第一百四十四章 決議第五卷:真實的世界_第一百四十八章 彈劾第五卷:真實的世界_第一百四十三章 委員擴大會議第二卷:迷茫的揚帆_第三十章 我還是我第五卷:真實的世界_第一百二十章 歌德爾命題第三卷:抵拒的覺醒_第四十七章 三個預言第一卷:宿命的召喚_第十一章 科學邊界第六卷:虛擬的現實_第一百六十九章 殘酷世界第五卷:真實的世界_第一百二十七章 平衡第二卷:迷茫的揚帆_第二十六章 轉機(1)第五卷:真實的世界_第一百二十二章 特殊身份第三卷:抵拒的覺醒_第六十三章 再會牛教授第四卷:世界的真相_第九十七章 割袍第五卷:真實的世界_第一百四十五章 爭論第三卷:抵拒的覺醒_第七十三章 沙丘上的危房第七卷:夢中的夢中_第一百九十六章 反諷第四卷:世界的真相_第八十七章 移情第三卷:抵拒的覺醒_第六十八章 提前協議第三卷:抵拒的覺醒_第七十五章 崩潰第一卷:宿命的召喚_第十二章 成交第五卷:真實的世界_第一百二十四章 暗度陳倉第二卷:迷茫的揚帆_第二十九章 屈辱第六卷:虛擬的現實_第一百八十二章 夜戰第六卷:虛擬的現實_第一百五十九章 陳楓第二卷:迷茫的揚帆_第四十二章 救贖第六卷:虛擬的現實_第一百五十七章 兇獸第四卷:世界的真相_第八十四章 突襲第五卷:真實的世界_第一百四十四章 決議第六卷:虛擬的現實_第一百五十九章 陳楓第一卷:宿命的召喚_第一章 畫中仙第二卷:迷茫的揚帆_第三十七章 撒網(2)第二卷:迷茫的揚帆_第四十五章 死與生第六卷:虛擬的現實_第一百五十五章 官道第五卷:真實的世界_第一百四十二章 圈套第五卷:真實的世界_第一百一十一章 起源(2)第一卷:宿命的召喚_第六章 不具合1第七卷:夢中的夢中_第一百九十八章 攤牌第一卷:宿命的召喚_第十四章 餌第六卷:虛擬的現實_第一百七十四章 攻城第四卷:世界的真相_第九十一章 恐慌第五卷:真實的世界_第一百四十四章 決議第四卷:世界的真相_第九十四章 離別第六卷:虛擬的現實_第一百八十八章 一波又起第六卷:虛擬的現實_第一百六十三章 枉嘆第一卷:宿命的召喚_第二十二章 命運第六卷:虛擬的現實_第一百八十九章 進化第一卷:宿命的召喚_第十七章 評級1第六卷:虛擬的現實_第一百七十八章 反擊第五卷:真實的世界_第一百一十二章 起源(3)第四卷:世界的真相_第八十九章 風情第六卷:虛擬的現實_第一百六十一章 異狀