目录

对于大厂,面试造火箭,入职拧螺丝。对于小厂,可能需要那些当前更实用的,本文针对中小企业团队

项目经验:

  • 参与过的最好产品项目/完整项目是哪个

    了解最好的项目经验

  • 其中的参与角色与职责

    考察责任与管理能力

  • 最熟悉哪个php框架;对TP框架熟悉到什么程度(技术基础能力)

    考察对框架的理解和应用程度

  • 结合项目具体功能实现方式,了解mvc架构熟悉与运用程度或基于SWOOLE框架应用程度

    考察mvc框架及Swoole库的理解

  • 个人有哪些编码规范或约定

    考察自身的要求及团队的要求程度

基础知识点

  • session原理,如果用户量很大的情况,session如何存储?负载均衡下如何共享session?

    考察:php基础,吸引深入理解的开发

  • 服务器读取文件、读取本地memcache/redis、读取数据库数据哪个更快?

    考察:读写资源理解及理解程度,吸引能深入了解的开发

  • 使用过哪些php模板渲染引擎,具体原理是什么?

    考察:模板引擎原理,吸引有创造性的开发

  • php中如何输出一个数组或对象结构到文件?

    考察:php基础,排除只会皮毛的开发

  • php能否捕获系统异常?如何捕获自定义异常及如何处理异常?

    考察:php基础,排除不严谨的开发

  • 通过php如何删除一个文件,伪代码描述?

    考察严谨程度

  • php如何获取一个URL字符串中的域名?具体正则表达式应该是什么样?

    考察正则表达式

    /http[s]?:\/\/([^\/]+)/

虽然php开发门槛低,这里基本不考察php手册里相关的方法、函数等,但从以上部分问题,我们都能得到在php上的经验如何。

性能优化

  • 过去项目中有遇到服务器性能瓶颈吗?什么模块,采用什么方案解决?

    考察性能优化解决能力,前端缓存、资源cdn、请求优化、后端缓存策略、数据库优化、逻辑算法调整等

  • 商品秒杀场景如何实现,如何解决高并发、超发、处理失败数据不一致问题?

    考察并发设计方案及性能优化解决能力。事务、锁、数据一致性、异常处理等

  • 使用过哪些缓存,什么场景或什么数据需要使用缓存?

    考察缓存使用及性能优化能力

  • 如何通过php实现html页面静态缓存?

    考察静态化及优化能力

  • redis与memcache有什么区别?是否使用过redis的其他数据结构及其使用场景,如队列

    考察缓存使用及性能优化能力

  • 过去项目经验是否碰到页面加载慢问题,个人怎么分析及有哪些优化方案

    同上性能优化

数据库相关

  • 过去哪个产品项目亲自设计数据库表,在设计上特别注意或主要考虑哪些问题?

    考察数据库表设计

  • 如何看待数据库的三个范式,什么情况做冗余(数据库)

    考察数据库理论。空间、时间的冗余妥协,列不可再分,行唯一,域直接不间接关联

  • 过去的项目中是否有遇到服务器性能瓶颈?在数据库环节,具体什么问题,如何解决

    考察性能优化、数据库索引原理及优化

  • 常见大型数据表(千万级别),高频查询,如何优化(数据库)

    考察性能优化、数据库优化

  • 是否使用过视图,什么场景会使用,为什么(数据库)

    考察数据库高阶使用

  • 是否使用过存储过程,什么场景会使用,为什么(数据库)

    考察数据库高阶使用

  • 如何分析mysql语句的性能?索引有哪几种?什么样的数据字段需要创建什么类型的索引?联合索引的最左前缀怎么理解?InnoDB的索引是怎样的数据结构?

    考察数据库索引原理、优化

架构与设计模式

架构与设计模式,目前中国的开发市场看,中小企业基本很难应用到明确的架构与设计模式,但好的开发者,会在某些某块中借鉴应用一些成熟的架构与开放方法。

系统、服务、版本、调试等

  • 正式环境与开发环境使用linux吗,mac或centos还是ubuntu,是否熟悉linux的操作

    考察linux基础操作top、ps、kill、chmod、chown、df、ln、fg、vim的简单操作模式等,可以留意到更稀有的开发

  • nginx的优势,apache的优势(apache、nginx)

    考察对http web服务的理解

  • 常用的版本控制方式,产品项目中同时实现多个迭代,如何进行代码版本控制管理?

    考察版本管理流程及对流程的理解能力

  • 研发方案设计流程

    考察对软件工程、项目管理的一些基本认知。需求目的,输入、数据结构设计、输出

  • 线上出问题如何调试问题

    考察调试能力

  • 线上产品有个功能中,点击后报错,从后端角度,如何快速排查定位问题?

    考察调试能力

安全

安全也一直是更高级的后端需要具备的能力,保证系统安全是一项了不起的能力。

更多问题:

  • 事务的理解及使用场景
  • 锁的理解及使用场景
  • 第三方用户系统登录流程
  • 第三方支付系统支付流程,回调的目的
  • 如何避免被模拟http请求
  • 手动负载均衡实现方案

参考

https://juejin.im/entry/5aa8c20b518825557459653a

https://github.com/tsingchan/PHP-Interview-QA


2016@tsingchan 持续更新及补充