说起实习
先附上一张图,还有一些是额外的,就没添加进去了
开始阶段
说起实习,感慨有很多很多,我从大一就开始关注一些外面的工作岗位的要求(大一还过来深圳踩点了哈哈)。
大一时,一边在学校上课,一边往自己的兴趣去学习,相对于学校教的课程,其实教的杂,教的广,教的浅。
当选定Java方向之后,就一直往这方面去走,跟着自己的兴趣去学,从Java基础,Javaweb,Spring,SpringMvc,MyBatis,MyBatis Plus,JPA,SpringBoot,SpringCloud,MySQL,前端HTML,Css,Js,JQuery,Vue,Element UI
…..等等。其实也悄悄是跟着黑马程序员的Java方向走,哈哈,有需要的小伙伴,可以在我的公众号,回复“黑马”就可以了
准备面试
而今年因为疫情的影响,就开始筹备面试了,也是准备了两个月,刷题,面经…。之后就开始投简历了,这里有一点,很多时候,投出去的简历都石沉大海了,但是我们也不要气馁,对吧。所以得静下心来,慢慢找。所以找工作真的不容易。这一次有这样一次实习的机会,我非常的珍惜!
上班
当面试通过之后,和HR达成协议之后,我就提前来深圳了,先是租房,其实来深圳也不容易,租房确实贵,吃的也不便宜,租房好了,就开始自己的上班之旅了。但还是很开心。不过后面租的这个房子也有些问题,还好只是短租,不过明年毕业租房就不会租这种房子了,也算是提前涨了一点经验。
实习的体会
短短的两个月实习,我成长了很多
以前写的代码没有规范,包括代码的命名方式,
考虑事情的思维方式,可能对于学生的我感觉解决的办法就一个,感觉这样实施了,那肯定是没问题,结果问题多多,哈哈。但是在工作了7,8年的同事大佬来说,解决问题的办法有好多种。
以前在学校接触的东西(技术),没有涉及的太深入,还存在我对有的技术是存在误解的
说实话,虽然我的编程能力没有突飞猛进过
转折点就是这次实习了,ATOM是我实习的第一家企业,在公司的这两个月里,我认识了很多前辈,也结交了很多非常优秀的同一辈人,本科985,现在还是研究生..感觉自愧不如啊。如今,我就快要回学校去度过我人生中最后一段校园时光了,想着在这里记录下来,作为对自己实习经验的一个小总结,也希望能对大家有所帮助哦。
两个月学了啥
1. PowerMock
PowerMock是一个单元测试模拟的框架,用于解决测试问题。
举个例子,你在使用Junit
进行单元测试时,并不想让测试数据进入数据库,怎么办?这个时候就可以使用PowerMock
,拦截数据库操作,并模拟返回参数。
2. Postman
Postman 是一个 Chrome 扩展,提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。
因为公司的项目是前后端分离项目,后端拿到的数据返回json数据给前端解析。但是我的项目没有前端页面啊,怎么办呢,这时候Postman就出场了
3. Kafka消息队列
什么是Kafka?
在流式计算中,
Kafka
一般用来缓存数据,Storm
通过消费Kafka的数据进行计算。
Apache Kafka
是一个开源消息系统,由Scala
写成。是由Apache软件基金会开发的一个开源消息系统项目。Kafka
最初是由LinkedIn
公司开发,并于2011年初开源。2012年10月从Apache Incubator
毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。Kafka是一个分布式消息队列。
Kafka
对消息保存时根据Topic
进行归类,发送消息者称为Producer
,消息接受者称为Consumer
,此外kafka
集群有多个kafka
实例组成,每个实例(server
)称为broker
。无论是
kafka
集群,还是consumer
都依赖于zookeeper
集群保存一些meta信息,来保证系统可用性。这个已经记录在我的
GitHub
:https://github.com/nateshao/Queue/blob/master/Kafka%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0.md
4. 性能测试
性能测试这个也就那样吧,主要是测试项目的性能的情况,做出分析,如何解决
5. 序列化与反序列化(Msgpack)
定义:Java序列化就是指把Java对象转换为字节序列的过程
Java反序列化就是指把字节序列恢复为
Java
对象的过程。
Msgpack
这个我就在写读写一致,然后测试的时候就使用过。
详细的话,可以看这篇文章:https://blog.csdn.net/tree_ifconfig/article/details/82766587
6. GenerateAllSette
这个东西主要是一个插件,为什么说这个好用,主要是一个类有很多字段,当你开发时,不可能一个一个字段去写,会耗费大量时间,还有出现错误。
GenerateAllSette
减少了很多麻烦,Alt + Enter ,然后修改就完事了
7. honest-profiler火焰图
火焰图也是工作上常用的Java性能分析软件
详情可以看我这篇。
8. jmh基准测试
jmh
这个也是leader要求掌握的,不过我只是做了简单的Demo试了一下效果,后面我就没负责这一块了
简单入门,可以看一下这篇文章https://www.jianshu.com/p/0da2988b9846
9. jvisualvm
jvisualvm
是jdk自带的分析工具。可分析JDK1.6及其以上版本的JVM运行时的JVM参数、系统参数、堆栈、CPU使用等信息。可分析本地应用及远程应用。
这个挺方便的,而且功能也很强大,这个当时也测了,忘记记录文档了,下不为例。
不过,使用的话可以看一下这篇文章:https://www.cnblogs.com/kongzhongqijing/articles/3625340.html
10. 测试用例
测试用例(
Test Case
)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档
这个没得说,整个实习阶段,基本上都是在写整个,测试逻辑和覆盖率,之后就进行性能分析,性能测试。
11. Git Flow
这个是对git
使用的一套规范,相似于restful风格
这个了解一下就好https://www.jianshu.com/p/41910dc6ef29
12. RestFul风格
RestFul
风格一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
可以看一下我写的这篇
总结
- 不过总体上工作还是非常满意的,主要是工作的气氛非常好,leader也很nice。
- 大多数时间也不是特别忙,没有传说中的996/997,把每一天的任务做到最好就可以了。
- 刚开始就想把代码理解透还是挺有难度的,因为这个要设计到业务逻辑。所以业务逻辑得会。
- 两个月呆的时间特别棒,还有一点就是,月半了。
- 深圳这边,没得说,吃的住的都不便宜。
- 大多时候是闲的:很多时候接到的任务都是基于原有的基础上添加一些功能,改
Bug
之类的,也做过小的模块开发。总体来看:技术难度不大,主要是对业务的理解。