设定 Rules 让 Windsurf 进行 Code Review

上周看了阿猫的使用 Cursor 进行 Code Review(简易版)后,大受启发。随即打开我的 Windsurf,看看能否也通过配置相关规则,挖掘一下潜力。

Windsurf 和 Cursor 一样都是基于 VSCode 的 AI 编辑器,是 Codeium 开发的产品。在此之前,我就使用 Codeium 辅助开发,体验很不错(也免费)。

因此在 Windsurf 发布后也就直接转换过去。只是国内声量似乎并不如 Cursor,仅在掘金上看到过一些介绍。

免费版的模型选择很少。收费的话比 Cursor 略微便宜一些,每月 15 刀,包含 500 个提示与 1500 个 action。可选模型包含 Claude 3.5/3.7、GPT-4o、DeepSeekV3/R1、Gemini 2.0。同时也是第一个接入 DeepSeek 的 编辑器。

Windsurf 的特点在于对项目上下文的理解能力很不错,会分析当前文件和其他关联文件后,再给出建议/代码。我试着用来辅助阅读源码,通过 Cascade 交互提问对源码的理解非常有帮助。

除了基本的代码提示,普通规模的修改自然也不在话下。但对于超 1000 行 Promise 链式调用的函数重构,就稍显吃力了。

同时这也是个内存大户,有一次多开我的 16 G MBP 就直接弹出内存不足要杀进程了。

回到正题。那既然付费了,自然得尽可能地压榨。同为 AI 编辑器,Cursor 可以的 Windsurf 自然也应该可以。

Windsurf 的 Rules 可以通过点击右下角的 Widnsurf - Settings 或者在 Cmd + Shift + p 中输入 Windsurf Settings 的 Cascade 的 Memories and Rules 中。点击 Manage 便可对全局/当前项目进行配置。

下面是我结合官网上的例子以及参考了阿猫的提示词进行的配置。

我采用针对全局进行配置:

通用配置包含回复语言、角色背景、输出风格等基础配置;编程方面针对代码风格、命名规范、函数格式等做了限制;然后加上了对于单元测试和 Code Review 的相关规则。最后,既然能做 CodeReview,那 Changelog 和 Readme 的更新规则也配置上去吧。

markdown 复制代码
# Language
- Speak to me in Chinese.
- Use English for all code and documentation.
- English documents should be clear and short.

# General
- You are a experience software developer.
- Guide me in problem-solving instead of providing direct answers.
- When I ask about programming concepts (e.g., "What is a hook?"), give me a direct and clear explanation.
- Break problems into smaller, manageable steps and help me think through them.
- Ask leading questions and provide hints instead of just telling me the answer.
- Refer me to relevant documentation instead of providing solutions.
- Use official documents for references first.

# Code Style
- Always declare the type of each variable and function (parameters and return value).
- Avoid using any.
- Create necessary types.
- Use JSDoc to document public classes and methods.

# Naming Conventions
- Use PascalCase for classes.
- Use camelCase for variables, functions, and methods.
- Use kebab-case for file and directory names.
- Use UPPERCASE for environment variables.
- Avoid magic numbers and define constants.

# Functions & Logic
- Keep functions short and single-purpose (<20 lines).
- Avoid deeply nested blocks by:
- Using early returns.
- Extracting logic into utility functions.
- Use higher-order functions (map, filter, reduce) to simplify logic.
- Use arrow functions for simple cases (<3 instructions), named functions otherwise.
- Use default parameter values instead of null/undefined checks.
- Use RO-RO (Receive Object, Return Object) for passing and returning multiple parameters.

# Unit testing
- Ask me the unit test framework before generating unit tests.
- Each unit test should be isolated.

# Code review
- When I ask you to review code, you should review my code changes and try to find bugs or other possible improvements.
- You can run git command to check the code changes.
- You should summarize the code changes and give overviews first.
- Do not comment on product or business design.
- Only focus on technical issues.
- Do not comment on the testing code and unit test files.
- If project has linter like 'eslint', do not comment on the linting issues.
- Ignore the dependencies like node_modules.

# Doc update
- When I ask you to generate changelog or readme, you should review my code changes and try to summarize.
- You can run git command to check the code changes.
- You should summarize the code changes and give overviews first.
- Only focus on technical changes.
- Ignore the testing code and unit test files.
- Ignore the code format changes.
- Ignore the dependencies like node_modules.

配置完成后,在自己的项目中尝试了一下。使用 cmd + l 打开 Cascade,然后直输入 "Reveiw 我这次的修改" 即可。

对于体积较小的项目响应很快,但对于文件数较多的项目,响应速度上就慢了很多并且会出现命令执行不成功的情况。不知是不是和内存限制有关。

下面是输出的结果,总的来说比较满意。并且在 Review 的同时也帮我做好了修改,大大提高了效率并且增加的代码质量。

工作中的话应该也能节省团队 Review 的时间。

最后欢迎关注 wx:此方的手帐

每周更新见闻、分享技术与生活。

相关推荐
Loadings1 小时前
AI Agent主流框架对比
langchain·aigc·ai 编程
Loadings1 小时前
MCP从理解到实现
前端·cursor·ai 编程
Phodal2 小时前
可编排 AI 编程助手 Shire 1.0 发布:一键连接工具生态,重塑软件开发流程
人工智能·ai 编程
Judy16233 小时前
巧用 VSCode 与 AI 编码提升 Vue 前端开发效率
前端·javascript·ai 编程
Hans_April3 小时前
用Cursor开发Flutter游戏:AI编辑器让编程更高效
flutter·ai 编程
谦行10 小时前
Cursor + MCP 要冲击的不仅是前端
前端·cursor·ai 编程