我的第一篇博客
作为一名跨考生,深知计算机带来的焦虑和迷茫,在本次实习中经过前辈的指引,博客可以给自己带来很多好处,正好我自实习以来也有记录的习惯,现已经快实习三个月,方向是后端开发,在这记录一些自己的迷茫与成长,希望也能给同样迷茫的各位一点参考建议,当然,也希望大佬们能够指引一下迷茫的我。
个人背景
bg中下211本硕,本科学的是信管,和计算机沾边,但是类似的小组作业都是和室友组队完成了,只负责了文档编写等相关部分,连hello world都没写过,一战考的是管科,二战临时决定跨考计算机(八月份才开始学408),最终22408以350+考上本校。因此,我认为我的经历可以给大家一些参考性。下面简单记录一下实习第一周干的事。
WEEK1
DAY1
完成了环境的配置(常见软件如idea,jdk,git,apifox,datagrip等),初步使用RocketMQ消息队列的使用,并了解了mavlink控制无人机的常用功能函数。
DAY2
掌握了git的初始化,版本提交,回退等操作,从gitlab中拉取了项目代码,目前任务是完成数据库的建表与接口的设计,目标是快速熟悉数据库的操作,并了解需求文档,对接口进行设计。 使用DBeaver进行MySQL操作,熟悉了软件的基本使用,并设计了目前可行的数据库表 已拉取项目代码并实现了依赖,下个目标设计初步的开发文档,并实现各个接口的功能。已学习到dto,po,qo的使用场景,以及update_time的重要性。
DAY3
今日已完成节点管理开发文档的编写,并建立了数据库的节点表,同时参照已开发的代码,基本完成了节点管理中的新建节点开发 但对mapper层中的sql代码编写还不完全,明日争取完成新的接口的开发,并完善sql代码。
DAY4
今日完成了insertNode接口的开发,基本完成了所需的功能,并编写了测试文档。 今天学会了sql语句的基本编写,学会了如何对接口进行单元测试,并通过了测试。 但代码仍存在一些问题: ①controller层中一般可分为 参数校验:校验前端传来的数据是否合法(这个要注意) 业务处理 对接转换(即返回前端需要的参数) ②对于自增的id,只需要用Long或者Integer类型的整形来定义,无需给其赋值,默认没给就是null ③创建节点时,createTime和updateTime是同一个时间,最好用参数接收后再进行赋值(保证一致) ④对于固定的数字或者英文进行赋值的时候,可以创建一个静态变量,看起来更规范 ⑤进行开发的时候要考虑并发的情况,并合理使用事务 ⑥还有一些细枝末节的小问题需要多多注意 预期明天完成新的接口开发,同时增加对sql代码的熟练度,多掌握sql常用的语句。
DAY5
今日完成了节点管理的增删改查的开发,还剩下列表,根据条件查询等接口未开发,下周目标完成全部接口的开发,并完成单元测试的编写。存在对mybatis的语法不熟悉的情况,浪费较多时间,后续应当花时间学习插件及各种语法,争取快速上手,减少时间。
虽然基本上的开发已经有了思路,但是对高并发等各种情况了解均不足,思考过于片面,后续应该增加自己的思考,将问题考虑得全面一点,同时学会更多常规的技术(如消息队列,线程池等的使用)。
结尾
后续我在实习空闲期间,我会按照日志形式大概记录自己实习中完成的工作与遇到的问题,同时我会把一些实习学到的东西也记录到这里,例如我在进行健康管理开发时,使用到了groovy脚本与guava缓存,以及数据库的设计遇到的问题,编码规范等。目前我们团队的成员分别有字节、阿里、美团网易等过来的大佬,他们教我的东西我也会整理一下记录到这里。希望对大家有用,也希望能互相学习指点学到东西。