一、概述
前端时间面试了不少3-5年开发人员,也有些五年以上的开发。发现一个普遍的共同点就是对自己的业务模块熟悉,能够讲解出业务逻辑并现有框架的基础上,照着别人写的流程,扩展出新的功能模块。其实我们每个人都这样过来的,但在面试时,如果你仅仅表现出这样的能力,就和大多数人的水平差不多了,在这点就没法体现出你的优势了。
二、经验总结详情
2.1、框架是重点,理解整个系统体系架构。
通常在面试的时候在给面试官讲解系统整体业务后(长话短说),比如你是做微服务项目,要知道各个服务的作用以及各个服务之间如何调用?更深刻理解,知道各个服务的拆分方法。拆分服务是逐步迭代的,根据开发团队的配备人员和系统的体量来进行。比如根据我这边目前项目,后端就一个服务admin,但是体量很大了可以将后端拆分为多个服务。服务与服务之间的调用通常使用feign来处理。按照这样的思路来进行框架结构的梳理。
2.2、从写业务代码中进行总结提炼,展现出自己的个人优势
现在比较流行使用SSM框架进行开发,但是除了基本的业务功能开发完成,我们仍然需要进行更深一步的思考。比如数据库性能差,或者业务模块比较复杂,并发量比较高,如何提高系统系能。解决高并发方案可以是增加了 Redis 缓存,以避免频繁调用一些不变的数据。进行异步处理等。解决数据库性能差可以在 MyBatis 的 XML 里,Select 语句 Where 条件有 Isnull,即这个值有就增加一个 Where 条件。 对此,会对任何一个 Where 增加一个不带 Isnull 的查询条件,以免该语句当传入参数都是 Null 时,做全表扫描。这些都是比直接说写业务代码更能让面试官信服。
此外还需要对开发业务代码中的关键细节如何避免空指针异常,如何保证代码的拓展性和可维护性进行思考总结。
2.3、线上排查和解决问题的能力
线上问题我的总结就是两个字“消”和“防”。消就是先消除问题再防止同样的问题再次发生。假设是线上某段代码的空指针异常导致的,再解决修复后,我们应该总结以后是否考虑加强Code Review,或者使用findbugs插件去自动扫描代码中可能的异常。
防还有一层意思是如何防止线上重大问题发生,实现要有预料。比如防服务假死,线上防攻击等一系列重要问题。
最后,建议平时可以将工作中的技术点总结出来,不仅提高自己的总结能力,还可以备面试所用,一举两得。此外不要害怕面试,通过面试才能发现不足,才能知道未来在技术道路上还需要在哪些方面进行提高。
加油,erveryone! 期待和每一个优秀的你一起共事!
网友评论