成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我招了個“水貨”程序員......

新聞
這篇文章對很多沒有高并發經驗的程序員來說,會非常有幫助。很多程序員可能都遇到過類似的困惑:我沒有高并發項目經驗,但是面試的時候經常被問到高并發、性能調優方面的問題,該怎么辦?

[[412871]]

圖片來自包圖網

這個問題怎么解決?和大家說說我招人的一個經歷。程序員小張參加工作已 5 年,是一位高級工程師,是我親自招進公司,表現很出色。

前一陣子,我把小張叫進會議室,想讓他單獨帶個團隊。其中,我談到了面試時,他簡歷注水的問題。

事情是這樣的,大概兩年前,公司有個核心項目缺人,需要一位高級程序員。

這個崗位非常重要,所以對面試人要求不低:

  • 有高性能、高并發開發經驗
  • 有高可用系統經驗
  • 參與中間件研發、優化和系統存儲優化

招聘持續了兩個月,面試了許多工作五年以上甚至十年的人選,卻依然沒有招到一個特別合適的。

就在我們快不抱希望的時候,同事讓我去面試一個有趣的人,他強烈推薦,并順手把簡歷遞給了我,這人正是小張。

接過簡歷后,我先翻了翻。這一翻,讓我皺起了眉頭。簡歷里,小張的工作經驗只有區區三年,這三年全都在一家公司,公司本身還沒有什么名氣。

更重要的是,我懷疑他的簡歷做了手腳。他說自己三年里,負責過兩個項目,一個是電商項目,一個是關于這個電商項目的對外開放平臺。

對這兩個項目,他著重強調了項目的高并發,并說自己解決了很多技術難題。

就是這里出現了問題。我們當時也有電商項目,市面上稍微有點名氣的電商平臺我都非常清楚,卻沒聽說過他簡歷里的產品。所以我懷疑,這份簡歷是包裝過度了。

但是,對于這么明顯的問題,我不信前面的面試官們都沒看出來。那么,為什么他們還推薦我去見見呢?

說心里話,對簡歷包裝過度我是比較惱火的,但是這只是我的懷疑。同時,前面的面試官竟然是帶著一種從未有過的滿意語氣,叫我一定面面他,對同事們的認可我又比較好奇。

就這樣,我帶著惱火又好奇的矛盾心思見到了小張。見到小張的時候,我由于有點惱火,臉色顯得非常嚴肅。

他可能看到我如此嚴肅,不禁局促了起來。但是,從他的眼神中,我又看到了很強的自信。

我心里想,確實挺有趣的人。我決定要好好的面試下這個人,看看他到底有什么本事,能讓我的同事如此滿意。

問了下他大概背景后,開始了進入了正題。當進入了正題之后,小張的回答態度就讓我大加贊賞。態度自信,不卑不亢,邏輯表達也十分清晰明白。

這時候,我心里決定,如果小張后續的回答,能證明他的實力達到簡歷描述的八成水平,我會傾向于把 offer 給他。

[[412872]]

我先問了問他對高并發的理解,比如:高并發需要參考哪些指標?

他告訴我,高并發由于產品類型不同,所以指標都不一樣。以他負責的電商系統來說,根據模塊的不同,關注的指標不同。

商品瀏覽看得是 QPS,訂單模塊則是看得 TPS。同時,他們還需要關注活躍的用戶量等等。

這回答真不錯。面試以來,哪怕是工作多年的人,絕大多數的答案就是 QPS,無非再多一個 TPS。

能把產品類型的不同和不同的高并發指標之間關聯起來,這說明小張是仔細對這個問題思考過的。

我愈發滿意了。在后面,我又追問了集群部署、多級緩存、復雜查詢優化等有關性能優化的問題,還附加了系統高可用的各種策略,和如何拆分去保證靈活擴展等實際中我們正在采用的問題。

等面試完畢后,時間已經過了一個多小時。小張當時并沒有百分百答好我問的問題。

從實際回答來看,關于性能優化的細節,比如,系統瓶頸的檢測和優化,程序邏輯的優化,JVM 優化甚至數據庫的優化都答得異乎尋常的出色。

但是,對于高可用的大概策略,比如降級處理,限流處理等,他只知道大的方向,很多答案一聽就知道是從書本上或者互聯網上看來的。

而對于系統的擴展性相關問題,他甚至答的非常差,很多都回答不上來。

