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