原創:猿天地(微信公眾號 ID:cxytiandi),歡迎分享,轉載請保留出處。
相信很多人都有類似的經歷,在面試快要結束的時候經常會被問到一個問題:講講專案中的技術難點?
這是一個比較開放的問題,首先它沒有固定的答案,因為每個人做過的專案不同,使用的框架不同,對應的架構不同,自然遇到的技術難點也不同。
1. 一定要真實
在回答這個問題的時候,一定要仔細想想之前真實遇到的問題,不要隨便編一個,這樣很容易出問題,因為面試官會順著細節一層層的問下去,如果你是編出來的,到最後就圓不回去了。
舉個例子:
求職者說我們下單的介面最開始只能支援幾百的 TPS,被我優化後 TPS 破萬了,只要你說完這句話面試官就開始進入繼續追問細節了。
- 破萬具體是多少的 TPS?
- 有多少臺機器?
- 機器分別是什麼配置?
- 資料庫是什麼配置?
- 你們是怎麼進行壓測的?
- 下單鏈路跟多少個服務進行了互動?
- 每個服務的耗時多久?
- 如何進行優化的?
- 如何發現介面中的效能瓶頸?
你只有抗住了這一系列的連環炮追問,而且面試官通過你的描述和你說的指標進行對比,如果比較匹配那麼你就過關了。如果不匹配,肯定就面失敗了。
2. 技術層面的難點
技術層面的難點可以是做了 GC 的優化,從多少 GC 次優化到多少次,STW 的時間降低了多少,通過哪些手段做的優化。
可以是壓測時效能一直上不去,通過什麼手段進行了優化,從多少優化到多少。期間有沒有加機器,有沒有升配伺服器,升配資料庫等。
可以是專案執行一段時間後就出現假死的情況,處理不了任何請求。然後你是怎麼一步步去分析並找到具體原因的,然後又是如何去解決的。
一定要有細節有資料,這樣的案例才真實可信。並且面試官會認為你是具備去分析並解決問題的能力。
3. 不一定是技術層面的難點
雖然問的是技術難點,如果你確實沒有遇到過什麼技術難點,這個時候可以往其他方面去靠,不要直接回答說:沒有遇到過什麼難點。我敢保證,你要你這樣回答了,面試成功的可能性不大。
可以往業務層面,領導力方面去講,比如你可以說當時做某個業務的時候,沒有這塊經驗。然後通過查詢資料,去諮詢有經驗的朋友等獨立的完成了某個系統的設計。並且在做完後取得了什麼樣的成績,這個過程對自己來說是非常具體挑戰性的,所以這是在專案中遇到的一個難點。
也可以是自己主動請纓,在領導的支援下主導了老專案的重構,給團隊的同學培訓了 DDD,並且通過 DDD 成功的將某個業務成功的進行了重構。這樣可以體現你的主動性,分享精神,領導力等多方面綜合的能力。
最後送給大家的就是:一定要先準備好,想好自己要說什麼,臨時發揮效果肯定沒有事先準備的好。
如果對你有用,來個轉發唄!
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud 微服務-全棧技術與案例解析》, 《Spring Cloud 微服務 入門 實戰與進階》作者, 公眾號猿天地發起人。