不過瑕不掩瑜,小張依然拿到了 offer,他期望的薪資我也沒有打任何折扣,這足以給他一份大大的驚喜了。

在后來的兩年里,小張的出色表現,證明我沒有看錯他。他為了公司的核心項目做出了巨大貢獻,而他的技術水平,也有了肉眼可見的巨大提升。

他成為了一名高并發經驗豐富的高級程序員。所以,現在打算讓他帶團隊了。

“那么,就剩一個問題了。你面試之前到底是如何做到熟悉高并發的性能優化的?” 我好奇的問出了我壓在心底的問題。

小張不太好意思的撓了撓頭,他詳細給我講述了他是如何搞定高并發經驗的。

我聽完后,真的是對他這些準備贊不絕口。我認為該分享出來,讓更多的人看到。

劃重點!如果你也渴望有高并發經驗,那么下面的內容你要格外關注了。

小張確實是做了電商平臺開發的。但是,這個電商平臺沒多少訪問量,QPS 可能一只手都能數的過來。說句難聽話,也就是掛在網上而已。

他剛畢業入職開始,就參與維護了這套電商平臺。就這樣持續了一年后,他發現自己已經無法再有任何提高了。

他想跳槽,但是發現很多高級崗位都是要求高并發經驗的,他對此很著急。如果他繼續在以前的公司發展,就勢必接觸不了什么高并發。

但是跳槽的話,他又必須有高并發經驗才能找到一個不錯的崗位去繼續提升自己。

這貌似成了一個死結。在百般無奈之下,他決定自己模擬高并發去獲得經驗。

現在總結下來,其實他的練習可以粗略分為三個階段:

第一階段

這個階段,小張完成了在高并發條件下,對單機性能優化的學習。

小張用 Docker 容器去運行他維護的電商項目。然后用 jmeter、wrk 等工具去壓測。

在壓測期間,他敏銳地發現了由于系統每個模塊不同,所以性能表現就不一樣,這種現象引發了他的思考。

他經過網絡搜索和查詢資料,明白了不同模塊、不同產品對并發指標的要求是不一樣的。

基于這種情況,他又根據產品的業務邏輯編寫了復雜的壓測腳本,能自動實現不同模塊的壓測任務。

就是在這種不斷地壓測探測下,他明白了如何探測問題,如何通過優化代碼、JVM 去解決問題。

比如,解決誤用 HashMap 導致死循環的問題。又比如,誤用不帶緩存的文件 IO 流,去讀取文件的問題等等。

在程序和 JVM 優化完畢后,他又發現數據庫也存在問題。于是,他又學會了如何優化數據庫 SQL,如何對數據庫分表等問題。

也是在這個階段,他認識到了緩存的必要性以及同步緩存數據狀態的重要性等重要知識點。

小張在搞了單機優化后,他覺得也沒有辦法再通過單機的壓測學到什么新的東西了。于是,他轉向了第二階段。

[[412873]]

第二階段

小張從阿里云買了兩臺機器,他開始嘗試使用負載均衡去分擔高并發的壓力。

同樣的,也是借助壓測工具去模擬了高并發。在壓測期間,負載均衡和系統屢屢出現和單機完全不一樣的問題。

比如,負載均衡本身的性能問題。比如,在一些時候,負載均衡后面的機器負載是不平衡的,需要對負載算法進行調整。

這個階段,小張理解了負載均衡中大部分的細節。但是,高并發中,很多系統的構成會很復雜,以至于需要分布式架構系統的程度。他們需要各種中間件做通信,做存儲。

所以,小張根據招聘的一些需求,他做了第三階段的練習。

第三階段

為了能熟悉市面上各中間件的使用,小張把他那套電商平臺改了又改。

比如,一些本地調用的方法,被他替換成了 Dubbo 遠程調用。比如,一些模塊間調用,被他替換成了 MQ 中間件傳消息。

再比如,一些放在關系數據庫的被頻繁訪問的數據,被他改存在了 MongoDB 中……

當然,壓測依然繼續。就這樣,小張又實踐了很多中間件和分布式框架的使用。

在模擬高并發練習的同時,小張不忘去讀各種高并發高性能的書籍。比如,《大型網站服務器容量規劃》、《互聯網創業核心技術:構建可伸縮的 web 應用》等書籍。

在來到我們公司面試之前,小張如此練習了兩年左右。

[[412874]]

