如何从项目中摘出亮点
面试中,最难的题目之一就是“请谈一谈你的项目中存在哪些亮点了”,我们或多或少,或深或浅的都参与过一些项目,但是很多时候只是做了一些拧螺丝的工作,没有太大的含金量,如果不带着思考的态度去审视项目的话,非常容易在面试时被这样的问题卡壳,感觉好像也就变着花活的做了一些CRUD工作,不知道亮点在哪,这篇小博客就是记录下目前自己看到的,比较好的抓项目亮点的思路方向,分享在这里给大家共勉。
做项目这件事类似于看书。想要效果好首先要是一本好书,但项目的质量很多时候不由我们决定,这里也就不去讨论。我们只要做好自己能做到的事即可,那么用眼睛看和翻页这两个动作大家都会,怎么样才能比别人看的效果更好呢?老师一定教过,那就是要带着思考去看书,做项目也是一样,要带着思考和问题去抓住项目中可能存在的亮点。
这些亮点的具体技术实现可能不是你所想出来的,只是借鉴了某些经典的解决方案。但万事开头难,借鉴解决方案是成长的第一步,要相信高级软件工程师也是一个案例一个案例积累下来才有了后面迅捷的思路。关键就是要思考这些解决方案,针对其中不了解的地方去学习,理解各个解决方案的成因,优劣势,以及面向的细节区别。
- 项目宏观层面
- 项目各个部分的技术选型,设计思路
- 项目各个业务的架构图,部署图
- 项目是否存在复杂业务,实现与细节
- 项目具体业务层面
- 业务实现用到了哪些设计模式,以及为什么要采用这些设计模式
- 如何提升吞吐量
- 数据库单库单表数据量大时,如何拆分?从水平和垂直两个方向考虑
- 不停机条件下,如何升级并上线
- 缓存一致性,如何保证
- 接口响应超时,如何处理
- 跨服务的分布式事务,如何处理
- 如何保证具体业务下的接口幂等性
- 如何做到流量的削峰填谷
- 分布式定时任务实现方案
- 线上遇到的具体问题,也可记录下来