面試中一個暴露能力等級的問題

程式設計一生發表於2021-09-30

背景

通常我寫在文章發表出來之前我問的一些面試題都是我要下架的面試題。就是說我有一個面試題庫,我會經常更新,淘汰一些。一般淘汰的問題我才敢拿出來全面分析,避免造成面試時候的不公平。但是有一道題,我面試時必問,我也建議其他的面試官考察這道題。如果面試者能提前準備,回答的很漂亮,再好不過。但是這道題就像自我介紹一樣,是個引子。回答的好,會引出下面很多問題。回答的不好,直接決定能力等級的打分。這道題就是:請介紹你遇到的印象最深的一個問題或者故障,請介紹你是怎麼發現、處理、分析和解決的。

 

回答舉例

舉例一

描述:一次收到了伺服器當機的告警,從監控上可以看到機器出現故障當時有非常頻繁的fullGC。於是進行了重啟,發現沒有解決問題。所以我們直接開始排查問題原因,從監控中可以看到一個介面請求量高於平時。通過擼程式碼發現這個介面裡有個sql的where條件失效,每次呼叫都是全表掃描,所以把伺服器打掛了。我們用了1個多小時,定位問題後進行了熱修復。
連環問1:你們的業務量有多少?在開始排查原因之前,除了重啟是否有其他的止血措施?回答:高峰時有幾百QPS,出問題正好在低峰期,也就10QPS,所以也沒有什麼大影響。所以沒做其他的止血措施。我算了一下,業務中斷1個多小時,影響業務少數也有4W筆。如果不需要承擔一些後果,我猜測:要不就是上層領導自己扛下了壓力,沒有穿透過來,要不就是這個服務不是核心業務。而回答者的止血措施前期準備不足,穩定性意識也不是特別高。屬於中規中矩的開發人員。
連環問2:這個問題在測試階段怎麼沒發現?
回答:測試用例沒有覆蓋到。問題的根因是介面的核心邏輯,還不屬於邊界或者少量場景,我猜測整個團隊把關都不是很嚴,缺少牛人指導。
由於兩個連環問的回答技術含量一般,我沒有就這個問題繼續追問。
舉例二
描述:一次與外部進行對接,結果從對接方的伺服器上呼叫介面獲取不到資料,我們ping、telnet等命令發現都沒有問題,沒有辦法就進行了抓包,看到資料聯通性是好的,就想到可能是配置問題,最終查到配置了包大小的限制導致。我覺得他的回答沒有問題,不是我的主要考察方向,我沒有追問。從這個回答中,我覺得對他的linux基本命令的掌握達標了。
舉例三
描述:做了一個配置中心,使用者在使用的時候使用方式不當。公司裡主流使用xx1和xx2兩種程式語言,這兩種語言所用的序列化器肯定是不同的。使用者在配置序列化器的使用對整個業務線的所有應用進行了全域性配置,把所有服務配置成同一個序列化器。這個地方我們做配置中心的承擔少部分責任,主要責任還是使用者。本質原因是他們的操作失誤,我們還是進行優化,增加了稽核環節。連環問1:除了稽核,針對配置中心,是否還有其他的優化空間呢?
回答:這個地方我們其實有很完善的文件,使用者沒有按要求操作我們也很無奈。
這時候,我覺得我們遇到了價值觀上的分歧。服務、擔當、協同上我們的認知是有差異的,沒有誰對誰錯,只是有差異。為了避免爭執我轉移問題到其他不相關問題上。這裡說說我自己對此問題的想法:
這裡配置中心需要做保證服務健壯性為核心的優化:1>配置需要灰度生效,而不是一次性全域性生效。2>針對業務線級別全域性配置這種大範圍低頻配置,應該增加專家稽核環節,由配置專家進行把關,確保符合使用者預期。3>像涉及到業務線多個服務的配置修改,需要將配置更新下發給涉及的每個服務負責人進行確認,服務負責人確認後才能生效。
配置這件事情,我再多說兩句,幾個月前剛剛做過調查問題,取樣範圍不廣,也不能說多客觀。但是從業界近幾年的大事故來看,確實非常值得重視:

 

 

 

