缘由
为什么会想起来写这个那? 主要是由于面试之前在写自己简历的时候,发现自己对于以往做的项目并没有进行深入的了解,还是浮于表面。所以写一篇文章来总结教训。
开发注意
这里我想要提示大家的是,在日常的工作开发中,我们会经常扎根于自己的开发任务中无法自拔,只拘泥于完成项目的需求,但是忽略到了自己的广度,也就是从整个项目的视角来看待自己所做的模块,这个意义完全不同。而且就现在 面试官来说都是会问项目经历的,都是从项目整体来说的,常见的几个问题,就是你这个项目都用了什么技术啊,如何技术选型啊,mq是集群吗,部署了多少台机器啊等等。这就要求了我们在开发中必须要从项目的整体的角度来看待问题,而不是只是局限于一个小的模块,否则,你面试可能连项目的一些情况都不了解,面试官会觉得你没有深入项目当中。
项目经历
平常工作当中的时候,就可以进行自己的项目经历的梳理了,因为这其实不仅是让你对项目有更为深入的了解,同时也是为了面试准备的。
需要搞清楚的问题
- 为什么需要这个项目,面向的用户是什么,b端还是c端
- 用户量有多少,每日访问量有多少,qps和tps是多少(这些都是面试官喜欢问的)
- 技术选型,为什么最终选择了这个框架,而不是那个框架(项目不是从0到1的可以直接跳过了)
- 对自己使用过的组件进行深入了解,熟悉原理并且了解容易出现的问题以及他的解决方案,而不是浮于表面(这个需要花费大量的时间了,其实主要的也是这个)
- 如果公司有对什么做了封装,看看是如何封装的,用了什么设计模式
- 对于项目的技术选型的思考,是否有更好的组件使用,原因是什么
- 对于需求的思考,有没有因为自己的技术思考改变一些不切实际的需求的实现
- 多线程的应用情况和使用场景
- 锁的应用情况和使用场景
- 如果用了集群,要清楚这些集群是如何工作的
- 面试常问到的api也要熟悉它的应用场景,然后看看自己的这个项目有没有一些特殊的实现
- 如果自己有优化的,或者封装的,能够实际提升性能的部分,可以重点记录(面试官比较关注的,要用数据说话,比如慢sql,你从sql 查询10s优化到了1s,这样的就可以)
- 对于开发模式的思考,对于需求理解的思考
目标
在学习技术的时候,有一个提醒送给各位,就是一定要想清楚自己的目的,不知道只有我是这样还是大家都一样的,我在学习技术,或者说在阅读源码的时候,往往会看着看着忘记了自己的目的,开始和细节或者其他不相干的东西消耗时间,这样会导致自己学习一个技术的效率非常低下。
其实我们学习技术的目的很简单,就是解决问题,大部分情况下我们就是来调用已经成型的框架,也就是俗称的api调用师,但是一个api调用工程师也不是那么好当的,虽然不用自己来实现,但是也需要自己来熟悉api以及实现他们的原理,都是为了避免一些坑的,最终的目的都是为了更好的服务用户。
总结
以上的问题是需要在工作的时候,就要思考的并且要写下来的(为了之后面试编),不是说如果你进行crud的话,就没有思考的空间,而是说要提前培养好从整体思考的思维模式。