从岗位目标反推题目
面试题库不应该只是技术名词列表。真正有效的题目来自岗位要解决的问题:这个人是否能独立交付业务模块,是否能定位线上问题,是否理解数据库和缓存边界,是否能在成本、复杂度和稳定性之间做取舍。
后端、前端、测试、移动端和 UI 的题库都应该围绕真实交付场景设计。
- 考察原理,也考察排障。
- 考察设计,也考察落地成本。
- 考察个人能力,也考察协作习惯。
- 避免只背 API 的题目。
高级后端怎么问
高级 PHP / Go 后端可以从框架、中间件、并发、数据库、缓存、消息队列、网络和系统设计展开。题目要鼓励候选人讲出机制、风险和替代方案,而不是给出唯一标准答案。
比如问缓存击穿时,不只问定义,还要问业务中哪些 key 风险最高、如何设置互斥、是否允许短暂脏读、失败时如何降级。
- 数据库:索引、事务、锁、慢查询。
- 缓存:穿透、击穿、雪崩、一致性。
- MQ:幂等、重试、顺序、死信。
- 网络:DNS、TLS、超时、连接池。
测试和前端也要场景化
测试岗位要看接口测试、自动化、性能、SQL、Linux、CI/CD 和问题定位。前端岗位要看 Vue 体系、状态管理、组件设计、工程化、性能、移动端兼容和用户体验细节。
面试最终不是为了难倒候选人,而是判断他能否进入团队现有交付体系。
- 给一个真实缺陷,看定位思路。
- 给一个复杂表单,看拆解能力。
- 给一个发布事故,看复盘框架。
- 给一个需求变更,看取舍表达。
岗位画像比题库更重要
知识库中的招聘资料覆盖 PHP、Go、前端、测试、移动端和 UI。题库只是工具,真正决定面试质量的是岗位画像:这个岗位进入团队后要解决什么问题,独立交付到什么程度,和谁协作,最容易踩什么坑。
如果没有画像,面试就会变成技术点抽查。候选人可能答对很多问题,但无法判断是否适合当前团队。
- 先定义岗位要交付的业务模块。
- 再定义必须能力、加分能力和风险信号。
- 题目围绕真实工作场景设计。
- 面试记录要能支持录用或不录用判断。
后端题目要追问机制和取舍
高级 PHP / Go 面试可以覆盖框架、中间件、并发、数据库、缓存、MQ、网络和系统设计。但每个问题都应该追问机制和取舍。比如问 Redis,不只问数据类型,还要问缓存一致性、击穿防护、热点 key、降级策略和监控指标。
候选人能不能讲清楚边界,比能不能背出标准定义更重要。
- 数据库问题追问索引、锁、事务和慢查询定位。
- 缓存问题追问穿透、击穿、雪崩和一致性。
- MQ 问题追问幂等、重试、顺序和死信。
- Go 问题追问 goroutine 泄漏、context、channel 和调度。
测试岗位要看问题闭环
测试工程师不只是点页面。知识库里的测试面试材料强调功能、接口、自动化、性能、SQL、Linux 和 CI/CD。更重要的是问题闭环:发现问题、定位问题、复现问题、推动修复、补充用例。
一个好的测试候选人会主动问业务风险,而不只是照着需求文档逐条执行。
- 给一个接口异常,让候选人说排查路径。
- 给一个业务流程,让候选人设计用例。
- 给一个线上缺陷,让候选人描述复盘。
- 关注 SQL、日志、抓包和 CI 使用能力。
评分表要减少拍脑袋
面试之后最怕一句“感觉还行”。建议用结构化评分表,把能力拆成基础能力、工程经验、问题定位、沟通协作、业务理解、成长性和风险点。
评分表不是为了机械化,而是为了让多个面试官可以对齐口径。
- 每个维度给 1-5 分和证据。
- 记录候选人的具体回答和案例。
- 区分不会、没做过、做过但讲不清。
- 明确录用建议和入职后培养重点。