Windsurf使用技巧分享

最近使用了差不多半个月的Windsurf,使用下来的感觉就是这玩意血强,不比cursor差。之前体验过免费的cursor,但completion的次数很快就用完了,体验的确很好,但20美刀的价格的确需要仔细考虑考虑,后来就开始体验Windsurf,只有cursor一半的价格(不知道啥时候会变成15),但也依然保持着优秀的体验,因此今天我就写几点关于我使用Windsurf的一些心得。

善用rules配置

Windsurf应该是上周左右推出的rules功能,之前没有这个最明显的麻烦之处在于,对话开始如果不特别说明,回复都是英文,因此如果只是想让它说中文的话,可以直接在rules里面配置让其说中文,这个rules可以理解成System Prompt,因此一个优秀的rules可以大大的提升模型的输出效果。这个功能在cursor上早就推出了,网上也有一个仓库收集了很多优秀的配置: github.com/PatrickJS/a... ,各位可以自行去看看有没有适合自己的。

我这边对于rules配置的建议是这样的,首先要明确角色背景,比如我是个Java开发工程师,因此我会告诉它:

text 复制代码
角色背景:
	-	您是一名经验丰富的资深 Java 开发架构师。
	-	始终坚持 SOLID 原则、DRY 原则、KISS 原则和 YAGNI 原则。
	-	遵循 OWASP 最佳实践。
	-	善于将任务分解为最小单元,并以循序渐进的方式解决问题。
	-	使用中文回答我的问题。

这一段也是来自于刚刚仓库里面的推荐,主要可以让模型提供提供最佳实践的代码,避免一些低质量的代码影响整体的代码效果。

此外,rules可以设置global的或者workspace的,对于workspace的rules,可以给予其技术栈以及目录结构的说明,举个例子:

text 复制代码
技术栈:
	-	框架: Java Spring Boot 2,Maven,Java 8
	-	依赖: MybatisPlus, Lombok, PostgreSQL driver, Redis, ShardingJDBC

项目背景:xx引擎系统,主要用来解决。。。

项目结构:
- common 通用依赖包,core和starter都会依赖此模块
	- constants 常量类
	- mq 消息传输定义的对象
- core 核心业务开发模块
	- entity 数据库实体
	- mapper 数据库mapper
	- service  服务类及接口
		- db  基于Mybatis Plus 框架生成的简单service及其实现
		- biz  业务具体实现的服务
	- controller  RestController层
	- mq 消息处理的处理器
	- filter 一些过滤器
	- config 系统配置
- starter 给予其他业务系统的springboot starter
	- config starter的配置
	- client  一些用于请求当前项目封装好的客户端

明确这些背景知识的好处在于,可以让其更加针对于此项目来做代码设计,尤其是经常会跨文件修改时,能避免找错文件位置或者用了不适合当前技术栈的解决方案。

良好的代码风格

在新项目的开发过程中,尽量做好代码架构的初步设计,可以使用一些设计模式或架构设计思想来构建整体的开发风格,举个例子,比如说你用模版模式,那你最终要实现的实际上是基于模版提供的几个方法的实现,相当于把业务进行了逻辑上的拆分,那么当你实现其中一个业务上的代码后,那么实现其他继承该模板类的子类时,你可以将已经实现好的代码作为参考代码给予模型,具体操作就是选中你要提供给模型的参考代码,然后点击chat,右侧的输入框就会出现引用,这样就类似于few shot的方式让其回答的效果更加准确,实际prompt大致是这样的:

text 复制代码
请你参考(选中代码的引用)来完成(要修改的代码的引用):
(额外可以补充一点需求内容)

如果你不知道怎么设计更好的代码架构时,你也可以直接通过对话让其给你建议,这不仅是对于使用Windsurf的建议,也是现在有AI辅助时代的程序员新的开发思路,AI就是跟你一起思考的小黄鸭。

这里的代码风格包括但不限于设计模式,还有良好的命名规范、合适的模块拆分、准确的代码注释等,对于模型理解当前仓库的代码都有很大的帮助。

适当使用提示词技巧

在Windsurf中,对于提示词的要求相对于直接使用模型对话已经低了不少,但高效的提示词依然还是能带来更好的反馈。比如上面使用的few shot,在实际业务开发中逻辑接近的代码其实很多,因此能用上的时候尽量用上,避免模型放飞自我写出其他风格的视线。

此外很重要的一个技巧就是思维链,就算Windsurf在对话过程中我们能看出它也是在一步步的思考并解决问题,但如果你已经有很清晰的思路,不妨多打几行字把你的思路告诉它,这比它自己跑偏了你再纠正效率要高得多。

最后想说的是,作为程序员,一定要跟上当前AI的时代,既不要听信什么AI能取代程序员,也不要排斥使用AI工具,因此对于AI要保持一个客观的态度,多使用一段时间就能差不多感知到模型能力的边界,自然就能很好的利用好它来提升自己工作的效率。

相关推荐
伊一大数据&人工智能学习日志3 分钟前
自然语言处理NLP 04案例——苏宁易购优质评论与差评分析
人工智能·python·机器学习·自然语言处理·数据挖掘
刀客1238 分钟前
python3+TensorFlow 2.x(六)自编码器
人工智能·python·tensorflow
大模型之路24 分钟前
Grok-3:人工智能领域的新突破
人工智能·llm·grok-3
闻道且行之44 分钟前
LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型
人工智能·语言模型·llama·qlora·fsdp
喝不完一杯咖啡1 小时前
【AI时代】可视化训练模型工具LLaMA-Factory安装与使用
人工智能·llm·sft·llama·llama-factory
huaqianzkh1 小时前
理解构件的3种分类方法
人工智能·分类·数据挖掘
后端码匠1 小时前
Spring Boot3+Vue2极速整合:10分钟搭建DeepSeek AI对话系统
人工智能·spring boot·后端
用户231434978141 小时前
使用 Trae AI 编程平台生成扫雷游戏
人工智能·设计
神经美学_茂森2 小时前
神经网络防“失忆“秘籍:弹性权重固化如何让AI学会“温故知新“
人工智能·深度学习·神经网络
大囚长2 小时前
AI工作流+专业知识库+系统API的全流程任务自动化
运维·人工智能·自动化