软件工程软件开发实习报告_第1页
软件工程软件开发实习报告_第2页
软件工程软件开发实习报告_第3页
软件工程软件开发实习报告_第4页
软件工程软件开发实习报告_第5页
全文预览已结束

下载本文档

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

文档简介

软件工程软件开发实习报告一、摘要

2023年7月1日至2023年8月31日,我在XX公司担任软件开发实习生,负责后端API开发与测试。核心工作成果包括完成5个核心模块的编码实现,推动日均接口调用量提升30%,实现3项关键bug修复,并通过压力测试将系统响应时间缩短至0.8秒。期间应用Java、SpringBoot及PostgreSQL,掌握了敏捷开发中的持续集成流程,总结出模块化代码复用率提升40%的方法。通过参与需求评审与代码审查,深化了对设计模式在实战中的运用,验证了单元测试覆盖率与线上问题率呈负相关的关系。

二、实习内容及过程

实习目的主要是把学校学的软件开发知识用上,看看实际工作是怎么样的,尤其是后端这块。

实习单位是家做企业软件服务的公司,主要搞B2B平台的开发和运维,技术栈以Java为主,用SpringBoot框架比较多,数据库是MySQL和MongoDB。

实习内容开始是跟着导师熟悉项目代码库,那个项目是去年底上的线,用微服务架构做的,服务之间靠RESTfulAPI通信。我负责的模块是用户权限管理这块,需求是增加动态权限配置功能,让业务部门能自己设置菜单权限。

我花了两周时间把相关代码弄明白,主要是看已有的RBAC权限模型代码,然后跟着需求文档写新功能。用到的是Java、SpringBoot、MyBatis,还接触了Redis缓存一些权限数据。写完单元测试后,导师让我跑了一下集成测试,发现有个bug,是数据库事务隔离级别设置不当导致的脏读问题。

当时挺懵的,问了导师半天,他给我讲了SQL锁和事务隔离级别,让我用MySQL的REPEATABLEREAD级别试了下,果然解决了。这让我明白做测试不能光看结果,要看过程,得考虑各种边界情况。

努力了三四天把功能上线,上线后监控到接口响应时间有点慢,从平时的200毫秒涨到300毫秒多。排查了一下,发现是权限校验那段代码没加缓存,每次请求都要查数据库。后来我用了Redis的Hash结构存权限数据,设置过期时间一小时,再用缓存注解@Cacheable,上线后接口响应时间立马降回180毫秒以内。

这个项目里最让我头疼的是跟前端联调的时候,他们总说某个按钮点不了,我本地和测试环境都没问题。后来发现是接口返回的数据格式跟前端预期的不一致,前端那边没做好数据校验。这事儿让我知道前后端接口对接,数据格式和校验逻辑得死磕,不能想当然。

实习期间还参与了代码审查,看其他同事提交的模块代码,学到了不少设计模式在项目里的实际应用,比如单例模式用在配置加载,工厂模式用在生成不同类型的消息处理器。导师还给我分享了他们搞的CI/CD流程,用Jenkins自动构建和部署,每次提交代码都能快速看到效果,这比我以前手动编译部署强太多了。

遇到的困难有单元测试写不好,一开始写的测试用例覆盖率很低,后来看了公司内部的测试规范,学用了Mockito模拟依赖对象,覆盖率提升到85%以上。另一个是微服务通信问题,有一次调用另一个服务超时了,查了日志发现是那个服务因为数据库慢卡住了,学到了要给外部服务调用加超时设置和重试机制。

实习成果主要是完成了动态权限配置功能的开发,上线后业务部门反馈确实方便多了,以前修改权限要找开发人员,现在他们自己就能在后台操作。我写的那个Redis缓存方案,现在接口QPS从500提升到800,没出什么问题。

这段经历让我明白软件开发不是光会写代码就行,还得懂业务,会沟通,知道怎么把技术落地。最大的收获是学会了看问题要从根上解决,不能头痛医头脚痛医脚。感觉自己的调试能力、代码规范意识都进步了。

实习单位管理上,感觉交接新员工信息不太到位,我刚开始就花了不少时间找之前的同事要资料。培训机制也有待完善,主要是导师带,但每个导师带的学生不多,资源分配不太均衡。岗位匹配度上,我的工作内容主要是编码实现,需求分析和架构设计这块接触少。

改进建议是,公司可以搞个内部文档系统,把项目资料、技术规范都放上去,方便新员工快速上手。可以搞些技术分享会,让员工互相学习。另外,能不能让实习生也参与点需求评审会,哪怕只是旁听,了解下业务是怎么来的,这样成长会更快。

三、总结与体会

这八周的实习,像是在学校理论知识之外,给我上了一堂生动的实践课。从2023年7月1日到8月31日,每天对着电脑屏幕,写代码、查Bug、看日志,感觉跟之前在学校写作业完全不一样。手上的活儿是实实在在的,出了问题就得自己扛着找原因。比如有一次接口响应慢,我花了一整个下午查数据库慢的原因,最后发现是索引没加对,这让我第一次真切感受到技术责任。

实习最大的收获是,终于明白学校教的那些设计模式、软件工程流程,在真实项目里是怎么用的。之前觉得抽象的理论枯燥,现在看到项目里用单例模式管理配置,用策略模式处理不同类型的消息,突然觉得特别有意思。我还参与了一个微服务项目,虽然只是写一个小模块,但跟其他服务接口对接,让我深刻体会到系统设计的重要性。导师告诉我,写代码不光要自己看得懂,还得让别人也能用,这个理念我记了很久。

这次经历也让我更清楚自己以后想干嘛。实习前我对后端开发挺感兴趣的,现在更坚定了。我觉得自己的编码能力确实比以前强了,但调试能力和业务理解这块还差得远。学校教的数据库、操作系统这些基础课,现在用得少了,但感觉那些底层知识才是根基,得好好巩固。所以接下来打算补补分布式系统、云原生的知识,看看能不能考个AWS或者阿里云的认证,增加点竞争力。

也能感受到行业现在挺卷的,技术更新快得吓人。每天看技术社区,感觉昨天学的还新鲜,今天就有新东西出来了。微服务、Serverless、大数据这些概念,实际项目里都在用。虽然我实习没接触到那么前沿的东西,但感觉自己像是打开了新世界的大门,以后得持续学,不然很快就被淘汰了。

最重要的是,心态完全变了。以前写代码,随便弄弄能跑就行,现在得考虑性能、可维护性、安全性。比如写缓存策略,不仅要考虑命中率,还得考虑内存占用和过期清理。这种责任心,我觉得比学会多少新技术更重要。实习期间压力也大,晚上偶尔会为Bug失眠,但解决掉一个难题后的成就感,也值了。

回头看,这次实习就像给我做了次职业预演,让我提前感受了职场氛围。虽然只有短短八周,但那些经验真金白银的。以后不管是继续深造还是直接工作,这段经历都会是重要参考。感觉自己是真的从学生向职场人过渡了一步

温馨提示

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

评论

0/150

提交评论