前面是溝,你要把我往哪裏帶?

前面是溝,你要把我往哪裏帶?

吳旻

泰巖網絡工作室

 

我比較害怕違反常識的事情出現。比如說,我們的上游數據源有兩個端口,一個端口是負責連續的長連接的實時數據;另一個端口是負責短連接的暫時的歷史數據,即數據請求可以很快完畢,然後SOCKET就關閉。在請求數據之前,需要發送登錄消息,但明確只有一個端口接收登錄消息,另一個是不需要發登錄消息的。

我需要據此做出一個重要決定,於是問相關的開發人員:哪個端口需要發送登錄消息?

他很自信的回答我:請求歷史數據的端口。

我馬上崩潰了,這太違反常識了,短連接是沒法記住是哪個用戶在另一個端口接收數據的。我跟着問了一句:你確認嗎?

對方接着回答:我確認!

我沒有退路了,只好說明了一下我懷疑的原因,希望他能解釋我的困惑。

他的回答依然很乾脆:我記得是這樣的!

 

這個兄弟有點直。像“我記得”、“我覺得”這樣的提法,應該更多的是屬於個人觀點,不一定是客觀事實。在當時的語言環境中,我需要的是客觀事實,因爲我要據此做出一個重要決定。他可以說我再找文檔確認一下,但不能告訴我一個他覺得對但事實上錯的信息。

我問他“你確認嗎”,是問他確認客觀事實上是這樣的嗎;他回答“我確認”,是確認他就是這麼記憶的。

我終於明白,在他的語義中,客觀事實和個人觀點是混爲一談的。表面上看他是在陳述客觀事實,其實他講的是個人觀點。我的驚恐在於,如果我按他提供的信息做出決策,整個團隊都會死得很慘。

另一個同事笑說,我們是在“雞同鴨講”。

 

另一個故事的結論恰好相反。很久以前,某些終端用戶會登錄失敗,而且有特定網絡的用戶集中出現問題的傾向,比如某個地區的網通用戶集中反應有此問題。這個事情難爲死運維的同事了,網絡不穩定不是我們能設法控制的。我的困惑在於,提供同類服務的競爭對手怎麼沒聽說有這類問題。這件事情違反常識的關鍵點是,大家的技術水平是差不多的,怎麼沒聽說其它公司有過這類問題?

結局其實也不復雜,運維不可能解決得了的事情,還得軟件開發人員自己解決。但開發人員給出的解釋很特別,大意是說,可能是用戶登錄的時候,發的0太多了。

我聽不懂這句話。登錄是有通信協議的,怎麼會有0發太多的情況呢?太多,又是多了多少?我的感覺是,登錄消息在某些情況下進行解析的時候,發生了異常,於是服務端主動發起了關閉,導致用戶被踢下線了。

我對這個解釋的理解是,第一,大家不要再追究此事了;第二,他在用個人觀點描述客觀事實。

 

前一個是把個人觀點當客觀事實來講,後一個是把客觀事實模糊成個人觀點。但不管怎樣,據此做出決策,都將死得很慘。

我曾經讓一位同事實現動態切換數據源的功能,即當上遊提供多個對等數據源的時候,我們可以擇優動態選擇一個。結果開發的同事說,內存池發生了越界錯誤。做個比喻,就像是我平時看CCTV1的節目,電視很正常,但我今天看的是CCTV2的節目,結果電視發生了漏電現象。說實話,我實在看不出這裏面有任何必然聯繫,這太讓我覺得違反常識了。照這個思路下去,就真的是“一切皆有可能”了。

還有一件事,是我們要把數據提交給上游,結果沒提交成功。我和開發人員一起查原因,我問,校驗和對嗎?他說,這個算法是別人提供的。我聽懂了,他告訴我這事他沒責任。我再問,進行校驗的數據範圍對嗎?他回答是按規定來的。依次我問了很多,總之是他沒責任,但違反常識的是,已經有很多公司完成了這項工作,人家是怎麼成功實現的呢?

 

怎樣才能分清他們說的哪些是客觀事實,而哪些是個人觀點呢?

照上面的說法,那前面一定是溝。我到了溝的前面,然後暗自琢磨:要不要翻到溝裏去呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章