软件开发互联网公司软件开发工程师实习报告_第1页
软件开发互联网公司软件开发工程师实习报告_第2页
软件开发互联网公司软件开发工程师实习报告_第3页
全文预览已结束

下载本文档

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

文档简介

软件开发互联网公司软件开发工程师实习报告一、摘要

2023年6月5日至2023年8月12日,我在一家互联网公司担任软件开发工程师实习生,负责后端系统开发与优化。核心工作成果包括重构API接口,使响应时间缩短30%,处理日均请求量提升至5000次;参与电商平台模块开发,完成3个核心功能模块上线,日活跃用户增长15%。期间应用Java、SpringBoot和MySQL,通过自动化测试脚本将Bug修复率降低25%,并实践了CI/CD流程,将部署周期缩短至2小时。提炼出的可复用方法论包括:采用Redis缓存热点数据,提升查询效率40%;运用JMeter进行压力测试,优化系统稳定性。

二、实习内容及过程

实习目的主要是把学校学的编程知识用到实际项目里,了解互联网公司是怎么开发软件的,特别是后端这块。

实习单位是做电商服务的,技术栈以Java为主,用SpringBoot框架,数据库是MySQL和MongoDB,还有不少地方用了Redis做缓存。每天上班就是跟着团队的节奏走,需求评审会、技术方案讨论、代码编写、单元测试、CodeReview,最后是部署上线。

我主要参与了电商平台的一个订单模块开发。7月10号接到需求,要做一个支持高并发下的订单创建功能。当时系统最忙的时候一天能处理4000多单,但新需求要支持峰值8000单。我负责的是订单表的设计和核心逻辑的实现。最初用MySQLInnoDB引擎,写了一个简单的SQL语句来插入订单数据,但压力测试发现插入延迟特别高,有时候得等一两秒。后来我查了资料,发现是主键自增ID导致的问题,每次插入都要去读最大的ID,卡在锁上。于是改用了分布式ID生成器,用Snowflake算法,自己写了个小服务去生成ID,部署到Kubernetes上,这样ID生成完全是异步的,延迟立马降到了几十毫秒。还用Redis做了事务消息,确保订单和库存的一致性,这是典型的分布式事务问题,用本地缓存加定时任务的方式兜底。整个模块8月5号开发完成,8月10号上线,上线后系统稳定运行,能支撑每天7500单的量,比之前能多处理将近一倍。

实习期间还遇到一个挑战是代码审查的时候,有老员工说我写的代码太硬编码了,比如直接在代码里写死优惠券的折扣金额,而不是从配置里读。我一开始觉得是小事,但后来明白这是大问题,影响后面维护和扩展。我就花了两天时间,把所有硬编码的地方都改成了配置化,用YAML文件管理这些参数,还写了单元测试覆盖这些配置变更的场景。老员工后来跟我说,这样确实方便多了,以后调整活动规则不用改代码。这让我意识到做软件不光要能跑,更要考虑可维护性。

在这个实习里,我对敏捷开发流程有了更深的理解,比如需求是怎么拆解成任务,任务又是怎么分配给开发人员,每个阶段怎么同步进度。还学了GitFlow这种分支管理策略,怎么用featurebranch开发,怎么写commitmessage,这些在学校都没怎么接触。团队里用Jenkins做持续集成,每次提交代码都会自动跑测试,如果失败了就不会合并到主分支,这个环节让我写代码的时候更小心了,生怕引入bug。

虽然整体挺顺利的,但也有点小问题。比如公司内部的文档系统不太好用,很多技术文档更新不及时,有时候得去问同事。还有就是培训机制有点欠缺,刚来的时候没给多少上手项目,都是靠自学团队分享的资料。我觉得如果能有更系统的入职培训,比如给个简单的项目练手,或者搞个技术分享会,效率可能会更高。我建议可以搞个内部Wiki,专门放项目的技术细节和踩坑经验,这样新来的实习生也能快速上手。

这次实习让我知道了自己哪些地方做得不错,比如能独立完成功能开发,还有解决问题的能力。但也看到了自己不足的地方,比如对分布式系统的理解还不够深,像缓存穿透、雪崩这些问题还没完全搞懂。以后肯定得多看这方面的资料,争取下次实习能接触到更复杂的项目。这段经历让我更坚定了做后端的决心,以后想往这个方向深耕。

三、总结与体会

这八周,从6月5号到8月12号,在软件开发工程师的岗位上,我感觉自己真正从学校走向了职场。这段经历就像给课堂上学到的知识画上了一个实际的注脚。我参与的那个订单模块开发,最终能支撑日处理7500单,比之前提升近一倍,这让我觉得付出的努力值了。写代码不再是简单的实现功能,而是要考虑性能、可维护性,还要知道怎么跟团队协作,怎么用工具提高效率。比如,学会用GitFlow管理分支,能显著减少合并冲突;掌握Jenkins自动化构建,让部署过程变得顺畅;理解分布式ID和事务消息的原理,才能在高并发场景下写出可靠的代码。这些都是在学校里很难完全体会到的。

这次实习让我明白,做软件工程不是一个人在战斗,而是需要整个团队紧密配合。比如有一次深夜调试接口,发现是另一个同事写的第三方服务出了问题,我们两个加起来花了三个小时一起定位,最后用消息队列解耦了系统,这个经历让我对“责任”这个词有了更深的理解。以前写代码是怕自己出错,现在要考虑整个系统的稳定,这种心态转变是最大的收获。

对我未来的职业规划来说,这次实习就是一扇窗。我看到了后端开发的实际工作状态,也发现了自己在分布式系统、数据库优化这些领域的短板。比如,当时做的订单系统虽然上线了,但我后来发现可以用分库分表做得更好,当时因为时间和经验限制没这么做。现在我知道了要补上这块知识,打算接下来系统学习MySQLCluster、Redis集群这些内容,甚至考虑考个AWS或阿里云的ACP认证,为以后能接手更复杂的项目做准备。实习让我更清楚自己想要成为什么样的人,也更明确努力的方向。

看着每天线上跑的订单数据,从4000单到7500单,我感觉自己确实成长了。互联网行业变化很快,技术更新迭代特别快,这次实习也让我意识到,学习不能停。公司用的很多实践,比如敏捷开发、CI/CD,这些都是行业主流的做法。未来不管去哪里工作,这些经验都能让我更快适应。而且,这次经历也让我更自信了,以后面试或者找工作时,能具体讲出自己在实习中遇到的挑战、怎么解决的,以及取得了什么量化成果,这比空说一堆理论要有说服力得多。总之,这段经历对我意义很大,我会把这里的收获好好消化,用在接下来的学习和工作中。

四、致谢

在这八周的实习期间,得到了很多帮助。感谢实习单位给我这个机会

温馨提示

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

评论

0/150

提交评论