Hello,大家好,今天教大家怎么在Cloud Code中使用Hooks。 用好Hooks,能够减少大量的不必要反攻,让你的开发效率提升至少一倍。 首先我们解释一下Hooks是什么。 它其实是你设置的一个自动检察员,它会帮你监控Cloud Code, 确保Cloud Code能够自动的严格执行你设置的所有命令。 这样解释可能还是有点抽象。 接下来用几个案例告诉你Hooks能做一些什么。 第一个,拦截一些危险操作。 这也是我经常用的一个Hooks。 比如我项目中的一些核心文件,我不希望Cloud Code直接去改动或删除, 那我就会设置一个Hooks。 当它识别到Cloud Code要做这样的危险操作的时候, 它会及时跳出来喊停。 第二个,自动存档。 我们经常需要把本次的迭代改动提交到Github, 但提交的时候,Cloud Code大多数时候不会自动留档, 或者不会自动记录本次迭代的改动点。 其实我们上一个视频也聊到了, 我们可以在cloud.md这样的一个项目说明书里, 向它提这个要求, 让它每一次提交之前都自动留档, 记录一下本次迭代的改动点。 但是Cloud Code并不会每次都严格按照cloud.md这样的项目说明书去执行。 它有时候会漏掉项目说明书里面的要求。 我们如果使用Hooks的话, 就能够更稳定的确保每一次提交代码的时候, 都可以去留档,去记录本次迭代的改动点。 第三个,代码审查。 这是我们经常会用到的一个场景。 比如我们某个模块或者是模功能, 它去做了一个大的改版。 Cloud Code其实它说它自己改完了, 但是很多时候它可能会战术性的偷懒。 所以我们Hooks可以去执行这样的一个review, 好好地去检查它本次改动的代码, 去确保它确实是改完了所有的模块, 而不是偷懒。 最后一个就是自动测试。 我们很多的模块是可以单独进行测试的, 某些模块它可能高频改动很多次UI或者是后端逻辑。 一些小的改动其实可以直接跑Hooks, 让它完成一个自动化测试的。 接下来我们看一下Hooks长什么样。 在我们的学习文档中给出了一个示例, 我们可以从示例中看到Hooks包含两个部分的内容, Metra和Hooks。 Metra其实代表了触发事件, 比如Cloud Code执行的一个Edit, Write,就是编辑或写入的操作。 第二个就是这个Hook对应的行为是什么。 行为里面其实包含两个字段, 第一个是类型, 第二个是执行的事件。 我们看一下总共有三种类型。 第一种类型叫Command, 就是命令。 它适用的情况是一些比较简单的规则, 它不需要额外判断, 通常来说就是一句命令的一个行为。 比如说碰到.enb后坠的文件, 你就拦住。 这就不需要判断, 不需要进行任何的语义判断, 也不需要进行任何的复杂操作。 第二个是Prom类型的。 它适用的情况就是, 我们需要去做一些简单的判断。 比如这里给出的一个例子就是, 早描Cloud Code工作过程中的对话历史, 去看一下它是不是把我要求的所有功能都完成了。 这个时候它只需要Review对话, 它不需要去看代码, 不需要去执行其他的额外操作, 所以它可以用Prom直接去完成。 第三个是Agent。 它相对来说, 比Prom就会更复杂一点。 它不只涉及简单的判断, 还会涉及到多部的判断或者是行为。 比如, 让它去执行一个自动化测试的事件, 让它继续要去测试这个UI是否, 像实现的代码或用户描述的需求一样, 以及让它去测试所有的点击事件是否正常。 所以这种情况下就需要一个Agent类型的Hook, 去完成本次的行为事件。 最后跟大家说一下我们怎么创建和管理Hooks。 首先创建Hooks非常简单, 就是让Cloud Code帮你创建就可以了。 我们打开一个正在开发中的项目, 然后给Cloud Code提一个要求, 让它帮我创建一个Hook, 每次UI重构都进行一次自动化测试, 并且仅在当前项目生效。 其实我们可以选择全局生效, 全局生效的话, 它就会放到本地的Cloud的目录下面, 然后我们点击发送, 它就开始帮我们去写这个Hooks。 OK, 我们可以看到Hooks已经创建完成了, 整个过程大概花了一分钟左右的时间, 下一次启动这个绘画, Hooks就会自动生效。 为了测试一下这个Hooks是否正常工作, 我在这个项目里面提了一个要求, 我跟他说目前的UI他没有想象力了, 重构一下, 所以他就列了整个重构计划, 并且完成了重构, 但是在整个过程中, 我没有看到Hooks的检测和报锁的痕迹, 所以为了确保能正常工作, 我在他提交完代码之后, 还问了另外一个问题, 本次是否确认使用Hooks去检查UI, 然后从他的Thinking里面, 我看到他确实是使用了我们刚刚写的这个UI Review的Hooks去检查UI, 但是确实所有的代码都通过了, 没有任何的错误, 这样我们就可以确保这个Hooks是能正常工作的, 实际上大家在测试的时候, 也可以去故意让Cloud Code去写一些容易发现的错误, 或者是一些其他的bug埋进去, 然后去确保这个Hooks, 它是能够正常工作的, 并且检测出错误, 最后我们看一下怎么在Cloud Code里管理已经存在的Hooks, 我们只需要在输入框里面输入-hooks, 然后点击弹出来的选项, 再点击continue terminal, 就是在中端里面进行管理, 然后我们打开一个中端的界面, OK, 我们就可以看到已经存在的所有Hooks就在这里, 我们可以在这里对Hooks进行删除编辑, 或者是禁用全部Hooks的操作, 好, 我们今天的课程就到这里了, 从下一期视频开始, 我们会跟大家逐步介绍Cloud Code的一些进阶玩法, 包括Subagent, MCP, CloudSkills, Agent Team等等, 如果你有其他想要了解的关于Cloud Code的问题或技巧, 欢迎在评论区留言, 如果你想获得本次课程的全部资料, 可以在评论区留下, 求资料, 我们下期视频继续,