金山WPS服务端开发工程师面试经历
一面
- 写自己知道的Linux命令;
- 你对数据库进行查询,发现查询很慢,对代码排查,代码没问题,你怎么对数据库进行排查;(聊了索引)
- 给你一个数据库,数据库里面数据很大(TB级),你怎么解决查询慢(性能优化)的问题;(分区技术)
- 分区的类型;
- 加密算法(md5、base64等等)
- 你用的是多进程还是多线程;(多进程和多线程的区别)
- socket编程,怎么实现一个多人聊天室;(怎么设计、怎么实现)
- http和https区别;(https = http + ssl)
- 查找算法(顺序查找、二分查找、二叉排序树、平衡二叉树、哈希法等等)
二面
- 自我介绍(个人擅长的领域、个人突出的地方)
- (笔试里面的一道题)数据库里有10000000条用户信息,需要给每位用户发送信息(必须发送成功),要求节省内存(主键索引、分区技术、异步处理)
- HTTP请求方法(GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE)
- GET与POST请求区别(根据笔试题的回答提问),POST请求运用,GET幂等的理解,GET请求URL显示,GET请求URL中为什么有“?”(例如:https://www.nowcoder.com/discuss/post?type=2),访问“http://www.docer.com/?from=nav _wps”后怎么显示,也就是空格的显示(出现“http://www.docer.com/?from=nav%20_wps”)
- 说说RESTful架构
- 说说字典树
- 平时怎么写数据库的模糊查询(由字典树扯到模糊查询,前缀查询,例如“abc%”,还是索引策略的问题)
- 面向对象编程的理解
- 平时怎么写面向对象编程(聊了面向接口编程)
- socket编程,怎么实现信息传输,还是多人聊天室的问题(项目的坑)
- MySQL事务隔离等级,MySQL默认的事务隔离等级
- MySQL事务特性
PS:金山WPS的服务端开发主要是GO语言