软件工程网络科技程序员实习生实习报告_第1页
软件工程网络科技程序员实习生实习报告_第2页
软件工程网络科技程序员实习生实习报告_第3页
软件工程网络科技程序员实习生实习报告_第4页
软件工程网络科技程序员实习生实习报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程网络科技程序员实习生实习报告一、摘要2023年7月1日至2023年8月30日,我在一家网络科技公司担任软件工程程序员实习生。期间,我参与了三个核心项目,独立完成代码调试任务127次,修复线上Bug23个,其中5个涉及系统级性能优化,将接口平均响应时间缩短18%。主要应用C++和Python进行后端开发,通过设计并实现自动化测试脚本,将单元测试覆盖率从52%提升至78%。工作中采用敏捷开发流程,结合Git进行版本控制,累计提交代码commit342次,其中通过CodeReview合并的commit215次。提炼出“分模块迭代开发”与“日志驱动调试”方法论,前者使项目交付周期缩短25%,后者将问题定位效率提升40%。二、实习内容及过程1.实习目的希望通过实践了解网络科技公司软件开发的实际流程,把学校学的数据结构、算法这些玩意儿用上,看看业界是怎么搞项目的,顺便提升下编码能力和解决问题的能力。2.实习单位简介公司是做云计算和网络服务的,主要业务是分布式系统和边缘计算的解决方案。团队里大神挺多,技术栈也挺新,用了不少容器化和微服务的玩意儿。3.实习内容与过程第一周主要是熟悉环境,跟着导师把几个项目跑起来,了解他们的代码库和开发流程。用的是GitLab做代码管理,分支策略是GitFlow那种,CommitMessage得写清楚,不然MergeRequest容易被打回。后来参与了两个项目。3.1项目一:一个监控系统后端开发负责其中一个模块,主要是数据采集和存储。用Python写API,对接前端,还用了Redis做缓存。一开始对异步编程不熟,请求处理慢得像乌龟爬。导师建议用协程库,我就学了asyncio,改完之后响应速度直接快了50%。期间还遇到过Redis突然挂掉的情况,查了日志发现是内存爆了,临时加了限流措施,后面跟运维一起把集群扩容了。整个项目做了大概3周,最后测试时发现一个边界条件没覆盖到,导致某个场景下数据会重复计数。花了两天重写了部分逻辑,加了单元测试覆盖,上线后问题没了。这个经历让我明白测试得做透,尤其是边界条件。3.2项目二:优化一个旧系统的接口性能原来那个接口用C++写的,代码比较老,每次请求都要全表扫描,特别慢。我接手后花了2天重构了查询逻辑,加了索引,改成了预编译语句。改完后压测发现QPS从500提升到2000,延迟从500ms降到100ms。不过改完之后发现有个隐藏的Bug,某个特定参数组合下会越界读,又花了3天排查定位,最后用了边界检查解决。这段经历让我对性能优化有了点认知,知道不能光改表面,得深挖底层。4.实习成果与收获完成了2个项目的模块开发,提交了342个commit,其中215个被合并。修复了23个Bug,包括5个线上问题。测试覆盖率从52%提到78%,主要是用了JUnit和PyTest写自动化测试。最大的收获是学会了GitFlow的规范写法,还有怎么用日志分析定位问题。感觉业界开发节奏快,要求细节特别多,比如CommitMessage不能随便写,得说明改动原因。5.问题与建议5.1遇到的挑战最大的困难是异步编程那会儿,完全懵圈,写出来的代码又臭又长。另一个是项目文档太少了,有些历史遗留问题查起来费劲。5.2如何克服挑战一,我买了本《Python异步编程》啃了一周,还看了团队里一个老哥写的内部文档,最后把协程和事件循环搞明白了。挑战二,我就主动跟导师说,把那些没文档的模块整理成Wiki,后面几个新人没意见。5.3最终成果重构的接口性能提升了80%,测试覆盖率从原来的水平提升到78%,这个数据是测试组测的,我也有记录。5.4对职业规划的影响这8周让我确定了自己想做后端开发,尤其是分布式这块。感觉挺有意思的,以后想往这个方向深挖。5.5单位问题公司流程有点乱,比如需求评审会经常临时加人,有时候我还在写代码,突然被叫去开会,影响效率。5.6改进建议建议需求评审提前定好时间,别临时叫人。另外可以搞个内部知识库,现在很多资料都在邮件里,找起来费劲。比如那个Redis内存爆的问题,如果早有文档说明,我可能用半小时就解决了。三、总结与体会1.实习价值闭环这8周不是简单的打杂,把学校学的理论用上了,比如7月15号那天调试那个接口慢的问题,用到了操作系统课上学过的I/O多路复用原理,感觉挺有意思的。提交的342个commit里,有215个是被合并的,这让我知道怎么写代码能让别人愿意用。修复的23个Bug,特别是那个Redis内存爆的,让我明白线上问题排查不是瞎猜,得靠日志分析和系统监控数据。从需求评审到代码上线,完整经历了项目流程,这种体验比在学校做课程设计深刻多了。2.职业规划联结这次实习让我更确定要做后端开发了,特别是分布式系统和网络编程这块。之前对数据库优化、缓存策略这些挺模糊的,现在有具体印象了。比如8月5号那个项目里用到的分库分表,当时觉得复杂,现在再看觉得是必会的。这让我决定下学期选数据库原理这门课的时候多花点心思,可能去考个AWS或阿里云的云认证,先把容器化和微服务这些技能补上。导师说的“编码要像写论文一样严谨”这句话我一直记着,以后写代码会注意规范性和可读性。3.行业趋势展望感觉现在网络科技行业变化特别快,7月20号那天听团队分享,说很多公司都在搞边缘计算,把计算放离用户近的地方,可以减少延迟。我当时觉得新鲜,现在看确实是个大方向。还有那个监控系统,用到的Elasticsearch+Kibana组合挺厉害的,数据可视化做得特别直观。如果以后做相关项目,肯定要学学这个。不过也发现业界对人才的要求很高,比如8月25号那个性能优化任务,要求接口响应必须低于100ms,这种压力在学校实验室根本感受不到。4.心态转变刚开始实习的时候有点畏手畏脚,7月10号第一次写CommitMessage还被导师说,说不够清晰,得说明动机。后来改过来了,发现这样沟通效率高多了。遇到难题比如异步编程卡壳的时候,虽然烦但确实成长了。现在写代码没那么怕出错了,知道怎么查资料,怎么问人。最大的变化是责任感,以前做项目觉得完成就行,现在会想怎么让用户用着爽,比如那个Redis问题,如果是我负责,肯定要加监控和自动扩容预案。这种从学生到“准职业人”的感觉挺奇妙的,抗压能力也明显变强了。5.未来行动下半年打算把实习期间用到的技术再深挖一下,特别是C++的内存管理,那个项目里用到了智能指针,但当时没完全搞懂。打算买个书看看,顺便把学校那个毕业设计方向改成分布式系统相关的,这样毕业时能交出更像样的东西。实习时看的那个内部知识库,建议下届实习生一定要整理完善,别像我一样花了半天找某个旧模块的文档。这种经验沉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论