乐于分享
好东西不私藏

使用IDEA的Qoder插件,基于OpenSpec实现网关应用支持cookie的功能

使用IDEA的Qoder插件,基于OpenSpec实现网关应用支持cookie的功能

    之前我一直用的通义灵码辅助我进行AI编程。但一直都是小需求,小功能。比如修改一个函数,重构之类的。都是一些比较确定性的需求,本身我自己也知道怎么写,只是通过AI快速帮我开发。当实际的需求,往往都要进行深挖,澄清的。就像是你将工作分担给同事,需要和他进行沟通,等他们全部了解后,他才能开始代码实现。这种可以通过OpenSpec方式进行编程,通过需求澄清,让AI更好地了解你的需求,产出技术文档,你确认后,最后才进行代码实现。由于我没在通义灵码中找到如何支持OpenSpec。于是我使用了Qoder。
Qoder插件安装
    Qoder也是阿里出品的智能体编程工具,官方地址为qoder.com。官方页面如下。
    它提供了IDE(基于vscode),但我不习惯用基于vscode,所以只下载了它的JetBrains插件。
可以在IDEA中,settings-> plugins里搜索“Qoder”来找到这个插件,然后点击Install进行安装。
安装完成后,就在IDEA右侧看到了qoder的图标。下边有一个Sign in的登录按钮。
点击Sign in按钮,会打开浏览器,提示你进行登录。注册下,登录成功后,就完成了。
重新回到IDEA,你可以看到下面的图片,可以开始和AI进行交互了。
输入一个/,发现可以看到一些内置的命令。不过这不是我今天要使用的。
OpenSpec安装
    OpenSpec是一个github的开源项目,可以通过如下npm命令进行安装。
安装完成后,在IDEA对应的项目中执行“openspec init“
在Terminal中会出现如下提示
按一个回车键,选择OpenSpec要作用的工具,这里用上下键选择Qoder,然后按空格键选中。
OpenSpec只对一个项目生效,每个项目要重新执行openspec init。配置好后,会在项目下多一个.qoder目录,出现了几个技能文件。可以不用管它。在右边对话框中,输入/,可以看到已经多出了几个命令。
  • explore:通过这个命令,可以和AI进行沟通,进行需求澄清
  • propose:生成技术文档,设计文档,任务文档等markdown文档
  • apply:生成代码
  • archive: 存档
基于OpenSpec生码
    比如我要在Fudy Shop的网关应用中,支持dubbo服务端返回cookie的功能。我在qoder的对话框中输入我的需求。
内容如下。
这时,AI不会马上写代码了,它会先对你的需求进行了解,然后把它的理解和方案呈现给你。
以下是AI对我刚才需求的思考过程
如果有需要澄清的,你只需回答它即可。下面我将我的回答放在propose命令后面,让AI直接生成设计文档。
可以看到Qoder已经开始创建设计文档了。
出现一些命令,需要你确定权限的地方,点击”Run”按钮即可。
接下来就是一个个文档的确认。
文档生成完成后,再执行apply命令,AI就开始写代码了。
最终的代码
看了下AI最终生成的代码,在网关的执行、debug方法中都加入了handleCookiesFromRpcContext的方法。我的需求里只选中了execute方法,debug方法是在我执行expore命令时,AI向我提问是否要实现的,我回答了是,它就帮我生成了。
该方法,是从rpc返回结果中,获取Cookies字段,然后解析字段内容
这个方法是将解析出的字段,设置到用户的response里。
下面是处理sameSite的逻辑。这部分原本也不是我需求里的,是AI向我提问后,我回答需要考虑sameSite,它帮我生成的。
下面这是处理标准的cookie