後記
前段時間我重溫了小時候看的第一部電視劇《雪山飛狐》,小時候看不懂,現在我明白了,整個故事的核心是:一個由於溝通不暢引發的血案。
故事開始,明末清初,李自成有4個忠心耿耿的護衛,分別姓:胡、苗、範、田。起義失敗後,他手下3個護衛因事離開,還有剩下胡護衛和李自成。胡護衛為保李自成,忍辱負重,假意投清。實際上在計劃一個東山再起的行動,畢竟他們在一個雪山上埋了一個寶藏,還是有資本的。行動都計劃好了,就差跟另外3個護衛通氣了。這時候去找3個護衛,對於原來的事情沒有解釋,被3個護衛殺了。臨死前說:你們其實打不過我,我讓著你們,情願被殺。但你們千萬別讓我兒子知道你們把我殺了。不然你們打不過他,會死翹翹的。
我看到這裡心裡在整理這裡面的邏輯:“重要的事情一點也沒說,只說了些沒用的。不僅如此,最後這段話簡直就是在說,我反正死了無所謂,不想辯解。只是我死了,肯定會有人給我報仇,你們也得死。”我突然明白了:這個胡護衛難道是想明白了反清復明不可能成功,但是又不想落個罵名,所以想把這三個反清復明的兄弟殺了,還想找個正大光明的理由,就以自己為餌,讓兒子替自己報仇。這樣,既可以讓天下免受戰火之苦,又保全了名聲,好心機呀。果然,胡護衛的兒子胡一刀來報仇了,他讓三個護衛臨死前見了一個人,這個人就是李自成,李自成把當年的事情做了澄清。三護衛覺得自己冤枉了胡護衛就自殺了。臨死前什麼都沒跟家人交代,什麼鬼,存心讓胡一刀背鍋?

胡一刀揹著殺死三護衛的鍋,田護衛和苗護衛的兒子田歸農和苗人鳳就來找他了。胡一刀和苗人鳳開始了以性命相拼的比武之路。他倆簡直是天造地設的CP,惺惺相惜。胡一刀還幫苗人鳳報仇,到了苗人鳳仇人家,啥都不說,用苗家劍法咔咔咔的把人砍了。連個立地成佛的機會都不給。看其他電視劇,我經常的感覺:都這緊張的節骨眼兒了,你們就先別廢話了。看這劇,我的感覺是你們動手前能不能先溝通溝通,著啥急呀?

田歸農功夫菜,心眼壞,在苗人鳳刀上偷偷喂毒。比武時胡一刀受傷,胡一刀掛了。苗人鳳心懷愧疚,見到了自己的人上人藍,開口閉口就是胡一刀夫婦如何恩愛。兩口子結婚第一件事就是帶著媳婦見這兩個死人。我特明白藍見到甜言蜜語的田歸農,跟著人家跑了,她是看穿了苗人鳳是gay。

其實苗人鳳深愛自己的前妻,把寶藏地圖打成金釵送給了藍。並且只要藍活的好好的,就不會殺田歸農給胡一刀報仇。藍很快知道了田歸農和自己在一起別有用心,她後悔了。苗人鳳也很想讓藍回到自己身邊,何況他們還有一個女兒落藍每天夜裡想娘想的偷偷抹淚。然而,他們見面誰也撕不下來臉把心裡想的說出來。

藍過的生不如死,一心求死。死前把金釵交給田歸農,讓他交還給苗人鳳,說:“只要你把這個交給他,他就不會殺你。”苗人鳳來了,田歸農慌慌張張的把金釵交給苗人鳳。苗人鳳在劇裡終於解釋了一回:“田歸農呀,這個金釵裡就有你心心念唸的藏寶圖哦。”苗人鳳覺得藍一生都在守護他們之間“釵在人在,釵亡人亡”的承諾;覺得自己在藍心裡比田歸農重要。很滿意,大笑而去。總結一下苗人鳳對藍做的事情:“他明知道田歸農不是好人,完全不和藍解釋,任憑藍掉進龍潭虎穴。藍受盡折磨而死,但是死後他知道藍心中還是他最重要,虛榮心得到滿足,沒有遺憾了。”這種人為什麼能是一個正面人物的設定?

金庸大大用真摯的文筆寫出了在那個語言表達匱乏的年代,人們為此付出的代價。

大家都在抱怨現在的面試太捲了。我有切實的感受,我經常面試完嘆息一聲:這個同學要是在十幾年前面試是能過的。可十幾年前中國的網際網路行業還在抄襲國外,現在經常是被國外抄襲。中國出品的一些中介軟體也越來越多的被國外使用。

我們所做的只是比十年前更注重方法了,而自己的成長工作和生活中都能用的上。比如這個年代更重視溝通,甚至溝通技能也成為了面試考察的一個重點之一。我們努力訓練來的這個技能不僅能更好的促進工作,還能避免《雪山飛狐》裡的悲劇,最重要的是讓中國在世界上越來越有地位。當然,還是希望少加班,多些時間,休息著、玩著,就把事情想的更明白了。

 

推薦閱讀

一個由於侵入框架引起的故障

在別人寫的程式碼上做修改我是這樣保證正確性

容易引起雪崩的兩個處理

服務執行過程中磁碟壞道引起的思考

相關文章