第7章 ☆、章
大約在自己這邊tales of miracles的框架設計出好時,廖星聽到了一個噩耗。
理念不合也好,設計分歧也罷,線上開發組主要負責婚介項目的幾個組長,一夜之間全都離開了公司。
山雨欲來風滿樓的窒息的氣氛,彌漫在所有負責開發的工程師頭頂。下面群龍無首,一個個似熱鍋上的螞蟻來回轉。
不管外面是怎樣的大晴天,公司內部永遠烏雲密布,風雨飄搖。
廖星感到大事不好。
婚介公司砸了大價錢,如果這次合作黃了,公司的名譽會一落千丈,大約以後生意也會越來越難做。
搞不好,現在寬松的開發環境将一去不複返,甚至飯碗不保。
他可是在系統裏模拟出一塊以假亂真的鑽石,可惜至今為止,仍然在那個角落裏扔着。
但他沒人可送。
唯一想送的人,和他分手了。
于是,大約在推翻重做到第十幾版時,這份燙手的熱山芋從天而降,砸到廖星眼前。為了自己的前途,廖星沒轍,只得戰戰兢兢地接住滾燙的頑石。
一組暫停了手上所有的開發任務,來支援這個項目。
當他聽說這口大黑鍋有人陪他一起背,他還挺高興,結果第一次碰頭會議,另一邊開發人員的頭頭卻是——
羅西。
這可真的太完美了。
他覺得公司有病,沒有推脫這項目的自己有病。羅西更有病。
因為一開始産品經理提出的設計完全不可靠,根本沒辦法實現,在轉手幾次後,推到羅西和廖星的面前時,說該項目是一盤散沙還是好的,在負責開發的人員眼裏看,簡直是污濁的爛泥。
他們現在是完全自由——唯一的要求就是做出兩個AI,讓他們遵循一條線,重逢、重知、約會,最終愛意戰勝一切,複合,天荒地老,天長地久。
可是公司裏誰都知道,羅西和廖星不對盤,每見必吵。
他們同期進入公司,同時升了開發組組長。在職的每一天,他們大吵不聽,小吵不斷,學術上南轅北轍。
在同一組時沒辦法,他們天天要合作,而且當時的組長好像特喜歡他們,天天把他倆湊對編程。
後來倆人分別升了組長,幾乎所有人都默認,最好不要讓他們合作同一個項目。
而婚介項目卻不得不同時請出這兩組。
這一下,此項目的危急度不言而喻,全司周知。
大約羅西和廖星也都沒想到事情會發展到這一步。
當時已經是一月份,這個版本的部署是情人節當天的淩晨,也就是二月十四日,而最終版RC至少要在新版本部署前兩周完成,以進行集成測試。
他們只有一個月左右。
時間過于緊迫,他們沒辦法像原來那樣,花上一個星期或更長的時間來頭腦風暴,想到更好的點子。
如果有現成的模版,甚至是現實中的原型,那許多步驟都可以簡略,利用代碼實現起來則方便許多。
現成的模版是走不通了。
原型的話……分手了卻看起來對彼此還有那麽點意思的情侶……
其實答案挺顯而易見,無聊到廖星都不願承認。
但如此危機下,他還有什麽辦法?只好硬着頭皮上了。
只用了不到十天的時間,羅西和廖星就拿出了初版成品,兩個先前完全獨立、離線的AI,頭一次放在一起進行單元測試。
結果不太理想,大約有一小半的測試用例沒有通過。
若是往常,羅西和廖星大概會甩嘴刀,分析一下自己的問題,攻擊對方的問題,然後刺對方一身血,單方面得意洋洋地宣告自己的勝利。
但這一回,他們沒精力再諷刺對方,而是乖乖拿走自己的研發對象,拿走自己精心創造出來的AI,一次次改進算法,模拟研究。
廖星知道自己的AI是有原型的。
他不禁想,如果是原型的話,放在這種場合,一般會怎麽做。
他想多了就開始胸悶,因為不管選擇哪條路,他所看到的現實的結局,都是兩個人沒有在一起。
大約反複了幾十次,他們才跑通全部的測試用例。
照理說,上平臺後,放在真正的産品環境中做集成測試,應該不會出太大的問題。
可是第一次的測試報告出來,兩位開發組長都吓得目瞪口呆。
江山一片紅,滿眼都是bug。
仔細檢查後才發現,他們的AI某些選項分支,根本無法通過公司的過濾器。甚至連NPC-1——也就是廖星所負責設計的AI——與羅西所負責設計的NPC-0分手的理由,都被過濾掉了。
這些過濾系統,原來從未造成開發困擾。此前廖星甚至都不知道它的存在,羅西有過濾器的概念,但也從未碰到過。
而這個過濾系統中具體的條件,由于涉及到一些公司的政策和規定,具體實施的部分,對于開發人員是未知的狀态。
廖星據理力争幾次,沒用,管理部門一聽就把他打發走了,還跟他說“你搭檔也來過,奉勸你不要浪費時間”。他聽了就火大,可是身處大公司,各種破規矩多得吓人。
可為了飯碗,他還能怎麽辦?
只能硬着頭皮和羅西碰頭,反複分析失敗可能的原因。
好在碰了幾鼻子灰之後,他們總算能收到最後跑通的測試報告。
NPC-0和NPC-1,在白日漫游的平臺上終于相愛了。只不過他們花的時間有點久,而且……bug尚未消除。
之前是,這一次最新的測試狀況也是。
羅西和廖星慣例性劍拔弩張,可沒較多久勁,兩邊都先行退讓一步,乖乖打開分析報告。
兩位組長只匆匆掃了一眼,就遣走了組員——
沒有必要浪費每個人的時間。
Bug還是一樣的,問題還出在同一個地方。那江山的一片紅,根源還是同一處。
每次當程序運行至調用“分手理由”這個變量時,系統總會出現空指針的運行異常。廖星甚至猜,如果AI有自己的思想,當他們高頻率反複空指針報錯時“滴滴,滴滴,滴滴……”的聲音,會不會精神崩潰。
總之他們要是精神沒崩潰,這個負責開發的廖星都要崩潰了。
這個變量困擾了二人很久。
他們曾為變量賦值,可是最後程序總沒發運行到終點。
即便硬性賦值後跑通了,在客戶那邊也得不到滿意的反饋。
故事不真實,不完善,這樣的兩個角色以這種理由分手是不合邏輯的。
他們明明如此相愛,故事中的困難挫折和障礙,根本沒辦法在他們之間濺起任何水花。
實屬無奈,兩位開發組組長一致決定,将這個變量留空,讓他們的AI自行推導,最後賦值。
還有什麽能比機器更符合邏輯的呢?
這次總該沒問題了吧?
想得美。
公司的過濾器,擋住了AI推導出的理由。
偌大的會議室,只放兩個人,實在太空蕩了。
羅西手撐着額頭,視線聚焦在屏幕上的一點。廖星認得這個表情,若非苦思冥想,羅西絕不會是這張死人臉,簡直浪費了神一般完美的好看五官。
廖星盯着曾經的戀人,不知為何,心居然掉進檸檬汁裏,酸澀難耐。
“這個分手的理由,還能是什麽?”羅西好似自言自語,“性格不合?那兩個人曾經交往的先決條件都沒法滿足。吵架時真的傷害了彼此?也不可能。這樣根本沒機會再複合。”
“嘿,往好處想想……他們大概是天生一對兒?分手理由根本不該存在?即使分開了,bug滿屏也能在一起?你看他們這次只彈出三回空指針運行異常,大有長進。”廖星幹笑着。
這個NPC-1算是凝聚了廖星全部的心血,當然他的表現也不負廖星的期望。雖然學術上他經常與羅西持不同的觀點,但他承認,羅西創造出的NPC-0,一定也是極其優秀的。
否則怎麽能和自己的NPC-1一次次通過測試,最終走向相愛的終點?
兩位輔助AI如果是天生一對,他覺得不虧。
可他話音剛落,羅西就瞪着兩只血紅的大眼,死死盯着他。他意識到這話大約沒辦法安慰到羅西,悻悻地回到座位上,吐了吐舌頭。
“你別這麽兇,怪吓人的。”
羅西的臉立刻緩和下來:“我昨天沒睡好,半夜被鐘聲吵醒了。”
半夜鐘聲?
原來真的有那個地方傳來幸福的聲響,傳進了自己的耳朵,廖星想。
就在一愁不展之際,羅西翻回報告的第一頁。他掃了兩眼,突然開口:“你留沒留後門?”
廖星白眼翻上天:“登陸口?當然留了,別告訴我你沒有。”
廖星知道,最然羅西看起來理性嚴肅,但肚子裏的壞水可是不少,用到他身上的就更多。
想到這裏,他臉有點燒。
他自己都覺得奇怪,為什麽偏偏這種時候,想起了羅西的好?
“所以你要不要進去看看?”
廖星深吸一口氣,裝模作樣地坐直身體,只有雙眼來回瞟。“你是說,我們以調試模式登陸白日漫游,控制NPC-0和NPC-1的運行?”
“對,而且我想,既然我們自己找不出問題所在,不如交換一下,你來調試NPC-0,我調試NPC-1?”羅西音調也變高,顯然有些興奮了。
交換開發對象。
這話怎麽聽着跟交換戒指似的。
廖星總覺得不能多想。想多了要有不好的事情發生。
廖星猶豫片刻,小聲講了句:“可是調試模式違反規定了……”
“說的你在意過規定似的?”羅西歪了歪嘴角,沖着廖星笑了起來,笑得炫目張揚。
這是他曾經最愛的那個神采飛揚的羅西啊!一提到學術就樂開花的羅西!
後來不知什麽時候,可能是他們升職,也可能是更晚些,羅西臉上的神采不見了。
廖星記得當時自己花了很大力氣私下安慰他,後來……
後來不必提了。
“我查看了現在的登錄流程,如果移除權限限制,”羅西指着幾行改掉的代碼,“我們說不定還能看到原來每次測試到底發生過什麽。”
廖星陷入了沉思。
“你沒興趣嗎?看看我們的寶貝兒到底做了點啥?”羅西下意識捏了捏廖星定腰,廖星輕哼着躲開,他才發覺自己似乎是越界了。
“沒關系,我們幹吧。”廖星點點頭,在桌子底下,輕輕勾了勾羅西的指尖。