备战25春招/26实习之面试官最喜欢聊的东西(对症下药篇)
但是呢,这类视频其实更多的是在说你这个现有的东西,如何的去强化包装现有的东西,比如说你做了一个谷粒商城,那么好,我就针对你的现有的项目去聊一下,看看我们能优化那些方向,比如说高性能、高并发、高可用、订单域、库存等等的设计性和非设计性相关的东西。这也是目前我看到的大多数视频总结的核心思想。这也是一个高效优化简历利器。
但是说,我们是不是还有一种方式去优化呢?其实这一点,实习过的人其实都是有点感触的。很多业务上其实你说在纯crud上比网上的那些黑马的项目差了什么吗?我认为不见得,站在写代码的角度,其实都是万变不离其宗的,但是为什么很多人去学习了网上免费的课程,学习了网上的项目,在面试的拷打面前,都站不住或者说不清楚呢?
那么我们应该站在什么角度去思考呢,以我工作了一年的经验角度总结了以下的三点,这也是实际工作中当中比较在意的事情。
第一点:如何在程序正在运行的过程中去迭代之前的需求
网上大多的项目都是说从零到一去构建,所以很少会有这种情况,且也没有用户去使用,那么也不存在这个问题,但是实际工作中的项目大多数都是持续迭代的,就可能后面来了一个需求,去扩展这个东西,那么我们应该去怎么考虑这件事情呢才能做到用户感知不到呢?基于这种思路,能持续扩展,比如说数据变多了,后续要迁移分库分表,怎么保证不让用户感知呢?这种东西结合现有的八股进行包装,是非常具有真实性的。因为现在的企业当中,存在着大量的这种类型问题,我们在背八股的时候,其实背了很多,那么都用不到,是不是类似于这种场景,能完美的结合你的八股呢?类似又能延伸到灰度切流,双写,同步等等问题。
第二点:为什么要这样设计这块业务,如何站在一个整体的角度聊这件事,如何讲好一个故事
在这里我举一个烂大街的项目吧,谷粒商城,够烂大街了吧,是2020年初 尚硅谷出的项目,长达100h左右,这个项目曾经是我秋招的主力项目,但是它存在什么问题呢,他做的很大,搞了一个商城嘛,基础版本应该是一个商城的首页 和 其配套的管理系统,进阶版是完善了商城的下单功能,还有一个运维篇是企业话部署,说起来挺高大上的,但是这种类似的项目,包括什么点评、什么类型项目呀都存在一个问题,就是忽略这个项目本来的核心点,倒是把一些次要的东西,重复的东西无限的放大,看似100h时间挺长,实际上真正有价值能说的没多少时间,有价值的是啥呢?我拿三高来讲,一般三高也就是高性能的读、高可用的写、高并发的扣减。商城里有没有高性能的读,一个大体量的商城肯定有这个问题,那么如果我们想去优化这个点,必然上缓存啦,通用方案嘛,但是缓存有一致性问题,那么就涉及到一个平衡了,具体哪块业务,能够承受多大的多久的不一致性?更有甚至结合上了本地缓存,那么好,什么场景,怎么结合? 高可用的写,就是下单嘛,你不能说不让我下单,怎么保证,高可用的写,把写 和 读分开呢?形成一套方案,或者去考虑为什么写不进去了?最后是高并发修改,本质上是针对共享资源的处理,场景嘛无非就是要么是让db抗,要么让在缓存。这是结合了技术角度去聊,然后呢,还有一个结合业务角度,拿订单域来说,订单域可以说是商城里面非常重要的东西啦,这里面会有各种各样的状态,还要结合各种各样的优惠,那么这种业务域的大体流程是啥?怎么解耦,其中简单说下,如果解耦出来了订单中台的话,和支付侧怎么联动,如果支付失败重试,是不是要推动支付侧幂等?这是一整个链路的问题,你需要对上下游都懂点,并且知道你负责的这部分的核心难点,性能瓶颈是啥?
3、故事的完整性
当第二点说完的时候,其实,就间接的引出了第三点,故事的完整性,这是面试官比较关注的,其实就你拿谷粒商城,或者什么点评或者12306来说,面试官根本不知道或者没做过这块业务,可能不知道细节,然后听你讲了半天发现,你大体说了一个我们都知道的流程,让你详细讲讲吧,发现你对于这个项目本身也没有说保证了它的完整性,那么就只能问一些很少的项目点,或者干脆不问啦,或者问面试官自己觉得比较核心的点,但是他也不懂这块,可能问的你说不出来,或者不切实际呢?
所以这里的完整性至关重要,此时,你需要先讲好一个故事,就拿谷粒商城来说,你可以不完整的搞出来,但是订单域以及简单的交互你是需要构建并且完善的,涉及到的库存管理你也是需要考虑的。针对不同的活动的优惠啥的你都需要设计进去,让其变成一个比较完整的项目,这样你去聊起来,说明你真的做了这个一个故事出来 ,当你能真的把故事说完整,我觉得八股结合起来就比较容易了。你自己理解起来也容易
因为八股说来说去很刁钻,其实就是 说当我们面临了什么样的事情的时候,对应怎么解决,而当你全流程有一定的认知,你站在技术、产品、用户的角度去做,那么都特别容易包装,且面试官也会很好奇 和 认同。
那么以上三点就是在实际工作当中比较重要的一些事项,这些事项的思考也是脱离了八股限制的,是你站在owner视角去思考的点。以上就是作为练习时长一年经验的土豆倪的观点啦,如果觉得还不错的话不妨一键三连支持一下,谢谢大家!!!