騰訊前端小面經--騰訊視訊
借用原哥的騰訊面經發一波,講道理我現在特別喜歡分享,鄭重宣告,版權歸原哥所有。
騰訊
時間:2018-3-21、3-22
地點:知春路希格瑪大廈2F、領航科技大廈
型別:暑期實習面試
技術面一:
1、 你做前端幾年了?之前本科學過什麼語言用來做過什麼?
2、 說說nw,這個很有意思啊,為什麼要用這麼老的東西?
3、 Nw在xp系統下出現無限縮放現象,那你如何解決這種適配問題?
4、 考試系統的介面適配是如何適配的?什麼佈局?
5、 TCP、UDP用了哪些模組?
6、 fs模組用在了什麼地方?同步非同步fs在何處使用?
7、 Vue的元件化你是怎樣使用的?
8、 談談MVVM?
9、 Vue在MVVM中是如何實現資料雙向繫結的?(答資料劫持)
怎麼實現的資料劫持?(答defineProperty原理等)
那麼比如v-model這種地方如果繫結一個函式,讓你涉及構架你要如何實現?(GG……說實話這裡我沒太懂什麼意思,完全答不上來的問題)
10、 你如何使用Webpack配合Vue進行元件化開發?Vuex有使用嗎?Vue-cli呢?
11、 Vue中你有沒有使用什麼非同步操作的程式碼?Vue.nextTick你用在什麼地方為什麼要修改DOM?
12、 說說Git你們平時是如何使用的?開發一個工程使時你們是怎樣使用git協作的?常用命令?如果有一個人的程式碼和master衝突了,或者需要回退,如何解決?回退的命令?假設從a到b再到c,需要回退到a,會退後能直接提交嗎?
13、 你用過Java等後臺語言嗎?現在還會用Java麼?
14、 對於前端開發,你未來的計劃是向哪個方向學習?pc、移動端還是node?
技術面二:
1、 說說Vue中class、function繫結實現的區別?(沒答上)
2、 簡單說一下實現物件繼承的幾種方式?
3、 Vue+Webpack你是如何實現元件化開發的?
4、 Webpack中你使用了哪些常用的loader、哪些plugin?Webpack中有時候打包會出現延時大的情況,你是如何優化的?
5、 Express框架你是如何使用的?路由功能怎麼使用?
6、 你在新聞社專案中解決了什麼主要問題?優化DOM操作採用了什麼方法?常用方法?
7、 談談軌跡修改演算法的問題?(我主動提的)
8、 你平時使用什麼方式學習前端技術?
9、 你未來想向什麼方向發展達到一個什麼高度?
部門Leader面:
1、 你想什麼時間來實習?
2、 如果選地點你想去哪裡?北京以外接受嗎?
3、 這些專案中你的職責是什麼?哪些是你自己完成或者帶隊完成的?
(之後基本沒有問問題,都是他在主動講,主要聊流行的框架、公司內部的業務流和人才缺口,使用的主要技術,還有公司的事業群分佈,以及發展方向等等。)
總監面:
1、 先做個自我介紹吧
2、 那說說你的專案經歷吧,你這些專案哪個你覺得做的最好?或者最值得講一講,簡單說說實現的過程?(講考試系統)
3、 你這個Nw,是一個整合環境是吧,為什麼使用它?(講electron優劣,XP相容性)
4、 為什麼通訊要用到TCP、UDP,HTTP不行嗎?TCP連線你怎麼實現的?(簡單答socket過程)那不對啊,你這個設計應該不可能是TCP層面上的,你確定是TCP?(答我用了socket.io模組)那也不是TCP吧?(此時我想明白了:哦,其實是WebSocket,不是純TCP層面的通訊,WebSocket是H5新增的API,本質是對HTTP協議的一種升級,所以不僅僅是停留在傳輸層)總監:嗯嗯,對,就是這麼回事嘛
5、 那我想問一下你這個Node伺服器怎麼實現的?(講監考機邏輯)哎我覺得你這個不太合理呀,為什麼要用UDP傳送IP埠號呢?按理應該是一個單獨的Server空間讓所有端連入,不需要傳遞ip,類似於一個聊天室,我覺得你應該是這樣實現的才對吧?(我:……,我真不是這麼實現的,您的意思我懂,但我是通過端與端點對點通訊實現的,並沒有Server)哦也就是說不是真正的純Node伺服器是吧?(是,因為是輕量級工程,而且主要負責傳輸邏輯,所以並沒有那麼設計,再加上工期緊張,這樣是當時想的方案,確實有不合理,您的方案很好,值得學習)
6、 你這裡考試流程怎麼實現的?介面佈局?fs模組怎麼使用的?中斷恢復機制如何儲存檔案?如何恢復的?(這裡基本是我引導他提問)
7、 那你講一下Node.js裡面這個非同步事件驅動是怎麼回事吧?(講底層實現)跟長輪詢相比優勢和區別是什麼?(答理論無限併發)但是有一個問題哈,就算是非同步驅動,分配給不同的執行緒,那假設執行緒上面還有別的任務沒完成,這時候不是產生阻塞了?如何優化?(我:……總監:笑,一格核不夠就多開幾個核唄……16、32、64、超執行緒,都可以優化。我:您說的對……)
8、 行,我看還有點時間,寫個演算法吧(我:……)題目:兩塊資料區域,內含不同的行,每行是字串,找出兩塊區域間重複的字串?
9、 實習時間?長短?
10、 還有什麼想問我的
總結:
騰訊公司一般在被面試者專案偏多時候更喜歡多問專案細節,尤其是框架、包括框架底層實現原理、與其他的比較,還有你對專案做了哪些改進。
其實總監面之前都算一面,只是分很多輪,騰訊的套路。
如果沒什麼問的就拿出一樣技術問問使用經驗和技巧,實在沒有問的了再問基礎語法和演算法。這次面試中基礎題也有問,只是很少。
建議在面試前把簡歷上的核心技術和流行框架都弄懂,最好懂原始碼和底層實現,如果能提出改進會大大加分。
如果懂後臺語言並且熟練後臺開發(全棧),也可以大大加分,騰訊目前偏向PHP。