入职半个月来做了哪些事
leader分配给我的任务包括知识目录模块的功能接口,测试环境下数据库中几张表的字段维护(由于有几个字段是迭代过程中新加的都是空所以要维护)的接口,这些所有的任务再前几天已经完成了(国庆前leader们都请假了,好几天没事干带薪摸鱼)。
这半个月的实习学到了什么
1.首先的话,对整个开发流程有了一定的了解,后端根据需求文档开发好后(对某个需求不是很理解的话可以去和产品对接),先在本地自测没问题后,将本地代码推到远端个人分支上(企业里用的是gitlab),然后发起一个将远端个人分支合并到公共分支的一个merge请求,leader审批通过后你再发一个将公共分支merge到test分支的请求,leader审批完后,等CI/CD完后,就可以提测代码了。然后就是与前端对接(我对接的前端也是一个实习生,已经拿了美团的秋招offer了还在这待),前端也开发好后并测试接口,如果发现bug后可以在一个运维平台中的查看腾讯云终端日志,里面就有报错的详细信息根据这个改bug,之后就是等一起提测后测试人员测试。
2.其次git操作也熟悉了不少,一些冲突也能自己在本地解决。
3.查bug改bug的能力也提升了。
4.还有就是一些开发规范,比如像BeanUtils.copyProperties尽量别用,开发多用stream流,还有就是注释要写,入参尽量简单、适用、易扩展,查数据库时一些没用的字段尽量少查。
5.公司的代码是四层架构,service层拆成了facade层和manager层,manager负责的是单一的职责,facade则是来组合这些manager来实现复杂逻辑。
6.公司很多东西工具类都是封装好的为了简化开发。
7.我觉得很重要的一点就是写代码前一定要想好每一步的思路写在纸上或idea中,后面写代码就会非常快。
碰到了什么问题怎么解决的
在开发知识目录树同层级下知识点或知识目录的拖拽接口时(第一次做,之前自学的时候也没做过),想的比较复杂,入参也比较复杂,因为整个目录知识点树里面有很多个字段要维护,拖拽改变顺序后这些字段要改变,反正就是我想的逻辑比较复杂,我就和leader说了一下我的思路,leader就过来给我从头到尾分析了一下,说我们的入参一定要简单适用易扩展,说我写的入参过于复杂,然后说到要借助前端的力量,前端将拖拽完后那一刻的id列表传给我,我就好根据这个操作,可以省去很多逻辑判断,醍醐灌顶只能说。
在发合并请求时,leader说有冲突,让我本地解决一下,我就战战兢兢的每一步都很慢(因为之前有一次不小心把代码回滚了,一上午的代码白写了),然后发现不会,merge失败了(英文看不懂,之前改成中文idea被leader说了,叫我改回来别用中文,哈哈哈哈),就问leader,他过来帮我看,说是们没有更新到最新,之后就可以merge了,就会发现有冲突就解决,把冲突点一些要的代码都留下来。
希望后面让我碰碰redis、mongo、消息中间件这些。