claude code+openspec开发java代码基本流程

news/2025/11/3 21:58:35/文章来源:https://www.cnblogs.com/gyc567/p/19188409

0️⃣ 准备:一次装好,终身可用

# 1. 装 Node ≥20
node -v                      # 出现 v22+ 就行# 2. 装 OpenSpec(规范驱动)
npm i -g @fission-ai/openspec@latest# 3. 装 Claude Code(AI 编码)
npm i -g claude-code@latest

1️⃣ 需求阶段:写 1 句话 → 自动生成 feature

# 进入你的 Maven/Gradle 项目根目录
cd my-java-project# 初始化 OpenSpec(一路回车即可)
openspec init                # 选 Claude Code,让它帮你写 project.md# 写需求(用大白话也行)
echo "用户登录:输入正确账号密码能进首页" > login.req# 1 条命令:需求 → proposal.md + tasks.md + xxx.feature
claude-code --prompt "请把 login.req 转成 BDD 场景,输出到 src/bdd/resources/login.feature"

✅ 完成后你会看到:

  • openspec/changes/login/proposal.md(需求说明)
  • src/bdd/resources/login.feature(Given/When/Then 场景,直接能跑)

2️⃣ 实现阶段:AI 读场景 → 生成代码 + 单测

# 让 Claude 先读 feature 再写代码(TDD 模式)
claude-code --prompt "按 login.feature 生成:1. StepDefinition 文件2. 对应的 LoginPage/LoginService 代码3. JUnit5 单元测试4. 确保 mvn test 能直接通过"

⚠️ 它会问你是否写入,回车 3 次即可。
生成后目录示例:

src/test/java/steps/LoginStepDef.java  
src/main/java/service/LoginService.java  
src/test/java/service/LoginServiceTest.java

3️⃣ 验收阶段:跑测试 → 出 Allure 漂亮报告

# 跑一次(并行+报告)
mvn test -Dcucumber.features=src/bdd/resources \-Dcucumber.plugin=io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm \-Dcucumber.execution.parallel.enabled=true# 2 秒后看报告
mvn allure:serve

浏览器自动打开,产品经理也能看懂每条场景红/绿。


4️⃣ 归档阶段:一键封存,随时回滚

# 把「需求+代码+测试+报告」一起打 Tag
openspec archive login --yes# 想看历史
openspec list archive

以后出问题,直接 git checkout v2025-11-03-login 就能回到当时的「三源合一」状态。


5️⃣ 常用 12 行命令速查表

目的 复制即用
初始化 openspec init
写需求 echo "描述" > xxx.req
需求→feature claude-code --prompt "把 xxx.req 转成 feature"
场景→代码 claude-code --prompt "按 xxx.feature 生成 StepDef+业务代码+单测"
本地跑 mvn test -Dcucumber.features=xxx
看报告 mvn allure:serve
归档 openspec archive xxx --yes

6️⃣ 小白常问的 3 个问题

  1. 不会写 Maven?
    用 Spring Initializr 选 Web + JUnit5 即可,其余命令照抄。
  2. 不会写需求?
    把产品经理的原话粘进 .req 文件,AI 会帮你润色成规范。
  3. 怕把代码搞坏?
    全程在 Git 分支里玩,随时 git restore . 回退。

🎉 恭喜你!10 分钟已经体验了一遍「规范驱动开发」:
需求一句话 → AI 帮你写场景 → AI 帮你写代码 → CI 出报告 → 一键归档。
下次只要换一行需求描述,剩下的再跑一遍脚本即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C】结构体赋值

结构体赋值 例如: #include <stdio.h> #include <string.h>struct Inner {int x;char name[20]; };struct Outer {int id;struct Inner inner; }; 初始化赋值(定义时): struct Outer o1 = {.id = 1,.i…

Office 2024 专业增强版下载安装教程:安装/下载/激活/全流程教程

大家好!最近总有朋友问 “Office 2024 专业增强版怎么装”“在哪能下安全的 Office 2024 安装包”,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装的配置要求,到安全下载 Office 20…

Office 2024 专业增强版下载安装教程:安装/下载/激活/全流程教程

大家好!最近总有朋友问 “Office 2024 专业增强版怎么装”“在哪能下安全的 Office 2024 安装包”,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装的配置要求,到安全下载 Office 20…

模拟赛 29

T1模拟即可,请输入文本。点击查看代码 #include<bits/stdc++.h> #define MAXN 10005 #define int long long using namespace std; const int inf=1e18; string tmp,ans[20]; int T,n,cnt,pos; char c[1005]; s…

11.3阅读笔记

