版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发IT实习报告一、摘要2023年7月10日至2023年9月5日,我在XX公司担任软件开发实习生,负责后端API开发与系统测试。核心工作成果包括:独立完成3个模块的接口开发,累计编写代码860行,单元测试通过率达98%;参与2个项目的bug修复,累计修复32个高优先级问题,其中10个涉及数据库优化。期间应用JavaSpringBoot框架实现RESTfulAPI设计,通过JMeter进行压力测试,优化接口响应时间从850ms降至320ms。提炼出模块化开发与自动化测试的复用方法:采用Mockito模拟数据层交互,构建可插拔的单元测试框架,将通用代码抽象为工具类库,后续项目可直接调用,提升开发效率30%。二、实习内容及过程实习目的是想看看自己学的那些后端知识在真实项目里怎么用,能不能跟团队合作搞出东西来。实习单位是家做企业软件的,主要用Java和SpringBoot,业务挺复杂的,但技术栈我觉得跟学校教得差不多,就是实际开发流程要规范得多。我被分到开发组,跟着师傅做项目里的用户权限管理模块。7月15号开始接手,当时项目已经用了RBAC模型做权限控制,但代码写得比较散,新需求加不进去。师傅让我先重构这部分代码,搞清楚每个表的关联关系。我花了两天时间,把用户、角色、权限这三张表的关系梳理出来,用MyBatisPlus写了一堆Mapper接口,还弄了个Service层来处理业务逻辑。写完后发现查询效率有点低,查一个用户的所有权限要3秒多,这肯定不行。我用JProfiler看了下,发现是数据库查询没加索引。7月20号我就去改了SQL语句,给关联字段都加上了索引,然后重新跑测试。新的查询时间直接降到500毫秒以内,这个优化让我挺有成就感。接下来做的是接口开发,8月5号开始写RESTfulAPI。需求是前端要能批量查询用户的权限,我用了SpringSecurity做认证,JWT做token传输。写完接口后用Postman测,发现当请求参数超过100个时,接口会超时。我查了SpringBoot的文档,发现默认最大请求体是1MB,我就去改了配置,把maxUploadSize设到10MB,问题解决。这个经历让我知道,做接口不能只考虑正常情况,边界条件得想周全。团队里有个自动化测试的流程,但测试用例写得比较烂,很多场景覆盖不到。8月15号我就主动跟测试小姐姐说,我能不能帮忙完善下用例。她给我看了测试计划文档,里面很多地方写的是“看能不能通过”,这种描述太模糊了。我就按照接口文档里的参数要求,把每个字段都分成正常值、边界值、异常值三种情况来写测试用例,最后整理了200多条新的用例,测试小姐姐还挺满意的。期间遇到个麻烦事是版本控制。8月25号晚上,我本地代码弄坏了几个环境变量,结果合并代码时把别人的改动给覆盖了,师傅让我自己恢复。我吓得连夜把gitlog翻烂,最后用`gitcherrypick`命令把需要的commit一个个补上。这件事让我意识到,commitmessage一定要写清楚,不然自己都看不懂当初为啥改。项目最后在9月2号上线,我这模块相关的bug有5个,都是小问题,比如某个字段校验没做好,或者接口返回信息不够友好。我写的代码覆盖率达到85%,单元测试全绿。虽然数据不算特别惊人,但感觉总算把东西搞出来了,挺开心的。这8周最大的收获是看到了软件开发的完整流程,从需求分析到测试上线,每个环节都挺有讲究的。以前在学校写代码,随便测测就行,现在知道线上环境要考虑性能、安全、兼容性,这些在学校课程里都没怎么讲。比如学到了怎么用JProfiler定位性能瓶颈,怎么写规范的gitcommitmessage,这些在学校根本接触不到。而且我发现团队的开发流程其实挺乱的,比如需求文档没人统一管理,有时候开会时大家说的东西跟文档对不上。还有代码评审也不严格,有时候师傅忙着,就让我自己看,结果后来发现我漏看了一段有问题的代码。这让我觉得,如果以后想搞管理,得好好研究下敏捷开发怎么落地。我觉得实习单位最大的问题是培训机制,给新人的指导太少了。我来了8周,除了师傅偶尔教我点东西,就没参加过什么技术分享或者项目复盘。建议他们可以搞个新人手册,把常用工具、代码规范、项目架构图都列清楚,还能省师傅不少嘴皮子功夫。另外,测试小姐姐用的测试框架很老,建议可以引入Selenium或者Cypress做接口自动化,效率能高不少。这次实习让我知道,做开发光会写代码是不够的,还得懂流程、懂团队协作。以后想进大厂,得在数据库优化、分布式系统这些方面多下功夫,现在学的这些基础还挺扎实的,但离实际项目还有距离。三、总结与体会这8周在XX公司的经历,让我第一次完整地走了一遍软件开发的实战流程,从7月10号接手任务到9月5号项目上线,每一个环节都挺具体的。最直接的感受是,学校教的SpringBoot基础够用,但实际项目里要考虑的东西多得多。比如我负责的用户权限模块,用MyBatisPlus写Mapper接口时,一开始没加索引,查100条权限记录要3秒,后来查资料加索引后,直接降到0.3秒,这让我明白线上开发对性能要求有多苛刻。这次实习最大的价值在于,让我把“学生思维”改成了“职场思维”。以前写代码,写通就行,现在知道要考虑可维护性、可扩展性,比如我写的Service层,把所有业务逻辑都封装在里面,方便后期测试和修改。还有Git的commitmessage,以前随便写个“修改了点东西”,现在知道要写清楚改动内容,比如“修复了批量查询权限超时的Bug,通过增加数据库索引解决”。这些细节虽然小,但真的影响团队协作效率。这次经历也让我更清楚自己的职业规划了。实习前我挺迷茫的,想搞后端又想搞人工智能,现在明确了,后端还得深耕。我打算下学期把数据库优化和分布式系统补上,打算考个AWS认证,现在很多公司都开始用云了,这块技能挺有用的。另外,我观察到现在企业级开发都在用Docker和Kubernetes,虽然实习没接触到,但我打算自学一下,争取下个项目能用上。行业趋势这块,我感觉微服务现在是大势所趋,但随之而来的问题是分布式事务、服务治理这些新问题。我这次实习做的项目还比较传统,单体应用加数据库,但师傅跟我提过,他们下一代项目会考虑用SpringCloudAlibaba。这也给了我方向,以后学习要往这个方向发展,微服务架构、消息队列、缓存这些都要学透。心态转变这块,最明显的是责任感。以前做课程设计,搞不好老师给及格分就行,现在写代码要考虑上线后会不会崩,这个压力是以前没有的。8月25号晚上搞坏本地环境变量那晚,我折腾到凌晨3点才恢复,第二天还是觉得挺慌的,但后来发现确实能从中学到东西,也就释然了。抗压能力这块,感觉也练出来了,以前遇到问题容易找师傅,现在会先自己查资料、写日志,实在搞不定再求助。总的来说,这次实习让我明白,做软件开发不是光会写代码就行,得懂业务、懂流程、懂团队协作。虽然8周时间不长,但收获挺大的,至少让我知道以后该往哪努力了。接下来我会把实习中遇到的问题都整理出来,比如JProfiler怎么用、Git高级操作这些,系统学一遍,争取下次实习能做得更好。四、致谢在XX公司实习的8周时间,得到了很多帮助。师傅在技术问题上给了我不少指导,尤其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 谷物种植技术培训指导手册
- 初中数学七年级上册“选择方案问题”高阶复习知识清单
- 小学六年级科学“外貌特征遗传探究”知识清单
- 无管网气体灭火施工工艺
- 施工现场各项管理制度
- 智能楼宇节能监控系统设计方案
- 快速消费品销售数据分析报告模板
- 学前儿童语言发展评估工具介绍
- 制造业新技术应用趋势报告
- 中小学学生体育健康评价标准
- 2026年山东理工职业学院综合评价招生《素质测试》模拟试题
- 2025年莱芜职业技术学院单招职业适应性测试题库附答案解析
- 八年级地理下册:黄土高原区域发展与居民生活的可持续性探究
- 新能源运维技术支持工程师面试题及答案
- 2026年度医院纪检监察工作计划(2篇)
- 心脏移植术后CRT治疗的药物调整方案
- 教学副校长学校管理述职报告
- 《新能源汽车构造与故障检修》实训工单
- 【低空经济】低空经济职业学院建设方案
- (正式版)DB54∕T 0275-2023 《民用建筑节能技术标准》
- GB/T 191-2025包装储运图形符号标志
评论
0/150
提交评论