Files
zhuangang/topics/ai/ai-coding/interview.md
T

68 lines
4.5 KiB
Markdown

---
id: ai.ai-coding.interview
title: AI 编程工具面试题
type: interview
domain: ai
stack: [ai-coding]
tags: [AI 编程, Cursor, Claude Code, 验证, 面试]
level: basic
related: [ai.ai-coding.workflow-rules-skills, ai.ai-coding.verify-evidence]
week: [15, 16]
---
# AI 编程工具面试题
## 基础
### 【基础】你平时怎么使用 AI 编程工具?
**参考答案**(按自己的实际情况讲):先提供上下文(需求、相关文件、规则文件),让 AI 先出计划,审核后分步执行;每一步跑测试并提交;最后自己审查和在真实环境验证。用得最多的场景:样板代码、测试用例、陌生 API 的初稿、重构、排查报错。
**追问**:哪些事情你不让 AI 做?→ 不能验证的核心逻辑、涉及密钥和生产数据的操作、需要大量业务背景的决策。
### 【基础】怎么让 AI 遵守项目约定?
**参考答案**:在 `AGENTS.md` / `CLAUDE.md` / 规则文件中写清技术栈、命令、分层、完成标准;高频任务写成 Skill;在提示中引用相关文件作为示例;把 AI 反复犯的错补进规则。
**追问**:规则文件写多长合适?→ 写关键约定和命令即可,太长会占用上下文且互相冲突;细节放在按需加载的 Skill 或文档中。
### 【基础】你怎么确认 AI 写的代码是对的?
**参考答案**:三层:自动检查(自己补的边界测试、类型检查、lint、CI);人工审查(逐行读懂,按清单检查边界、过时 API、编造的函数、安全问题);真实环境运行(调接口、看页面、查数据库和日志)。验证结果写进 PR 说明。
**追问**:AI 写的测试可以信吗?→ 不能直接信,AI 可能把同样的错误写进实现和测试;关键用例自己写,特别是边界和异常。
## 进阶
### 【进阶】讲一次 AI 写错、被你发现的经历。
**参考答案**(示例结构):任务是什么;AI 的输出哪里错了(例如边界条件返回负数、使用了旧版本 SDK 的写法、编造了不存在的配置项);你是怎么发现的(补的测试、读文档、运行报错);怎么修复;之后把什么经验补进了规则文件。
**追问**:如果你没有发现,会造成什么后果?→ 说明影响范围,以及之后在流程上做了什么改进(例如 CI 增加了某项检查)。
### 【进阶】写过 Skill 或团队工作流吗?
**参考答案**:例如把“新增接口”写成 Skill:定义模型、写服务、注册路由、写三类测试、运行测试后再报告完成;把“发版前检查”写成清单。效果:新成员和 AI 都按同样的步骤做,减少遗漏。
**追问**:Skill 和规则文件有什么区别?→ 规则文件是始终生效的约定;Skill 是某类任务的操作手册,需要时才加载,内容可以更详细。
### 【进阶】AI 编程有哪些安全风险?
**参考答案**:把公司代码、客户数据、密钥发给未经允许的工具;AI 生成的代码有漏洞(注入、越权);引入不存在或恶意的依赖包(包名幻觉被抢注);AI 工具执行了危险命令;第三方 MCP 服务或规则文件中藏有恶意指令。对策:遵守公司政策、脱敏、审查依赖、限制工具权限、CI 安全扫描。
**追问**:AI 推荐了一个你没听过的依赖包怎么办?→ 先确认包确实存在、来源可信、维护活跃,再决定是否引入。
## 场景题
### 【场景题】团队里大家都在用 AI,但代码质量下降了,你怎么改进?
**参考答案**:仓库级规则文件和团队 Skills 统一约定;PR 限制规模、必须写验证方式;CI 兜底(测试、类型、lint、密钥扫描);数据安全规定;定期复盘 AI 的典型错误并更新规则。详见[团队引入 AI 编程场景](scenarios/ai-assisted-feature.md)。
**追问**:怎么衡量改进效果?→ 线上缺陷数、回滚次数、PR 审查往返次数、CI 失败原因分布。
### 【场景题】面试要求提交一份 AI 编程的案例或会话记录,你会提交什么?
**参考答案**:选一个学习项目中的完整任务,提交整理过的记录:任务、上下文、计划、AI 出错的地方和发现方式、验证结果(测试、截图、验证记录)、最终提交链接。全部脱敏,不包含公司内部信息。
**追问**:为什么不用工作中的例子?→ 可以讲工作中的经验,但材料不能包含公司的代码和数据;提交的记录用学习项目,既安全又能完整展示。