后端go選手,第一次參與社招,許愿順利通過,順便摸一摸行情。快手一面1.最有技術(shù)難度的是那一部分,遇到什么問題,如何解決?不詳細寫這部分了,當時很多都是深挖項目細節(jié),比如網(wǎng)絡(luò)延時、分片上傳有沒有考慮并發(fā),也沒很好的準備,回答太快,沒有給自己預(yù)留思考時間,很多回答都是無效的(答非所問)。果然當天晚上一小時就收到感謝信,哈哈哈。百度文庫一面語言基礎(chǔ)1.go切片和數(shù)組有什么區(qū)別2.看過切片的結(jié)構(gòu)嗎?3.go如何處理異常和錯誤?4.進程、線程和go的協(xié)程,對比三個的區(qū)別?5.計算機調(diào)度的最小單位?中間件1.redis 數(shù)據(jù)類型和比較典型的用法?業(yè)務(wù)拷打1.項目介紹。背景、方案和結(jié)果這樣一個表述。2.同一個文件是如何檢測的?文件名name檢查、文件哈希2.不同的用戶傳同一個文件會有問題嗎?用戶隔離3.原子性做了哪方面內(nèi)容?文件操作mv,分片哈希4.大文件上傳還有沒有別的方式?當時腦子瓦特,沒轉(zhuǎn)過來5.傳輸文件有沒有其他方式,如果通過文件服務(wù)上傳有沒有什么優(yōu)缺點?當時沒想到是不是想問文件中間件minio這種方式上傳對比傳統(tǒng)直接上傳有沒有優(yōu)缺點。算法題合并兩個有序數(shù)組 京東零售一面業(yè)務(wù)拷打1.推送服務(wù)如何實現(xiàn),走的是http請求嗎?2.調(diào)用接口如果遇到抖動超時,異常是怎么處理的,對業(yè)務(wù)有沒有影響?3.推送的日志數(shù)據(jù)庫表如何設(shè)計?4.視頻上傳下載是怎么存儲的?5.前端是怎么切文件的?6.分片上傳過程,如果失敗了,怎么判斷從這個分片開始?7.任務(wù)重傳,如何判斷是不是同一個文件?8.有兩個人同時上傳同一個文件,會出現(xiàn)失敗嗎?9.業(yè)務(wù)里面的互斥鎖是怎么實現(xiàn),底層原理?10.鎖釋放失敗怎么處理?11.mysql事務(wù)是怎么實現(xiàn)的?12.怎么保證文件寫入和入庫操作原子性?13.如果不依賴于用戶重新上傳操作來實現(xiàn)寫入和入庫原子性,如何避免這種操作?回答cas重試機制,但面試官想說可以用消息隊列實現(xiàn)異常重試的機制。14.搜索詞的模糊和精確查詢是怎么做的?15.某張表的數(shù)據(jù)量多大、查詢時間、qps、加了索引嗎?16.如何加索引,考慮哪些因素,給哪些字段加索引有效?17.數(shù)據(jù)稀疏度不高,需要加索引嗎?18.聯(lián)合索引什么時候會失效?19.redis是單線程還是多線程?20.多個請求同時獲取這個鎖,為啥通過redis分布式鎖只能讓一個請求獲取到鎖?21.redis數(shù)據(jù)結(jié)構(gòu)?22.問了兩個java問題,沒聽懂,java關(guān)鍵字有哪些、switelocal是什么?23.協(xié)程和線程區(qū)別?24.現(xiàn)在住在哪里?基本都是業(yè)務(wù)+八股混合拷打,不過沒有手撕代碼環(huán)節(jié),感覺面試官很有水平。字節(jié)風(fēng)控一面1.模型api通過什么協(xié)議?2.看過哪些開源的庫?3.協(xié)程調(diào)度GMP,分別是什么?4. go中協(xié)程的生命周期是怎樣的?5. go垃圾回收效率怎么樣?6.你有實現(xiàn)過一個go協(xié)程池嗎?構(gòu)建一組協(xié)程池,有任務(wù)處理任務(wù),類似于線程池。7.go和java,繼承有什么不一樣?go有 interface和基類如何支持這種繼承的能力?8.redis分布式鎖怎么實現(xiàn)的?setnx有幾個參數(shù)?9.有兩個任務(wù)去獲取redis鎖,有哪些機制能安全的獲取到鎖?10.鎖未被釋放、B鎖被A鎖釋放(誤刪鎖)怎么處理?算法題z字型打印二叉樹 、卡在輸入,結(jié)構(gòu)體不記得怎么寫,可能是剛面完JD又面字節(jié),精神狀態(tài)太差了。貝殼一面首先是基礎(chǔ)八股拷打。主要是和背課本一樣,都想放棄了。1.如何保證請求在不同的服務(wù)器中,數(shù)據(jù)會話內(nèi)容是一致的?2.go map線程安全底層是怎么實現(xiàn)的?3.go的垃圾回收原理?4.切片底層是怎么實現(xiàn)的?5.遇到panic如何排查問題?6.go的數(shù)據(jù)類型有哪些?哪些數(shù)據(jù)類型是可以比較的?7.web頁面狀態(tài)碼,499、502、500分別是什么意思。然后中間件八股,涉及到redis、kafka?1.redis分布式鎖原理以及實現(xiàn)方式?2.redis分布式鎖會存在什么問題?3.如何解決Redis 鎖超時問題?4.用過kafka?直接沒用過,沒接著問下去。5.分布式緩存?不知道6.了解LangChain嗎?沒聽過(算法開發(fā)LLM編程框架)然后做了個項目介紹。背景、方案和結(jié)果這樣一個表述。最后是反問環(huán)節(jié)?;緵]答出來,涉及到計算機網(wǎng)絡(luò),語言八股、中間件八股等問題。日常工作go里面一些特性例如線程安全、并發(fā)都沒深挖,平時在用crud和事務(wù)處理,根本沒時間去深入這些基礎(chǔ),面試官建議我多看看go語法和基礎(chǔ)。社招終于算是邁出第一步了,面試也發(fā)現(xiàn)自己表達能力得提升,回答不能太快,得留一會時間思考再回答,不知道的說不知道,別假裝知道,往下深挖被發(fā)現(xiàn)答不出來又會很尷尬。還有一些基礎(chǔ)八股得鞏固一下,特別是線程安全和一些常規(guī)基礎(chǔ)八股啥都不知道。。。