2021/11/10
线上面试,全程中文,一共分为三个环节:自我介绍,技术面,无领导小组讨论
技术面
1. c++面向对象的三个基本特征
封装、多态、继承
2. 数据库查询性能优化
分析查询速度慢的原因,提出解决方案:
-
查询出的数据量过大
可以采用多次查询,降低数据量
根据查询条件,建立索引,优化索引,优化访问方式,限制结果集的数据量
另外索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。
-
查询语句不好,没有优化
对查询进行优化,应尽可能避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
-
I/O吞吐量小,形成了瓶颈效应
把数据、日志、索引放到不同的I/O设备上,增加读取速度
-
其他:扩大服务器的内存,增加服务器CPU个数
3. 数据库规范化
4. 前端响应式设计
因为前面的同学已经讲了很多了,我就讲了一下小程序的rpx单位
首先简单说px是抽象的css单位,一个px在不同的设备下有不同的物理像素,是浏览器提供的统一的标准单位
在微信小程序官方文档中,自定义了一套 css 标准文件 .wxss,其中新增了一个单位 rpx ,可以根据屏幕宽度进行自适应。文档中定义:屏幕宽度为 750px
以iphone 6屏幕为例。i6屏幕宽度375px.小程序里宽度750rpx, 365px = 750rpx.比例是1 : 2
5. 你知道的设计模式
我讲了MVVM (Model View Viewmodel)
MVVM 在使用当中,利用双向绑定技术,使得 Model 变化时,ViewModel 会自动更新,而 ViewModel 变化时,View 也会自动变化
把Controller的数据和逻辑处理部分从中抽离出来,用一个专门的对象去管理,这个对象就是ViewModel,是Model和Controller之间的一座桥梁,在MVC下,Controller基本是无法测试的,里面混杂了个各种逻辑,而且分散在不同的地方。有了MVVM我们就可以测试里面的viewModel,来验证我们的处理结果对不对
小组讨论
我回答的是
首先分析困境,困境一难民拦路,难民即将饿死,不得不发放面包,困境二记者需要如实报道,既不能撒谎又不能损害公司形象
抓住主要矛盾,不是人道主义,而是危机公关的问题,危机公关有两种解决方法,一个是虚假公关,一个是转移注意点,换一套能够接受的说辞