二面
主要问了项目设计相关,面试官人很nice,一步步引导
1、首先介绍曾经做过的项目、模块设计、大致逻辑,忘了讲前后端框架,主要在讲整体的设计逻辑了。 面试官挑选了其中的某个模块,要求对逻辑进行介绍。再深入到模块里的某个功能的逻辑介绍,包括一些前后台交互是怎么做的。 再到接口的实际实现里包括的一些校验等等,还好之前做项目的时候,有差不多考虑过路径校验等等。不过现在看来当时设计的都很基础简单,其实现在回过头还可以加上文件是否存在的校验。
2、后面面试官就一些项目里没有的功能进行了假设,引导应该如何进行设计与实现。再深入对于其中可能需要的实时性、数据响应速度等需求进行设计。
3、再后面是面试官给出一种业务场景,引导进行实现设计,包括大量数据的计算处理、并发等,因为接触不多所以这里卡了。 后来面试官提出了MapReduce等等很多东西,面试就是可以快速了解很多接触的东西,快乐。
回头去学习了下相关MapReduce、Hadoop的内容,其实是分布式存储、分布式计算、集群等这些内容。然后突然反应过来其实以前是接触过相关的,当时项目的服务器设置为两台负载均衡处理请求的A、B服务器 + 一台大磁盘处理存储数据的C服务器。AB服务器可通过文件夹链接,获取到C服务器处理好的数据文件,现在想来其实就是在使用分布式计算和分布式存储的方案。 只是当时自己主要工作不在该项目,只参与了该项目数据处理的模块,没有整体意识到多台服务器之间的联系。不过参与也不是很多,要是想起来可能也只能说个大概,只是有这种可以多服务器合作分工的概念,还得继续学习,加油加油。
最后出了一道很简单的代码题 给出一个数字,计算其每位数字平方和得到新的数字,再计算新数字的每位数字平方和,循环往复,直到得到1,即为true;若出现循环,即不可能得到1,则返回false。 使用HashSet存放计算结果,若某次计算结果已存在Set中,则出现循环,返回false;否则,直到出现 1,即为true。
整体氛围很nice,每次面试都能学到新东西、考虑一些新的应用场景,学习使人快乐 因为是周五面试,最后面试官还祝周末愉快。超级开心,祝一切顺利 ( ?? ω ?? )y
|