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

下载本文档

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

文档简介

计算机软件开发公司程序员实习报告一、摘要

2023年7月1日至2023年8月31日,我在一家计算机软件开发公司担任程序员实习生。期间,我主要参与电商平台后端模块开发,完成3个核心功能模块的编码与测试,累计编写代码1200行,修复Bug数量35个,其中高优先级Bug12个。熟练运用Java语言和SpringBoot框架,通过单元测试将接口稳定性提升至99.5%。在团队协作中,采用敏捷开发流程,将任务平均完成周期缩短5%。提炼出模块化设计思路与自动化测试脚本编写方法,可显著提高开发效率与代码质量。

二、实习内容及过程

1.实习目的

去7月1号开始实习,本来想多见识见识实际项目开发流程,看看自己学的那些东西到底用在哪儿。也不是完全没目的,就是想看看自己写的代码能不能跑起来,能不能帮上点忙。

2.实习单位简介

那家公司做电商后端开发挺多的,技术栈用Java和Go语言为主,我们组主要就是维护和开发一个老平台的订单系统。

3.实习内容与过程

前两周主要是熟悉环境,看项目文档,跟着师傅做需求分析。师傅给我分配了个任务,就是做一个订单退款功能的模块。这个模块得跟支付系统、库存系统对接,挺复杂的。我就开始琢磨数据库设计,用到了外键约束和事务隔离级别,避免超卖问题。写代码的时候踩了不少坑,比如并发下订单数据不一致,后来用到了乐观锁来解决。测试的时候发现一个隐藏Bug,是某个特定条件下库存扣减会失败,花了两天时间才定位到是缓存未同步的问题。

后期参与了另一个需求,给商品推荐系统加一个实时更新模块。这个用的是Redis缓存,因为数据量太大了,直接查数据库太慢。我负责写数据同步脚本,每天凌晨跑一次定时任务,把热销商品信息更新到Redis里。为了提高效率,用到了多线程处理,最后把同步时间从2小时缩短到30分钟。

4.实习成果与收获

8周里完成了退款模块开发,提交了50多个代码commit,通过了所有测试用例。修复了3个线上Bug,其中一个算是重要问题,避免了可能产生的资金损失。最大的收获是学会了Git的分支管理策略,以前都是随便分个分支,现在知道得按规范来,比如用featurex开头的分支。还接触到了Docker容器化部署,虽然没实际操作,但看了不少文档,感觉挺有用的。

5.问题与建议

有个挑战是团队的开发流程,有时候需求变更太频繁,导致我写的代码得反复修改。另外,培训方面感觉有点不足,给的新文档不全,很多细节要靠师傅口头讲,要是能多些标准化培训材料就好了。

我建议公司可以搞个新人专属的代码库,把一些基础模块和常用工具放进去,这样新人上手快点。还有,需求变更得有个评估机制,不能说改就改,不然开发效率会受影响。

三、总结与体会

1.实习价值闭环

这8周实习就像把书上的理论扔进现实锅里炒了一遍。7月1号刚来的时候,连Git的rebase都用不太熟练,现在提交的50多个commit记录就是最好的证明。从最初写个简单功能要对着IDE提示卡半天,到后来能独立完成订单退款模块,还解决了线上遗留的缓存同步问题,感觉收获挺实在的。那些熬过的夜,对着日志查Bug的瞬间,现在回想起来还挺有价值的。比如那个乐观锁的应用,课本上只提了一句话,实际开发中才知道它真能解决并发冲突,这就是实践的魅力。

数据最能说明问题,我负责的退款接口从测试阶段0.5次/分钟的TPS,提升到上线后的2次/分钟,虽然不算特别高,但那是我们手动处理的3倍。修复的3个Bug里,有一个是支付超时重试机制没写对,如果没发现可能导致用户退款失败,这就是细节决定成败的例子。

2.职业规划联结

这次经历让我更清楚自己想做什么。以前觉得后端开发就是写写SQL、拼拼代码,现在明白要做好一个模块,得考虑数据库索引、缓存策略、甚至要懂一点消息队列。我发现自己对分布式系统挺感兴趣,实习中接触到的Redis集群部署让我挺兴奋。接下来打算补补Kafka和Elasticsearch的知识,看看能不能考个AWS或者阿里云的认证,至少有个敲门砖。师傅跟我说过,现在公司招人很喜欢看有没有云原生相关的经验,虽然我实习没接触到,但至少知道方向了。

对比学校项目,真实开发完全不一样。比如需求评审会,老板直接说功能要满足用户体验、要考虑成本,这种商业思维以前根本没想过。这让我意识到,做技术不能只埋头写代码,还得抬头看路。

3.行业趋势展望

感觉现在后端开发越来越要懂分布式了,我们组用的SpringCloudAlibaba全家桶,微服务拆分、服务发现、熔断这些概念用得挺多。但技术更新太快,有时候师傅也会抱怨某个组件太老了,得学新的。比如最近在调研的Serverless架构,虽然公司没实际用,但感觉未来肯定是大趋势。这让我明白,学校教的只是基础,真正的学习还得在工作中不断迭代。

行业里感觉Java和Go的竞争挺激烈的,虽然我实习主要用Java,但看到Go那边性能确实好,尤其是在高并发场景。可能以后要考虑会不会转语言,或者两种都学。

4.心态转变

最明显的改变是抗压能力。以前做实验,稍微卡一下就心态爆炸,现在遇到Bug能冷静分析,知道先查日志、看日志、再逐步缩小范围。师傅教我debug技巧时说"先假设后验证",现在写代码会先猜可能出问题的地方,再写测试用例去打。这种从被动解决问题到主动预防的心态转变挺重要的。

还学会了承担责任,比如那个缓存同步问题,虽然不是我的代码直接导致,但看到线上告警时还是主动去查了。虽然最后解决了,但确实体会到,做开发得对每一个commit负责。

5.未来行动

下学期打算把实习里用到的SpringBoot源码读一遍,至少知道那些注解是干嘛的。另外要开始准备秋招,师傅给我的建议是先把Java基础打牢,多刷算法题,尤其是LeetCode上面的中等难度题。他还说面试时可能会问到分布式事务的解决方案,所以打算去补补2PC和TCC的知识。虽然现在觉得挺难,但至少得有个了解。

四、致谢

1.

感谢

温馨提示

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

评论

0/150

提交评论