一家互联网公司校园招聘的笔试题以及答题分析
思路題
現(xiàn)在你負責前臺web page和后臺數(shù)據(jù)庫查詢響應的設計,請你盡可能多的列出在該場景的前后臺設計里,需要考慮到的邊界條件和錯誤處理。也就是說,請你盡可能多的列出理論上有可能會導致前后臺應用異?;蛘弑罎⒌奶厥馇闆r,并列出可行的解決/避免方案。
分析:
來面試的人員可能有的項目里以做前臺/UI為主,有的是更偏后臺一些,這道題前后臺都有,所以我們可以根據(jù)面試者的背景,在評分時更看重其項目里focus的那塊。
前臺:
(1) 前臺代碼需要支持市場上主流的瀏覽器,
(2) 對于支持的瀏覽器,通過市場調(diào)研或者與客戶溝通,明確對于指定的瀏覽器,需要支持的版本
需要支持哪些OS?
用戶輸入產(chǎn)品名稱后,前臺代碼應做一定的encode處理,避免腳本注入。確保用戶輸入任意的名稱,前后臺應用均不會崩潰。
商品購買數(shù)量必須合法( 必須大于0, 小于等于該商品庫存 ). 如果輸入數(shù)量不合法,在前臺通知用戶。
前臺輸入的“流量控制”. 如果每個字符輸入都會產(chǎn)生一個到后臺的查詢請求,如果客戶以極快的速度T連續(xù)輸入N個字符,則前N-1個請求都是無效的,對后臺產(chǎn)生了不必要的負載。為了避免這種情況,可以設計在時間窗口T內(nèi),前N-1個請求的cancel機制,比如為時間窗口T維護一個請求隊列,當時間到達時只發(fā)送隊列尾部的請求。
注:這個有點偏性能優(yōu)化的topic了?不過也可以說成,如果不這樣做,在高并發(fā)情況下,容易把后臺數(shù)據(jù)庫搞死
購物車的容量限制。我們不能讓用戶無限制的往購物車里加商品。
題目里提到“在線購物”,因此會出現(xiàn)這樣一種情況:用戶A搜索關鍵字a,商品a作為搜索結(jié)果出現(xiàn)在商品列表里,庫存還剩最后1個。接下來客戶B已經(jīng)將該商品加入購物車。此時用戶A再將商品a加入購物車按鈕會出現(xiàn)什么情況?
只要面試者考慮到這種情況即可-考察應用程序里多用戶請求的處理。
然后再回到第一個web page,試圖從購物車中將商品a移除。
需要保證在這種情況下,前臺應用不會崩潰。
只要考慮到這種可能的情況即可。
其他和HTTP相關的比如session/cookie的就不列在這里。
后臺:
SQL 注入的防止(雖然前臺已經(jīng)做過類似的encoding)
如何保證同一時間高并發(fā)請求到來的情況下,數(shù)據(jù)庫不會崩潰?流量控制?負載均衡?分布式?后臺應用層加buffer?
返回搜索結(jié)果的分頁/max hit - 避免一次返回太多數(shù)據(jù)讓前臺崩潰,降低后臺內(nèi)存開銷
擴展編程題1:
請編程實現(xiàn)一個數(shù)據(jù)對象的容器,該容器既能夠提供快速索引容器中對象的能力,又能夠提供按照對象放入容器中的順序來依次遍歷對象的能力。請進一步實現(xiàn)容器能夠按照對象的排序規(guī)則來遍歷容器中對象的能力。
擴展編程題2:
讀取一個文件,打印出文件里出現(xiàn)次數(shù)最多和次數(shù)最少的字符串本身及其出現(xiàn)個數(shù)。
(1) 合理使用數(shù)據(jù)結(jié)構存放字符串和出現(xiàn)次數(shù)。List?map?怎么用最少的循環(huán)完成?
(2) 正則表達式的運用
(3) 特殊字符的處理,\t,\r, \r\n
(4) 程序健壯性,對各種邊界條件的處理
(5) 思考問題的完備性:題目沒有說該文件是文本文件,如果是excel, word又該如何?
(6) 如果是給定一個很大的文件,要求用多線程實現(xiàn),請給出完整代碼。
要獲取更多Jerry的原創(chuàng)文章,請關注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的一家互联网公司校园招聘的笔试题以及答题分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为jkmal00是什么型号手机
- 下一篇: 某企业管理软件开发公司校园招聘的小组讨论