面试项目阐述

  1. 业务逻辑面试,也就是讲项目,面试官会对你简历上写的若干个项目其中之一拿出来和你聊聊。在期间,会针对你所做的东西进行深度挖掘,
  2. 包括:为什么要这么做?优缺点分析,假如重新让你做一次,你打算怎么做?等等。
  3. 这个环节主要考察我们对自己做过的项目(实习项目或者校内项目)是否有一个清晰的认识。
  4. 关于业务逻辑面试的准备,建议在平时多多思考总结,对项目的数据来源、整体运行框架都应该熟悉掌握。比如说你在某公司实习过程中,就可以进行总结,而不必等到快离职的时候慌慌张张的去总结该项目。

极其优秀 https://www.cnblogs.com/JavaArchitect/p/10011253.html

   我们知道,如果单纯使用SSM框架,大多数项目都会有痛点。比如数据库性能差,或者业务模块比较复杂,并发量比较高,用Spring MVC里的Controller无法满足跳转的需求。所以我一般还会主动问:你除了依照现有框架写业务代码时,还做了哪些改动?

     我听到的回答有:

  • 增加了Redis缓存,以避免频繁调用一些不变的数据。
  • 或者,在MyBitas的xml里,select语句where条件有isnull,即这个值有就增加一个where条件,对此,会对任何一个where增加一个不带isnull的查询条件,以免该语句当传入参数都是null时,做全表扫描。
  • 或者,干脆说,后端异步返回的数据量很大,时间很长,我在项目里就调大了异步返回的最大时间,或者对返回信息做了压缩处理,以增加网络传输性能。

    对于这个问题,我不在乎听到什么回答,我只关心回答符不符逻辑。一般只要答对,我就会给出“在框架层面有自己的体会,有一定的了解”,否则,我就只会给出“只能在项目经理带领下编写框架代码,对框架本身了解不多”。

    其实,在准备面试时,归纳框架里的要点并不难,我就不信所有人在做项目时一点积累也没,只要你说出来,可以说,这方面你就碾压了将近7成的竞争者。 

此外,在描述项目里框架技术时,最好你再带些分布式的技术。

1 反向代理方面,nginx的基本配置,比如如何通过lua语言设置规则,如何设置session粘滞。如果可以,再看些nginx的底层,比如协议,集群设置,失效转移等。

    2 远程调用dubbo方面,可以看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化方式。

    3 消息队列方面,可以看下kafka或任意一种组件的使用方式,简单点可以看下配置,工作组的设置,再深入点,可以看下Kafka集群,持久化的方式,以及发送消息是用长连接还是短拦截。

    以上仅仅是用3个组件举例,大家还可以看下Redis缓存,日志框架,MyCAT分库分表等。准备的方式有两大类,第一是要会说怎么用,这比较简单,能通过配置文件搭建成一个功能模块即可,第二是可以适当读些底层代码,以此了解下协议,集群和失效转移之类的高级知识点。 

    如果能在面试中侃侃而谈分布式组件的底层,那么得到的评价就会比较好了,比如“深入了解框架底层”,或“框架经验丰富”,这样就算去面试架构师也行了,更何况是高级开发。

   1 SQL高级方面,比如group by, having,左连接,子查询(带in),行转列等高级用法。

    2 建表方面,你可以考虑下,你项目是用三范式还是反范式,理由是什么?

    3 尤其是优化,你可以准备下如何通过执行计划查看SQL语句改进点的方式,或者其它能改善SQL性能的方式(比如建索引等)。

    4 如果你感觉有能力,还可以准备些MySQL集群,MyCAT分库分表的技能。比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置方式。同样,如果可以,也看些相关的底层代码。

我简历上的Java项目都好low,怎么办?

https://juejin.im/post/5cce8ea46fb9a03240190a92

Bigo的Java面试,我挂在了第三轮技术面上.........

https://juejin.im/post/5dbec83af265da4d2f31d73e#heading-1

作为面试官,我是怎么快速判断程序员能力的?

https://www.infoq.cn/article/how-to-judge-coding-ability

发布了54 篇原创文章 · 获赞 2 · 访问量 433

猜你喜欢

转载自blog.csdn.net/zy19960902/article/details/103638383