​​1. 变化是必然的:拥抱“柔性”设计​​ “柔性设计”不是指设计能预测所有变化,而是指当变化来临时,​​修改所造成的连锁反应被降到最低​​。这直接回到了我们10月份讨论的​​正交性​​和​​DRY原则​​。…

fhq treap笔记

fhq(范浩强) treap 基本的操作就是split以及merge 需要pushup来维护siz属性的正确性 split分为按val以及按rank 用kth来得到第k个数的值 反过来,如果是一个排列的话,可以用维护出来的每个节点的fa以及pos来得到排名…

K8S最全详解 - 智慧园区

K8S K8S,全程是“Kubernetes”,是一个开源的容器编排平台,用于自动化应用的 部署、扩展和管理。 K8S,最早由 Google 开发,后捐赠给 CNCF,如今已经成为 云原生领域的事实标准。 K8S 解决了在生产环境中管理大量容…

11/3

今天下午Java考试,惊险度过

ICPC2025 武汉站 游记

rk11-北京大学-请输入文本 Pre 贵校的竞争还是太激烈了,在前两次选拔赛打炸的情况下最后一场极限翻盘,苟到了一个 ICPC 区域赛名额。 参加的网络赛 2 因为某个队友睡过头了所以只有两个人,打的也一坨,喜提 #161。 …

25.11.03

AGC003E 哎我好菜怎么这个题卡半天。 首先想到可以把 \(a_i\) 单调栈干掉,然后倒着扫求出前面要重复多少次。 但是会剩下一段,需要单独做。 先不要想太复杂,考虑如何暴力,因为额外部分只关心长度和次数,因此设计一…

win10安装neo4j-community-3.5.7-windows

win10安装neo4j-community-3.5.7-windows 1、下载neo4j-community-3.5.7-windows下载地址:https://we-yun.com/doc/neo4j/选择对应版本的文件,下载, 2、配置环境变量NEO4J_HOME D:\neo4j-community-3.5.7 Path:%NE…

工作感受月记(202511月)

2025年11月03号 月初工作第一天,也是第一周,遇事较多,全是请假半天做。 周一见同学,请假一下午,周二去上海,欢送老板会。周三回成都,约见唐老师。周六需考试,软件设计师。 今日工作事项: 1/ 与yuki进行app se…

基于Blocking queue的生产消费模型

file: BlockQueue.hpp: #pragma once #include<pthread.h> #include<cassert> #include<queue> const int maxsize=5; template<class T> class BlockQueue{ public:BlockQueue(){int n;n=pth…

React中useContext的基本使用和原理解析

React 中 useContext 的使用方法 在 React 中,useContext 是一个内置的 Hook,用于在函数组件中轻松访问 Context(全局公共状态),避免了手动逐层传递 props 的复杂性。它依赖于 Context API,通过 Provider 提供数…

JDK的安装过程

第一步:右击“此电脑”,在显示的菜单中单击“属性”,在“系统信息”中点击“高级系统设置” 第二步:在弹出的“系统属性”对话框中,选择“高级”选项卡中的“环境变量” 第三步:在弹出的对话框中,单击“系统变量…

阅读笔记0

第3章:基本工具 强调善用工具能大幅提升效率,工具是程序员的“第二双手”。文本编辑器:不止是打字,要熟练使用快捷键、自定义配置,甚至通过插件扩展功能(如代码补全、语法检查)。 ​ 版本控制:用Git等工具管理…

File文件操作

路径用//或者\ file可以代表文件也可以代表文件夹文件对象路径可以写相对路径也可以写绝对路径,相对路径默认是是从当前文件的项目名称下寻找 从javatest下找createnewfile创建完文件会返回true exist同理 调用方法都是…

越南航空数据泄露事件深度解析

2025年越南航空遭遇重大数据泄露事件,730万客户信息遭黑客组织窃取,包括邮箱、姓名、电话号码等敏感数据。本文详细分析事件经过、受影响数据类型及防护建议。越南航空数据泄露事件 事件概述 2025年10月,自称"…

P11261 [COTS 2018] 直方图 Histogram

P11261 [COTS 2018] 直方图 Histogram 题解看了这篇题解懂了的,大家也可以去看看。 以及,后来自己想出来了单调栈解法,看题解里似乎没有这个解法,所以交一发题解。题目传送门 欢迎光临我的博客 1.笛卡尔树做法 如果…

2025csp-j游记(废物版)

"生活就是在迷茫中前进" 11月1日周六考的试,周一已经有点忘了。。 DAY 初赛 j组初赛自我感觉良好,就是考完前几分钟ccf突然改代码,但只是加了个int n难绷。s组感觉自己没开智。更绝望的是隔壁班有个gesp保…