AI时代,一个Skill如何让Java项目结构自动化?

关注我的公众号:【编程朝花夕拾】,可获取首发内容。

01 引言

AI编程已经慢慢普及,各大自媒体、博主、UP主都在聊AI编程这件事。简单来讲就是使用好的模型通过,自然语言完成对模型的命令,自动完成代码编写以及问题的解决。

但是,在测试过程中AI怎么知道我的项目结构或者说新创建的类应该放在哪个包下。已有的项目我们可以通过AI理解,新项目就有点无所是从了。由于大部分开发都是团队协作,规范很重要。于是,想通过Skills的方式来规范项目结构。

02 安装Skills

创建skills的时候,我们可以直接通过AI生成。但是现成的skills我们也要使用。

anthropics提供了很对实用的skills,涉及docpdfpdfweb等。

其中一个辅助技能skill-creator专门为我们创建标准的skills

项目地址:github.com/anthropics/...

我们将需要的技能安装到自己的变成助手上即可使用。我这里使用的是OpenCode,完全兼容claudeCode

由于我这里使用的OpenCode的桌面端,我将手动下载是所有的skills,并复制到C:/Users/{user.name}/.claude/skills下。

我们检查是否已经安装成功。

通过/的方式就可以看到已经安装的skills

03 创建skills

3.1 下达任务

同样我们通过提示词的方式。

markdown 复制代码
我要创建一个skills,对于java包路径的规范,如基础包为com.simonking,后面的跟下项目名,如boot-skills,最后的包名为com.simonking.boot.skills
包的具体类:
常量类包:constant
枚举类包:enums
参数传输类包:dto
数据库映射包:model
接口包:service
实现类:service/impl
工具类:util
控制类:controller
配置类:config
异常类:exception
消息类:mq
拦截器:interceptor
过滤器:filter
数据展示层:vo
数据库交互层:mapper

注意:
1、包路径如果重复自动去重

为了清楚的知道AI是否会使用skill-creator,我们使用plan模式。在该模式下,AI不能修改任何文件。

我们可以看到,确实加载了skill-creator

3.2 确认问题

分析完之后,AI有几个问题需要向我们确认。

我们需要按照标号回答问题:

markdown 复制代码
1、基础包固定,项目根据当前工程名称获取,有具体类时才生成对应的包,或者项目中需要增加时按需增加 
2、包名全部小写,尽量用单数形式,如果与关键词冲突使用复数形式代替
3、前后两个包名重复时去重,如boot.boot -> boot
4、需要

3.3 build模式创建

如果没有问题,这个时候就可以打开build模式,进行创建了。

AI执行了三个任务,这个时候,我们只需要等到结果即可。

创建完成之后,我们会发现skills默认安装在了全局变量下:

C:/Users/{user.name}/.claude/skills/java-package-convention/

3.4 验证

创建完成之后,AI给出了四个测试用例,会问我们要不要测试验证,我们验证一下:

验证结果

到这里我们的skills就已经穿创建成功了。

04 项目测试

创建的skills名称AI取名为java-package-convention

skills实战有没有效果,我们还需要实际验证。我们通过一个小项目测试一下,同样切换为Plan模式。

4.1 下达任务

提示词:

markdown 复制代码
创建一个springboot项目,完成用户的查询功能。

4.2 确认问题

提示词:

markdown 复制代码
1、是的
2、用户字段包括id、username、password、age
3、mysql + MyBatis Plus
4、是的
5、核心代码文件

确认问题,然后切换为build模式

4.3 项目测试

我们可以看到AI制定了8个任务,我们静等结果即可。

创建完成之后,我们可以看到项目结构:

非常符合我的要求。

由于skills的名字java-package-convention太长,我重名为java-pkg-gen

java-pkg-gen我已经上传到GitHub上,有需要的自取。

GitHub地址github.com/simonking-w...

05 小结

AI编程可能最大的挑战就是不稳定,无论是切换模型还是AI幻觉等,可以通过skills的方式一定程度上可以得到改善。

相关推荐
闻哥2 小时前
MySQL三大日志深度解析:redo log、undo log、binlog 原理与实战
android·java·jvm·数据库·mysql·adb·面试
indexsunny2 小时前
互联网大厂Java面试实战:从Spring Boot到微服务架构的音视频场景解析
java·spring boot·spring cloud·mybatis·spring security·jwt·flyway
IT_陈寒2 小时前
Redis 缓存击穿 vs 雪崩:5个实战方案让你的系统稳如磐石
前端·人工智能·后端
spring2997922 小时前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
小江的记录本2 小时前
【会话:Cookie与Session】Cookie与Session的区别(附对比表)
java·数据库·后端·sql·http·https·安全架构
凤山老林2 小时前
Tomcat 高高在上?0-1 实现一个简单的 WEB 容器
java·后端·tomcat·web容器
_BugMan2 小时前
【SSE】
java·servlet·tomcat
014-code2 小时前
kafka + springboot快速入门
java·spring boot·分布式·kafka
窝子面2 小时前
一、用户系统
后端