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的方式一定程度上可以得到改善。

相关推荐
2601_962071574 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491114 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
东风破_6 小时前
从跨域到 WebSocket:前端跨域方案、SSE 与双向实时通信详解
前端·后端
zww89491117 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
行百里er7 小时前
Gateway 上别硬塞 MVC:DeferredImportSelector 看菜下锅
spring boot·后端·开源
名字还没想好☜7 小时前
Java 遍历时删元素抛 ConcurrentModificationException:fail-fast 原理与三种正确删法
后端
kyriewen8 小时前
GPT-6 发布当晚,三大 AI 集体宕机 4 小时——我扒完时间线,发现最该慌的不是宕机
人工智能·程序员·ai编程
IT_陈寒8 小时前
React Hooks闭包陷阱差点让我加班到凌晨
前端·人工智能·后端
黑马程序员毕设8 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳8 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法