你在工作中怎样使用 AI 编程工具?会不会依赖它?
讲清楚自己在哪些环节用 AI(写样板代码、补测试、查资料、解释陌生代码),以及怎样把关:先读懂再采用,从功能、安全、可读性和可维护性审查建议代码,用测试和 lint 等工具验证,不把密钥和敏感代码发给未经允许的工具。用一个具体例子说明 AI 提升了效率,也说明你发现并纠正过它的错误。
本题是回答思路与示例,不对应某个官方规范。示例中的经历和数字只用来演示怎样表达。
简答
比如可以说:“我主要在写表单校验、单元测试这类重复性高的代码时用 Copilot,生成以后会逐行读一遍,再跑测试和 lint,确认没问题才提交。”先说具体在哪些环节用,面试官就知道你是真的在用,而不是泛泛而谈。
面试官问这道题,是想知道你能不能用 AI 提高效率,同时有没有判断力。AI 会出错,GitHub 的 Copilot 文档也明确建议,要始终验证它建议的代码。所以回答的重点是你怎样把关。
把关可以讲三步:先读懂建议代码再采用;从功能、安全、可读性和可维护性几方面审查;用自动化测试和 lint、代码扫描等工具再检查一遍。再配一个你发现 AI 出错并改正的例子,最有说服力。
关于“会不会依赖”,可以坦诚地说日常已经离不开,但核心设计和最终判断由自己负责。也要提到遵守公司对 AI 工具的规定,不把密钥、用户数据或不允许外传的代码发给工具。
一个完整的示例
我日常主要在三个地方用 AI。一是写样板代码,比如表单的校验规则、接口类型定义,我写清楚需求让它生成,再自己调整。二是补单元测试,让它根据函数列出边界情况,我再挑出有意义的保留。三是看陌生代码,接手老项目时让它先解释一段逻辑,我再对着代码确认。
生成的代码我不会直接提交。我会先读懂每一行,看功能对不对、有没有安全问题,比如有没有把用户输入直接拼进 HTML;再看命名和结构是否符合团队规范。之后跑一遍测试和 lint。
有一次让它写一个防抖的搜索框,它生成的代码在组件卸载时没有清除定时器,测试里切换页面后还会发请求。我发现后补上了清理逻辑,也加了一个对应的测试。从那以后,涉及定时器、订阅和请求取消的代码,我都会特别检查清理部分。
我们公司对 AI 工具有使用规定,只能用公司采购的版本,配置文件和密钥不能发进去,我都按规定来。
这个回答有使用场景、有把关流程、有一次真实的纠错,还提到了公司规定。面试官听完会觉得你是在“用工具”,而不是“被工具用”。
为什么要强调审查和验证
GitHub 官方的 Copilot 最佳实践文档在“Check Copilot's work”一节写道:Copilot 虽然强大,但仍然会犯错,应当始终验证它建议的代码。它给出的具体做法包括:采用之前先理解建议的代码,可以让 Copilot Chat 解释;仔细审查建议,不只看功能和安全,还要看以后的可读性和可维护性;用自动化测试和 lint、代码扫描等工具多加一层检查。
MDN 的 Research and learning 也提到,AI 工具能大大加快查资料的速度,但经常给出误导甚至错误的答案,不能默认它是对的,要自己测试并用其他来源验证。它还提醒,不管代码是不是 AI 生成的,复制使用自己看不懂的代码都会让 bug 更难修,还可能带来安全、性能或无障碍问题。
所以面试中说“我会审查和验证”,不是客套话,而是工具提供方和权威文档共同的建议。能讲出你具体怎样做,才说明你真的有这个习惯。更多审查细节可以看《AI 生成的前端代码应该怎样审查和验证?》。
哪些说法要避免
“我几乎不用 AI,都是自己写的”,在多数团队里会显得跟不上变化,除非公司明确禁止使用。
“AI 写的代码基本不用改,直接用”,这说明你没有审查习惯,面试官会担心代码质量。
“我把整个项目丢给 AI 让它帮我找 bug”,如果涉及公司代码,还要说明这是否符合公司规定,否则会引起对数据安全的担心。
常见追问
如果不能用 AI,你的效率会下降很多吗?
如实说会慢一些,主要慢在样板代码和查资料上;但设计方案、定位问题和代码审查本来就是自己做的,这部分不受影响。可以补一句,你会定期不借助 AI 写一些代码,保持对基础知识的熟悉。
AI 生成的代码出了线上问题,责任算谁的?
算提交代码的人的。代码是我审查后提交的,就和我自己写的一样由我负责。所以我才会在提交前读懂并验证每一段生成的代码。