你的Claude Code很强,但也经常放飞自我,教你一招搞定

你的Claude Code很强,但也经常放飞自我,教你一招搞定

你的Claude Code很强,但也经常放飞自我,教你一招搞定 你的Claude Code很强,但也经常放飞自我,教你一招搞定 Modified September 11, 2025 1. AI的"过度自信"问题 AI生成代码时有个特点:它总是很自信地给你一个"完整"的解决方案。但实际上,这个解决方案可能存在各种隐患。 通过TDD,我强迫自己先思考: • 这个功能的边界是什么? • 什么情况下应该成功?什么情况下应该失败? • 如何验证功能的正确性? 这个思考过程是AI无法替代的。 2. 防止AI的"过度实现" AI有个毛病,就是喜欢一次性实现很多功能。你让它写一个简单的用户注册,它可能给你搞出一套完整的用户管理系统,包括密码重置、邮箱验证、角色管理等等。 TDD的 "红 绿 重构" 循环强制我们一次只关注一个测试用例,一步步地构建功能。这样既能控制复杂度,也能确保每一步都是必要的。 3. 提高代码质量 说个真实的体验:AI生成的代码往往能跑,但不一定好维护。通过TDD,我能够在开发过程中不断审视代码结构,及时重构,避免技术债务的积累。 TDD Guard:我的新发现 最近发现了一个有趣的工具叫TDD Guard,专门用来约束Claude Code的行为,确保它严格遵循TDD原则。 这个工具的核心思想是通过Hook机制,Hook这东西简单说就是在特定条件下自动执行命令,比如在AI代理操作前后触发。 这玩意儿简直是 enforcing 编码标准的完美工具,验证器会整合Hook事件数据、代理的当前待办事项列表以及最新的测试运行结果,然后调用另一个Claude Code会话来验证是否符合TDD原则,在Claude Code执行文件修改操作之前进行拦截和验证: 1. 检查是否有对应的失败测试 :如果你直接写实现代码,它会阻止你 2. 防止过度实现 :确保代码只实现当前测试所需的最小功能 3. 强制重构阶段 :集成代码质量检查工具,提醒你进行必要的重构 由于Claude Code的Hook是作为独立进程运行的,TDD Guard在不同阶段之间会把上下文数据持久化到文件中。这种方法让不同的Hook(比如修改前的TDD验证和修改后的代码检查)可以访问共享状态,而不需要依赖复杂的进程间通信。 如果没有发现违规,Hook就不会干扰执行。但如果发现问题,它会阻止操作并清晰说明问题,同时提供纠正指导。简单粗暴,但有效。 刚开始用的时候有点烦,感觉被束缚了手脚。但用了一段时间后,我发现代码质量明显提升了,而且调试时间大大减少。 说实话,这设计让我觉得挺优雅的,既可靠又容易理解。 AI编程的几个坑,你踩过吗? 坑1:过度依赖AI的"聪明" 很多人用AI写代码时,喜欢一次性描述很复杂的需求,然后期待AI给出完美的解决方案。但这往往导致代码过度复杂,难以理解和维护。 我的建议 :把复杂问题分解成小的、可测试的单元,一步步来。 坑2:忽略代码审查 AI生成的代码看起来很专业,但不代表就是正确的。我见过太多人直接复制粘贴AI代码,结果上线后出各种问题。 我的建议 :把AI当作初级程序员,代码必须经过仔细审查。 坑3:测试覆盖率低 AI很少主动生成全面的测试用例,这是它的一个明显短板。 我的建议 :强制自己先写测试,或者至少在代码完成后补充测试。 写在最后 之前有朋友问我:作为AI时代的开发者和创业者,还需要自己写代码吗? 答案是:需要,而且比以前更需要深度思考。 AI工具让我们写代码的效率提升了,但也对我们的软件工程能力提出了更高要求。你需要能够: • 设计清晰的测试用例 • 审查AI生成的代码质量 • 把控整体架构和技术方案 • 优化和重构代码 TDD在这个过程中起到了很好的约束和指导作用。它不是为了限制AI,而是为了让AI更好地服务于高质量的软件开发。 最后,如果你也在用AI编程工具,强烈建议试试TDD的方法论,或者类似TDD Guard这样的约束工具。 相信我,你会感谢自己的。 TDD GUARD https://github.com/nizos/tdd guard 你有没有遇到过类似的情况?AI 经常放飞自我 ?欢迎在评论区分享你的经验,我们一起交流避坑心得! 栗子KK, 一个在AI浪潮中游泳的AI产品Founder 传统技能不能丢, 点赞、在看、关注 三连走起 ,让我们一起聊科技、聊产品、聊未来 🚀 1. AI的"过度自信"问题 AI生成代码时有个特点:它总是很自信地给你一个"完整"的解决方案。但实际上,这个解决方案可能存在各种隐患。 通过TDD,我强迫自己先思考: • 这个功能的边界是什么? • 什么情况下应该成功?什么情况下应该失败? • 如何验证功能的正确性? 这个思考过程是AI无法替代的。 2. 防止AI的"过度实现" AI有个毛病,就是喜欢一次性实现很多功能。你让它写一个简单的用户注册,它可能给你搞出一套完整的用户管理系统,包括密码重置、邮箱验证、角色管理等等。 TDD的 "红 绿 重构" 循环强制我们一次只关注一个测试用例,一步步地构建功能。这样既能控制复杂度,也能确保每一步都是必要的。 3. 提高代码质量 说个真实的体验:AI生成的代码往往能跑,但不一定好维护。通过TDD,我能够在开发过程中不断审视代码结构,及时重构,避免技术债务的积累。 TDD Guard:我的新发现 最近发现了一个有趣的工具叫TDD Guard,专门用来约束Claude Code的行为,确保它严格遵循TDD原则。 这个工具的核心思想是通过Hook机制,Hook这东西简单说就是在特定条件下自动执行命令,比如在AI代理操作前后触发。 这玩意儿简直是 enforcing 编码标准的完美工具,验证器会整合Hook事件数据、代理的当前待办事项列表以及最新的测试运行结果,然后调用另一个Claude Code会话来验证是否符合TDD原则,在Claude Code执行文件修改操作之前进行拦截和验证: 1. 检查是否有对应的失败测试 :如果你直接写实现代码,它会阻止你 2. 防止过度实现 :确保代码只实现当前测试所需的最小功能 3. 强制重构阶段 :集成代码质量检查工具,提醒你进行必要的重构 由于Claude Code的Hook是作为独立进程运行的,TDD Guard在不同阶段之间会把上下文数据持久化到文件中。这种方法让不同的Hook(比如修改前的TDD验证和修改后的代码检查)可以访问共享状态,而不需要依赖复杂的进程间通信。 如果没有发现违规,Hook就不会干扰执行。但如果发现问题,它会阻止操作并清晰说明问题,同时提供纠正指导。简单粗暴,但有效。 刚开始用的时候有点烦,感觉被束缚了手脚。但用了一段时间后,我发现代码质量明显提升了,而且调试时间大大减少。 说实话,这设计让我觉得挺优雅的,既可靠又容易理解。 AI编程的几个坑,你踩过吗? 坑1:过度依赖AI的"聪明" 很多人用AI写代码时,喜欢一次性描述很复杂的需求,然后期待AI给出完美的解决方案。但这往往导致代码过度复杂,难以理解和维护。 我的建议 :把复杂问题分解成小的、可测试的单元,一步步来。 坑2:忽略代码审查 AI生成的代码看起来很专业,但不代表就是正确的。我见过太多人直接复制粘贴AI代码,结果上线后出各种问题。 我的建议 :把AI当作初级程序员,代码必须经过仔细审查。 坑3:测试覆盖率低 AI很少主动生成全面的测试用例,这是它的一个明显短板。 我的建议 :强制自己先写测试,或者至少在代码完成后补充测试。 写在最后 之前有朋友问我:作为AI时代的开发者和创业者,还需要自己写代码吗? 答案是:需要,而且比以前更需要深度思考。 AI工具让我们写代码的效率提升了,但也对我们的软件工程能力提出了更高要求。你需要能够: • 设计清晰的测试用例 • 审查AI生成的代码质量 • 把控整体架构和技术方案 • 优化和重构代码 TDD在这个过程中起到了很好的约束和指导作用。它不是为了限制AI,而是为了让AI更好地服务于高质量的软件开发。 最后,如果你也在用AI编程工具,强烈建议试试TDD的方法论,或者类似TDD Guard这样的约束工具。 相信我,你会感谢自己的。 TDD GUARD https://github.com/nizos/tdd guard 你有没有遇到过类似的情况?AI 经常放飞自我 ?欢迎在评论区分享你的经验,我们一起交流避坑心得! 栗子KK, 一个在AI浪潮中游泳的AI产品Founder 传统技能不能丢, 点赞、在看、关注 三连走起 ,让我们一起聊科技、聊产品、聊未来 🚀 🔗 原文链接: https://mp.weixin.qq.com/s/1AGFAEHL... https://mp.weixin.qq.com/s/1AGFAEHL... 原创 栗子KK 数镜智心2025年08月30日 07:04 北京 前言 我最近发现了一个挺有意思的现象。自从把Claude Code深度融入我的工作流后,这玩意儿确实帮我提高了不少效率,但也带来一个新问题——我发现自己总是在提醒它:"喂,先写测试啊"、"别一次写太多功能"、"够了够了,别过度实现了"。 今天想跟大家聊聊我这段时间使用Claude Code写代码的真实体验,特别是为什么我依然坚持TDD(测试驱动开发),以及最近发现的一个神器——TDD Guard。 AI编程的蜜月期与幻灭期 刚开始用Claude Code的时候,我简直爽翻了。想要什么功能,直接用自然语言描述,几秒钟就能生成一大段代码。那种感觉就像是有了一个24小时不休息的超级程序员助手。 但蜜月期很快就结束了。 我记得有一次,让Claude Code帮我写一个用户权限管理的模块。代码生成得很快,看起来也很专业,但当我真正测试的时候,发现各种边界情况都没考虑到: • 权限继承逻辑有漏洞 • 并发访问时的数据一致性问题 • 错误处理简单粗暴 最要命的是,AI生成的代码往往缺乏测试。它能给你一个看起来很完美的函数,但你不知道在什么情况下会崩。 这让我意识到,AI写代码确实很快,但写出好代码、可维护的代码,还是需要人的思考和约束。 为什么我依然坚持TDD? TDD(测试驱动开发)的核心理念是: 先写测试,再写实现,然后重构 。这个过程听起来很繁琐,但在AI编程时代反而变得更加重要。

在 小宇宙note 阅读完整内容