计算机科学科技公司软件开发实习报告_第1页
计算机科学科技公司软件开发实习报告_第2页
计算机科学科技公司软件开发实习报告_第3页
计算机科学科技公司软件开发实习报告_第4页
计算机科学科技公司软件开发实习报告_第5页
全文预览已结束

下载本文档

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

文档简介

计算机科学科技公司软件开发实习报告一、摘要

2023年6月5日至8月22日,我在一家计算机科学科技公司担任软件开发实习生,负责后端系统开发与优化。核心工作成果包括重构API接口,使系统响应时间缩短40%,并完成3个模块的单元测试,通过率达95%。期间应用Java、Python及Docker技术,通过Jira管理任务进度,累计解决20个技术难题。提炼出模块化开发与自动化测试的复用方法论,具体体现在将日志系统封装为独立服务,提升团队协作效率。

二、实习内容及过程

实习目的主要是想把学校学的理论知识用到实际开发里,了解真实项目的运作方式,特别是敏捷开发流程怎么落地。

实习单位是家做分布式系统开发的公司,主要业务是云服务相关,技术栈偏向Java和Go,用的数据库主要是MySQL和Redis,平时项目都是用SpringBoot框架搭建的。

实习内容开始时跟着导师熟悉项目代码,是个电商平台的后台系统,代码量大概有七八千行,分成订单、商品、用户这几个大模块。第一周主要是看文档和Debug,把几个遗留的Bug修复了,比如一个商品库存超卖的问题,是早期版本没做好并发控制,我用乐观锁结合Redis缓存解决了,修复后测试用例全部跑通。

接下来参与了一个新功能开发,是用户积分系统,需求是支持积分抵现和积分兑换商品。我负责订单模块的改造,要把订单金额换算成积分写入数据库。遇到的最大挑战是性能问题,原始方案直接在事务里计算积分会导致订单接口响应时间超过3秒,超出了SLA要求。后来跟导师研究,改用消息队列异步处理,积分计算单独跑一个服务,用了Redis事务保证原子性,改完后压测结果显示响应时间稳定在200毫秒以内,吞吐量也提升了50%。

具体过程是先分析现有代码架构,发现系统用的是微服务架构,各个模块通过RESTfulAPI通信,集成的是Consul做服务发现。我用了Postman测试接口,还学了JMeter做压力测试,印象最深的是调试一个分页接口时,发现SQL查询没加索引,用EXPLAIN看执行计划才知道问题所在,加索引后查询速度加快了70%。

实习成果主要是完成了积分系统的开发,通过了所有测试用例,并且部署到生产环境后运行了两个月没有出现线上问题。另外还整理了一份技术文档,把项目中用到的分布式事务解决方案、缓存穿透处理方法都记录下来了。收获最大的可能是学会了怎么写可维护的代码,比如统一异常处理、接口设计要考虑扩展性这些,以前写代码比较随意,现在意识到标准化的重要性。

遇到的困难有两个,一个是初期对业务逻辑不熟,需求评审会听不懂产品经理讲的功能点,后来每天花时间看业务文档,还主动跟测试沟通测试用例,慢慢就清楚了;另一个是调试分布式问题比较耗时,有一次是两个服务之间的参数传递出错,花了两天才定位到,最后用到了SpringAOP做日志记录才找到线索。解决这些问题的过程让我意识到掌握调试工具和沟通技巧的重要性,现在会用Elasticsearch做日志分析,也学会了在GitLab上跟踪代码变更。

这段经历让我对技术选型有了更直观的认识,比如为什么这个项目用Redis做缓存而不是Memcached,是因为需要支持数据持久化。对我职业规划的影响是,之前想泛而全学各种技术,现在觉得应该先选定一个方向深耕,比如想做分布式中间件,所以下学期打算补学Kafka和Elasticsearch的相关课程。

实习单位的问题主要是管理比较混乱,比如需求变更没人统一管理,有时候一个功能会同时给两个组做,造成资源浪费。另外培训机制也不完善,没有新人引导计划,很多技术细节都是靠自学或者问老员工。岗位匹配度上,我负责的模块比较基础,用到的技术也大多是学校教过的,没能接触到更前沿的东西,比如Serverless或者AI相关的。

改进建议是建议他们建立需求池,所有变更都要提交到需求池审批,避免重复开发。可以搞个内部技术分享会,定期让员工分享踩坑经验,比如我遇到的那个Redis缓存问题就可以作为案例讲讲。另外可以出个新人手册,把项目架构图、常用工具链都列清楚,这样新来的同学也能快速上手。

三、总结与体会

这八周,从2023年6月5日到8月22日,在公司的经历像把理论推到了现实,感觉像是把大学几年学的编程语言、数据结构这些碎片拼成了一个有点像样的整体。实习最大的价值在于让我明白,写代码不只是实现功能,更是要考虑健壮性、可维护性,这点在修复那个订单超卖Bug时感受最深,用乐观锁加Redis缓存虽然只是解决了表面问题,但真正让我理解了分布式环境下数据一致性的复杂。这段经历验证了我在学校做的分布式系统课程设计是有点用的,虽然当时没意识到会用到Redis事务这种实际场景。

对职业规划的影响挺直接的,之前觉得后端开发就是敲代码,现在知道要做个合格的工程师,还得懂业务、会测试、能看懂压测报告。比如那个积分系统,我为了优化性能学到了很多关于异步处理和缓存设计的知识,这让我确定了自己对中间件方向的兴趣,下学期打算报个Kafka的专项课程,把消息队列这块补上。实习最后写的那个技术文档,现在看来还挺有用的,几个技术大佬还问我是不是专门学架构的,虽然我知道自己离那还差得远,但至少说明我把东西总结到位了。

看着每天Jira上自己负责的任务从red变成green,那种成就感是学校写作业没法比的,也体会到团队合作的重要性,比如开发、测试、运维每天站会沟通,哪个环节出问题都能快速响应。最大的心态转变是责任感,以前写代码随便删改,现在知道改动可能影响很多人用系统,每次提交前都会反复检查。抗压能力上,连续加班两周赶那个积分系统上线,虽然累但挺住了,现在想想那段日子挺宝贵的,让我明白职场不是学校,没有时间机器可以倒带。

实习也让我看到了行业趋势,比如现在项目里用的Consul服务发现、Elasticsearch日志分析这些,都是云原生环境下必备的技能,这让我觉得继续学习不能停,特别是想进大厂,技术深度和广度都得跟上。那个Redis缓存问题暴露出我对底层原理的理解还不够,下个学期打算深入学学Linux网络和内存管理,为考个CKA证书做准备。总的来说,这次实习就像打开了新世界的大门,虽然只是看了几扇门,但每扇门后面都挺精彩,接下来就是得撸起袖子加油干了。

四、致谢

感谢在实习期间给予指导和帮助的团队,特别感谢导师在项目上给我的耐心讲解和代码审查,那些关于微服务架构和分布式事务的讨论让我受

温馨提示

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

最新文档

评论

0/150

提交评论