雖然小張面試的時候表現也存在很多不足,但是我當時看中他的一些優點是:

①小張滿足具有高并發經驗的要求

為什么我們需要找有高并發經驗的人?說白了,我們想找的程序員其實是:

  • 不會亂寫性能很差的代碼
  • 能敏銳感知到影響系統的問題
  • 能獨立的處理由于高并發引發的問題

小張通過他的練習是掌握了這些技能的。

②小張滿足熟悉高可用的要求

我們找熟悉高可用的人,其實并不要求這個人一定能給出什么獨特的高可用方案。我們要求的是,他能知道高可用的知識后,去意識到高可用的重要性。

比如限流功能出現問題,他要能馬上認識到這是個很重要的問題,從而把解決的優先級提到很高。

小張通過學習,明白了高可用的重要性,也知道了高可用的大方向,這就夠了,剩下的細節,我們有信心帶小張在實際工作中學出來。

③小張能參與我們的中間件研發和存儲優化

小張主動改造過他們的電商系統,而且使用了很多的中間件,并對這些中間件都進行過優化。對這些中間件的特性比較熟悉,并且在實踐中,他也了解了很多原理。

除此之外,小張的主觀能動性尤其打動我們。他對技術的主動鉆研、主動學習,表明了他是一個喜歡走出舒適區,愿意挑戰自己的人。而這樣的人,有哪個團隊不歡迎呢?

所以,其實沒有高并發經驗并不可怕。如果在工作中你接觸不到高并發的項目,那么也沒必要太糾結。公司做什么項目你改變不了,你能改變的只有你自己。

關鍵還是自己要去主動學習,主動練習,主動提升。只有這樣的人,機會才會去垂青。

最后,畢竟在程序員這個圈子,90% 以上的人可能都沒有真正的高并發經驗,所以在此也希望各位面試官,在招人的時候,如果遇到好苗子可以適當寬容一些,給新人們一點機會,說不定能找到一匹千里馬。

作者:四猿外

編輯:陶家龍

出處:轉載自公眾號四猿外(ID:si-yuanwai)

 

責任編輯:武曉燕 來源: 四猿外
相關推薦

2012-06-25 10:05:10

程序員

2013-07-24 14:17:10

2020-03-30 08:30:53

年薪程序員水貨

2014-03-18 10:05:37

程序員碼農

2012-11-28 13:25:27

程序員

2023-12-26 18:47:32

2009-03-26 09:22:05

2021-02-20 13:55:35

程序員計算機技術

2012-05-11 09:13:28

程序員開發者

2021-07-05 07:28:14

程序員菜鳥技術

2013-08-01 10:03:41

程序員

2013-04-22 09:05:11

程序員

2016-04-19 10:20:42

程序員遺憾

2020-10-05 21:13:37

程序員技能開發者

2015-11-04 11:38:40

bug程序員

2021-10-25 08:31:11

公司程序員代碼

2012-09-18 10:05:51

程序員我的歌聲里程序員的歌

2020-11-04 07:13:16

程序員職業工資

2020-11-19 07:54:32

程序員報警

2017-11-13 09:35:02

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片免费在线 | 91国产视频在线 | 欧美日韩在线视频一区 | 欧美色视频免费 | 国产伦精品一区二区三区高清 | 国产精品久久久久无码av | 中文字幕免费在线 | 午夜成人在线视频 | 国产一区二区在线免费观看 | 久久999| 国产精品久久毛片av大全日韩 | 亚洲精品大片 | 一区二区免费 | 九色网址| 国产高清毛片 | 性做久久久久久免费观看欧美 | 免费观看日韩精品 | 久久精品—区二区三区 | 91高清视频在线观看 | 福利视频网址 | 国产乱性 | 黄色亚洲 | 欧美福利 | 国产精品视频久久久 | 精品少妇一区二区三区日产乱码 | 亚洲欧美成人在线 | 欧美日韩中文字幕在线播放 | 国产乱码精品一区二区三区中文 | 国产伦精品一区二区三区精品视频 | 国产你懂的在线观看 | 色欧美片视频在线观看 | 婷婷午夜天| 91资源在线 | 精品国产欧美一区二区 | 一级做受毛片免费大片 | 亚洲一区二区三区在线免费观看 | 在线观看成人小视频 | 国产精品123区 | 中文字字幕一区二区三区四区五区 | www.国产| 国产精品a一区二区三区网址 |