快手实习---如何快速入手
首先友友们看到我上面两个帖子可能会觉得实习压力好大,其实不一定是这样。
我个人情况:我是一个纯八股选手,虽然敲过几行代码,但也仅限于增删改查。所以对于我来说感觉压力会大点。
接下来我将总结一下我过往的经验,(我是Java后端开发),帮助友友们在入职前做好准备。
1、实习过和没实习过的计算机选手一个很大的区别就是,对于开发工具的使用熟练度。
所以:你要熟练使用IDEA的快捷键(如何快速定位某个类所在位置?如何清理无用包?如何批量注释?...还有很多)、知道Mac的基本使用、使用过Linux的常用命令(如何进入某个目录?如何打开一个文件?如何找所需内容的日志?)、使用过git的基本命令(如何提交?如何拉取?如何切换分支?)、了解开发的基本流程(开发->测试->集成->上线)
上面列举的这些只是非常基本的,这会减轻你实习第一周在一个陌生环境的不适感。
在之后,你要在工作之余,拓展这方面的使用,以备不时之需。(在你实习两个月之后,同事们对你的包容度会降低,如果再问同事们这些问题,兴许会影响他们对你水平的印象)
2、除了工具之外,关于MySQL、Redis的八股大家想必已经很熟练了,在用到的时候也会没那么慌。
而在实习中还会频繁用到消息队列(在快手中是RocketMQ和kafka,RocketMQ在新代码用得多,老代码会用kafka),有些需求会用到ES。
所以:在中间件或数据库上,除了对他们的原理有部分理解之外,提高RocketMQ、kafka、ES的使用熟练度(如何发、收一个消息,如何查询ES里的某些数据),会帮助你在开发需求上没那么紧张、焦虑、害怕。
3、最后一点是,关于公司基建的使用
3.1、首先是微服务,一般大公司里的都是微服务。
所以:你要了解服务治理的相关概念、知道IDEA里一个微服务工程的正确架构是什么样的。(这里的正确架构指的不是说看到左侧的包有主次分明,而是要找到【项目结构】,去查看里面的父工程和子工程是否有被正确标识为source/test/exclude/resource等)
这有助于在你开发需求完毕之后,帮助排查奇幻的工程跑不起来的问题,知道怎么在线调试(可以通过公司服务治理的基建)。
微服务架构的通信一般使用的是RPC。
所以:你要知道如何使用RPC?如何写一个RPC接口?如何构造RPC出参入参数据方便单测?如何编译打包?如何利用公司基建将RPC包装成HTTP?(有的公司可能有对应的API平台进行包装)
3.2、知道如何部署到容器,如何在容器上找日志来分析问题
所以:你要知道公司基建容器在哪里?怎么找到这个工程部署所在的容器?怎么进入容器的控制台?
进入到容器控制台之后,你要如何找这个日志所在的目录?如何进入这个日志?如何grep一些内容?(这里就牵涉到了之前提到的Linux命令)
3.3、线上问题和监控/看板
这里我基本上没接触过,ONCALL也没当过,等待后续友友来补充。
#那些我实习了才知道的事#