版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)科學(xué)專業(yè)軟件開發(fā)實(shí)習(xí)報(bào)告一、摘要2023年7月1日至2023年8月31日,我在一家科技公司擔(dān)任軟件開發(fā)實(shí)習(xí)生,負(fù)責(zé)后端API開發(fā)與優(yōu)化。期間,我主導(dǎo)完成3個(gè)模塊的代碼重構(gòu),將接口平均響應(yīng)時(shí)間從450毫秒降低至180毫秒,吞吐量提升60%。運(yùn)用SpringBoot和MySQL,設(shè)計(jì)并實(shí)現(xiàn)了支持百萬級(jí)日活用戶的用戶認(rèn)證系統(tǒng),通過Redis緩存優(yōu)化,將查詢效率提高70%。參與微服務(wù)架構(gòu)的聯(lián)調(diào)測試,修復(fù)12處關(guān)鍵Bug,并編寫了4份自動(dòng)化測試腳本,覆蓋率達(dá)85%。實(shí)習(xí)中,我掌握了敏捷開發(fā)流程與CI/CD部署實(shí)踐,總結(jié)了基于JMeter的負(fù)載壓測方法論,為高并發(fā)場景下的系統(tǒng)性能調(diào)優(yōu)提供了可復(fù)用方案。二、實(shí)習(xí)內(nèi)容及過程1.實(shí)習(xí)目的希望通過實(shí)踐掌握企業(yè)級(jí)軟件開發(fā)流程,提升后端開發(fā)能力,熟悉微服務(wù)架構(gòu)在實(shí)際項(xiàng)目中的應(yīng)用。2.實(shí)習(xí)單位簡介我在一家專注于金融科技的公司實(shí)習(xí),團(tuán)隊(duì)主要使用Java和SpringBoot開發(fā)分布式系統(tǒng),系統(tǒng)需要支持高并發(fā)和事務(wù)一致性。3.實(shí)習(xí)內(nèi)容與過程第13周,我跟著導(dǎo)師熟悉項(xiàng)目代碼庫,主要是閱讀用戶認(rèn)證模塊的代碼,學(xué)習(xí)JWT和OAuth2.0的實(shí)踐。導(dǎo)師給我布置了優(yōu)化數(shù)據(jù)庫查詢的任務(wù),原始接口用到了大量join操作,SQL執(zhí)行時(shí)間超過500ms。我嘗試添加分表和索引,但效果不明顯。后來用Redis緩存熱點(diǎn)數(shù)據(jù),響應(yīng)時(shí)間直接降到80ms左右。這個(gè)過程中,我第一次接觸到了Redis持久化配置,搞懂了RDB和AOF的區(qū)別。第46周,我開始獨(dú)立負(fù)責(zé)訂單模塊的開發(fā)。需求是支持訂單秒殺場景,要求系統(tǒng)在并發(fā)量10萬QPS時(shí),錯(cuò)誤率低于0.1%。我設(shè)計(jì)了基于Redis的分布式鎖方案,并用了消息隊(duì)列解耦下單和支付流程。測試時(shí)發(fā)現(xiàn)在高并發(fā)下,訂單號(hào)生成會(huì)超時(shí)。最后改用Snowflake算法,自己實(shí)現(xiàn)了內(nèi)存緩存機(jī)制,秒殺接口的TPS從3萬提升到8萬。期間還參與了系統(tǒng)監(jiān)控的搭建,用Prometheus和Grafana畫了關(guān)鍵指標(biāo)的曲線圖,比如API響應(yīng)延遲和數(shù)據(jù)庫慢查詢。第78周,協(xié)助測試團(tuán)隊(duì)做壓力測試,用JMeter模擬真實(shí)用戶訪問。發(fā)現(xiàn)當(dāng)并發(fā)量超過5萬時(shí),系統(tǒng)會(huì)響應(yīng)超時(shí)。排查后發(fā)現(xiàn)是數(shù)據(jù)庫連接池配置太小,改大后問題解決。我還整理了接口文檔,用Swagger自動(dòng)生成文檔,減少前后端溝通成本。4.實(shí)習(xí)成果與收獲主導(dǎo)優(yōu)化的用戶認(rèn)證接口,平均響應(yīng)時(shí)間下降82%,日均調(diào)用量提升40%。獨(dú)立完成的訂單模塊上線后,支撐了雙十一期間的秒殺活動(dòng)。通過這次實(shí)習(xí),我學(xué)會(huì)了怎么用Redis解決高并發(fā)問題,掌握了分布式鎖的實(shí)現(xiàn)原理。最大的收獲是理解了系統(tǒng)設(shè)計(jì)不是閉門造車,要結(jié)合業(yè)務(wù)場景做權(quán)衡。比如秒殺場景下,寧可犧牲部分一致性,也要保證可用性。5.問題與建議遇到的困難有:一是初期代碼庫太龐大,新員工很難快速上手;二是測試環(huán)境配置復(fù)雜,經(jīng)常出現(xiàn)"這里沒問題,Deploy后報(bào)錯(cuò)"的情況。我后來用Git的分支策略,先在本地開發(fā)環(huán)境完整測試,再提交CodeReview,最后合并到測試分支,這樣問題減少不少。對(duì)公司的建議:可以建立更完善的CodeReview流程,現(xiàn)在很多Bug都是測試階段才暴露的。另外,測試環(huán)境配置應(yīng)該標(biāo)準(zhǔn)化,比如用Docker容器化部署,避免"環(huán)境問題"。崗位匹配度上,我希望接觸更多數(shù)據(jù)庫調(diào)優(yōu)的工作,目前這塊兒涉及較少。如果能提供更系統(tǒng)的培訓(xùn),比如安排幾場關(guān)于分布式事務(wù)的分享會(huì),對(duì)我?guī)椭鷷?huì)更大。三、總結(jié)與體會(huì)1.實(shí)習(xí)價(jià)值閉環(huán)這8周實(shí)習(xí)像把理論課上的分布式系統(tǒng)、數(shù)據(jù)庫原理這些抽象概念,變成了實(shí)實(shí)在在要解決的工程問題。比如用Redis解決高并發(fā)緩存擊穿,當(dāng)時(shí)查了十幾個(gè)博客才搞明白淘汰策略的選擇?,F(xiàn)在回頭看,這段經(jīng)歷讓我徹底搞懂了LRU、LFU這些算法的權(quán)衡,這比單純做課程設(shè)計(jì)收獲大多了。導(dǎo)師說我的Redis配置方案可以直接用,這種反饋比考試拿高分還讓人有成就感。通過Debug接口超時(shí)問題,我學(xué)會(huì)了用Arthas動(dòng)態(tài)診斷Java應(yīng)用,這個(gè)技能現(xiàn)在寫作業(yè)都經(jīng)常用上。最初實(shí)習(xí)目標(biāo)是學(xué)會(huì)企業(yè)級(jí)開發(fā)規(guī)范,結(jié)束時(shí)發(fā)現(xiàn)自己還掌握了JMeter壓測和Docker容器編排,這些工具書上看半天不如實(shí)際操作一次。比如優(yōu)化訂單模塊SQL時(shí),加個(gè)覆蓋索引居然能把延遲從400ms降到50ms,這種量化的進(jìn)步特別直觀。最后整理的監(jiān)控大盤,運(yùn)維同事說比他們以前看的報(bào)表清晰多了,這種被認(rèn)可的感覺很奇妙。2.職業(yè)規(guī)劃聯(lián)結(jié)這次經(jīng)歷讓我確定要做后端開發(fā),特別是金融場景的分布式系統(tǒng)?,F(xiàn)在再看招聘要求,發(fā)現(xiàn)自己欠缺的只是云計(jì)算方向的實(shí)踐。接下來打算考取AWS認(rèn)證,順便學(xué)習(xí)下ECS和RDS的對(duì)比配置,這比單純刷算法題更有意義。實(shí)習(xí)時(shí)看到過幾次Kubernetes的部署腳本,但沒機(jī)會(huì)深入,準(zhǔn)備下學(xué)期找學(xué)校實(shí)驗(yàn)室的分布式項(xiàng)目實(shí)踐一下。導(dǎo)師說現(xiàn)在企業(yè)招人很看重?cái)?shù)據(jù)庫調(diào)優(yōu)能力,所以打算把MySQL的InnoDB引擎特性再系統(tǒng)學(xué)一遍,爭取秋招能拿出更硬核的簡歷。3.行業(yè)趨勢(shì)展望實(shí)習(xí)中接觸的很多技術(shù),比如秒殺場景下的熔斷限流,現(xiàn)在看都是微服務(wù)架構(gòu)的標(biāo)準(zhǔn)配置。但最讓我驚訝的是他們用Redisson實(shí)現(xiàn)分布式事務(wù),這種開源方案居然能跑通支付寶級(jí)別的業(yè)務(wù)。這讓我意識(shí)到,技術(shù)選型真的得看場景,學(xué)校里學(xué)的分布式事務(wù)PaxosRaft這些理論模型,在實(shí)際業(yè)務(wù)中可能并不實(shí)用。另外看到團(tuán)隊(duì)用Go寫消息隊(duì)列客戶端,性能確實(shí)比Java好不少,但代碼風(fēng)格完全不一樣。如果以后要做技術(shù)選型,可能得考慮跨語言協(xié)作的復(fù)雜性。最直觀的感受是云原生技術(shù)正在全面滲透,公司用的很多中間件都是云服務(wù)商提供的托管版本,比如RDS和云監(jiān)控。這讓我意識(shí)到,未來的后端開發(fā)可能更像是"平臺(tái)運(yùn)營師",既要懂底層原理,又要會(huì)配置云服務(wù)。下學(xué)期打算關(guān)注Serverless這塊,現(xiàn)在看阿里的函數(shù)計(jì)算挺有意思,說不定以后能替代很多中小型項(xiàng)目里的獨(dú)立服務(wù)器。4.心態(tài)轉(zhuǎn)變剛開始寫代碼總想著用最"高級(jí)"的技術(shù),比如給每個(gè)接口都加分布式事務(wù)。導(dǎo)師給我講了一個(gè)他們當(dāng)年踩過的坑:某次系統(tǒng)崩潰就是因?yàn)槊總€(gè)服務(wù)都用了分布式事務(wù),最終導(dǎo)致全鏈路鎖死。現(xiàn)在才明白,高可用設(shè)計(jì)真的要結(jié)合業(yè)務(wù)重試和補(bǔ)償。這種教訓(xùn)比書本上的案例分析深刻多了。另外學(xué)會(huì)跟測試人員溝通,以前覺得Bug都是他們測不完,現(xiàn)在知道很多問題是我沒考慮邊界條件。比如秒殺接口,必須明確最大并發(fā)數(shù)是多少,否則壓力測試時(shí)很容易把服務(wù)器拖垮。這種責(zé)任感確實(shí)是從學(xué)生時(shí)代沒體會(huì)過的。四、致謝1.感謝實(shí)習(xí)期間給予指導(dǎo)的導(dǎo)師,在遇到技術(shù)難題時(shí)總能得到耐心解答,比如分布式鎖的選型和Redis持久化配置的建議,讓我少走了很多彎路。2.感謝團(tuán)隊(duì)成員的同事,特別是在高并發(fā)測試時(shí)提供的幫助,一起排查過N次TPS突增的問題,從消息隊(duì)列積壓到數(shù)據(jù)庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲(chǔ)部新員工培訓(xùn)
- 員工手冊(cè)培訓(xùn)素材
- 員工快樂工作培訓(xùn)
- 員工微信培訓(xùn)
- 員工工作效率培訓(xùn)
- 新聞宣傳制度
- 塔司信號(hào)工培訓(xùn)
- 員工基本禮儀培訓(xùn)
- 2025年雞西虎林市中醫(yī)醫(yī)院招聘筆試真題
- 開工第一課制度
- 醫(yī)院保安考試試題及答案
- 家校合力+護(hù)航高考+-2025-2026學(xué)年高三下學(xué)期新年開學(xué)家長會(huì)
- 文旅局安全生產(chǎn)培訓(xùn)課件
- 2026年及未來5年中國化妝品玻璃瓶行業(yè)市場深度分析及發(fā)展趨勢(shì)預(yù)測報(bào)告
- 2022通達(dá)經(jīng)營性物業(yè)貸調(diào)查報(bào)告
- 立式氣液分離器計(jì)算
- 財(cái)務(wù)每日工作匯報(bào)表格
- 2022-2023學(xué)年廣東省佛山市南海區(qū)、三水區(qū)九年級(jí)(上)期末數(shù)學(xué)試卷含解析
- 版權(quán)登記代理委托書
- 物流工業(yè)園區(qū)總體規(guī)劃
- 飛行機(jī)組失能的處置
評(píng)論
0/150
提交評(píng)論