后端面试点-lanmp
目录
3年以上后端经验,2018年技术栈为分割点,需要持续更新新技术能力考核点
面试目的及评估角度
- 1、后端技术经验(架构、lanmp、异常、调试、数据库、缓存、性能优化)
- 2、前端技术经验(技术方向框架、工具、高效开发调试、项目经验、优化、安全)
- 3、沟通表达能力 : 描述方案清楚、提出问题明确、概念定义顺畅
- 4、责任态度与协作 :岗位职责、加班态度、团队协作经验情况
涉及知识点(待定期更新)
项目经验角度
1、参与过的最好产品项目/完整项目是哪个(了解最好的项目经验)
2、其中的参与角色与职责(责任与管理能力)
3、最熟悉哪个php框架;对xx框架熟悉到什么程度(技术基础能力)
xxx框架的模型与数据有什么区别
4、结合项目具体功能实现方式,了解mvc架构熟悉与运用程度(mvc及架构)
5、编码规范或约定原则(编码规范)
技术知识角度
6、session原理,如果用户量很大的情况,session如何存储?负载均衡下如何共享session?(php)
7、服务器读取文件、读取本地memcache/redis、读取数据库数据哪个更快?(php)
8、使用过哪些php模板渲染引擎,具体原理是什么?(php)
9、php中如何输出一个数组或对象结构到文件?(php)
10、php能否捕获系统异常?如何捕获自定义异常及如何处理异常?(php)
14、通过php如何删除一个文件,伪代码描述?(严谨度)
12、php如何获取一个URL字符串中的域名?具体正则表达式应该是什么样?(正则)
/http[s]?:\/\/([^\/]+)/
15、过去项目中有遇到服务器性能瓶颈吗?什么模块,采用什么方案解决?(性能优化)
前端缓存、资源cdn、请求优化、后端缓存策略、数据库优化、逻辑算法调整
16、商品秒杀场景如何实现,如何解决高并发、超发、处理失败数据不一致问题?(性能优化)
事务、锁、数据一致性、异常处理
16、使用过哪些缓存,什么场景或什么数据需要使用缓存?(性能优化)
11、如何通过php实现html页面静态缓存?(性能优化)
17、redis与memcache有什么区别?是否使用过redis的其他数据结构及其使用场景,如队列(缓存)
18、过去项目经验是否碰到页面加载慢问题,个人怎么分析及有哪些优化方案(性能优化)
同上性能优化
19、过去哪个产品项目亲自设计数据库表,在设计上特别注意或主要考虑哪些问题?(数据库)
20、如何看待数据库的范式,什么情况做冗余(数据库、反范式)
(空间、时间的冗余妥协)列不可再分,行唯一,域直接不间接关联
21、过去的项目中是否有遇到服务器性能瓶颈,(引出数据库环节?)具体什么问题,如何解决(数据库)
22、常见大型数据表(千万级别),高频读写,如何优化避免数据库雪崩(数据库)
23、是否使用过视图,什么场景会使用,为什么考虑使用视图解决(数据库)
24、是否使用过存储过程,什么场景会使用,为什么考虑使用存储过程(数据库)
25、如何分析mysql语句的性能?索引有哪几种?什么样的数据字段需要创建什么类型的索引?联合索引的最左前缀怎么理解?InnoDB的索引是怎样的数据结构?(数据库)
26、正式环境与开发环境使用linux吗,mac或centos还是ubuntu,是否熟悉linux的操作(linux)
top、ps、kill、chmod、chown、df、ln、fg、grep
vim的简单操作模式:复制粘贴3行、删除一行中的前5个单词、快速删除文件所有内容、定位到第100行、回到上一次编辑的地方(自定义标记)、查看文件信息比如行数、同时打开多个文件、
27、nginx的优势,apache的优势(apache、nginx)
28、常用的版本控制方式,产品项目中同时实现多个迭代,如何进行代码版本控制管理?(管理)
29、研发方案设计流程(管理)
需求目的,输入、数据结构设计、输出
30、如何在正式运行环境调试问题(调试)
31、正式环境产品有个按钮,点击后报错,从后端角度,如何快速排查定位问题?(调试)
从安全角度
1、后端角度,投票按钮如何解决刷票问题?网页验证码/短信验证码的原理,解决了什么问题?
https://www.jianshu.com/p/58bb83a51a31
2、如何防止CSRF重放攻击与XSS跨站脚本攻击?防范输入、过滤、
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
https://blog.csdn.net/ghsau/article/details/17027893
3、如何保证表单不被重复提交(安全)
更多问题
事务的理解及使用场景
锁的理解及使用场景
微信用户系统登录流程
微信支付系统支付流程,回调的目的
如何避免被模拟http请求
手动负载均衡实现方案