最近和一些小伙伴聊的时候,发现很多人即使工作很久了,也没有勇气show简历,因为感觉没有亮点。
根据自己的一些学习情况和自己的经历,总结了几个貌似值得打造成亮点的地方,供参考:
1.将对接第三方、文件导出成Excel,pdf等功能整理成一个抽象模块。大部分人都干过对接第三方服务的工作,即使接入腾讯云、阿里云等工作也算。想一下,如果你接入一个,只能根据人家的要求来一步步接入,如果接入两家、三家甚至更多的时候呢?这时候就需要一些设计在里面了。例如可以使用适配器模式来将不同厂家的不同接口统一起来,可以使用模板模式来让自己的业务按照固定的方式来调用这些服务等。即使没这么做,那也应该利用学到的技术来分析一下你的项目中哪些可以这么调整,怎么调整。面试的时候就容易进一步聊到单例模式、代理等模式。这些介绍出来就证明你懂模式、懂设计、有思想。
绝大部分人都有过这种工作经历,从模式的角度来阐明比干巴巴的介绍你怎么做的就要好很多。除了接入第三方,文件导出也是类似,在很多系统中,特别是后台类的系统都需要文件导出的功能,例如导出为pdf、excel等。这些功能最好统一到一个服务或者模块里。业务只要传参数、数据等信息就可以自动生成相应的文件。我经历的公司都有这样的独立服务。你可以考虑一下如何根据业务将文件导出抽象出来,这里同样会涉及到代理、工厂、模板等多种模式的使用,而且能够很好体现你的设计能力。
如果上面的都没有,那就从过往的项目中提炼一下,看看哪些能这么做。这样比堆砌的项目和技术要好很多。如果有十个八个项目,但是毫无亮点,那还不如不写。
2.优化一个复杂查询。在子贡老师的课里提到一个人的简历写自己的一项工作是将一个服务的响应时间从6s降低到200ms。我曾经也有过类似的工作,而且就凭这个问题为主线搞定技术面试.在你的项目中一定会有一个特别复杂的查询,这里6s对于大部分接口来说都已经超时了,研究如何优化它也是个不错的亮点。
首先,一定是先优化业务的,很多业务代码会有大量外部访问,业务代码调一次mysql请求就会花费大量的时间,所以这里就可以结合模式和设计的思路将其优化一波。这个可以和面试官说的。
其次,数据库优化,所谓数据库的优化其实是优化自己的垃圾代码,能够正确的使用索引是最关键的,所以一定要检查整个链路中db访问的索引使用情况的。这就可以与面试官聊索引原理,事务实现原理等问题了。另外网络访问等也可以考虑。
第三,尽可能使用缓存,减少数据库和网络查询等耗时最好的方式就是使用缓存。很多情况下本地缓存就够了,复杂一些的可以使用redis缓存等,这就可以和面试官聊redis、聊读写一致性等等问题了。
第四,对于短视频等,执行就是慢的场景,最好的方式是异步化,将复杂的逻辑交给独立的服务或者执行器来做,完成之后再返回结果。那这里就少不了线程的设计,例如锁,线程池,JUC等等。线程能聊的就多了,这些都有很多相关的内容可以学习。
我感觉上面两个是比较好操作的,很实际,不装逼,还能将面试引导到基础技术上。基础扎实的求职者一般不会被排斥。
如果你觉得上面提到的技术也不清楚,那该好好学学再去面试了。
如果你感觉我写的对你有启发,请粉我一个,我距离csdn的博客专家,其他条件都满足,就粉丝数不够了^_^,点个关注就行