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