灵码产品演示:Maven 示例工程生成

作者:轻眉

演示主题:由 AI 自动生成 0 到 1 的电商订单 Java 项目

演示目的

面向 Java 零基础的用户,通过灵码的产品能力(如提示词、编码智能体、项目 Rules 和 SQLite MCP 服务、单元测试)自动生成 0 到 1 的电商订单 Java 项目,使用 Maven 作为构建工具。

演示准备

1. 安装 JetBrains IDE

版本号 2020.3 及以上。Lingma IDE:通过安装包下载安装。参考:https://help.aliyun.com/zh/lingma/user-guide/installation-and-login-guide/

2. 安装本地 Maven 工具

https://maven.apache.org/download.cgi,或者使用 brew 安装 Maven。

注:未提前安装,灵码智能体编译运行时,自主检查 Maven 环境和依赖,会自主修复安装下载依赖。

3. 安装最新的灵码插件

image

注:也可以直接使用灵码 IDE(https://lingma.aliyun.com/download)

4. 安装简单实用的数据库 SQLite3

brew install sqlite3

5. 安装 uvx

pip install uvx

这里需要注意 python 的环境 3.12 及以上,建议用 pipenv/poetry(https://python-poetry.org/)等配置 python 的环境变量。确保 uvx 安装正确,信息参考如下:

image

6. 安装 mcp-server-sqlite

uvx install  mcp-server-sqlite

7. 创建演示目录和 SQLite 数据库文件

在项目所在根目录下创建演示目录,mkdir< dir >,例如,在 /Users/yuxiao/Downloads/ 下创建 0713demo:

mkdir /Users/yuxiao/Downloads/0713demo

在该目录下创建数据库文件 “test.db”

cd < dir >,例:

cd /Users/yuxiao/Downloads/0713demo
touch test.db

8. 在灵码插件中,配置 mcp-server-sqlite 服务

image

通过 json 配置更改来添加插 MCP 插件。

image

添加如下内容:

"mcp-server-sqlite": {"autoApprove": [],"disabled": false,"timeout": 60,"command": "mcp-server-sqlite","args": ["--db-path","/Users/yuxiao/Downloads/0713demo/test.db"],"transportType": "stdio"
},

注:/Users/yuxiao/Downloads/0713demo/路径改成您实际创建 test.db 所在的绝对路径。

演示步骤

1. 在 IDE 中创建一个新的空工程

以下以 IDEA 为例:

image

image

2. 打开灵码,使用 agent 模式,模型选择“qwen3-thinking”

注:这里也可换成 qwen3-coder,作为新手推荐 qwen3-thinking,可以学习分析思考过程。

image

3. 创建一个空的 Maven 工程

输入 prompt:“生成一个 maven 工程”

image

灵码编码智能体自动生成一个基础的 Maven 工程结构,包含标准目录和 pom.xml 配置。

image

该初始化 Maven 工程包含:

  • 标准的 Maven 目录结构
  • 基础 pom.xml 配置(含 JUnit 5 依赖)
  • 简单的 Java 主程序
  • 对应的测试类

注:灵码智能体自动生成的项目目录和代码,每次执行结果不会完全一模一样!本文中的内容是作者做 demo 生成的效果,作为示例参考。

4. 创建电商订单场景的实体类

输入 prompt:“构建一个电商定单的 entity 的类,包含最基础的字段。”

image

灵码编码智能体自动生成 Order 实体类,该 Order 实体类包含以下核心字段:

  • orderId - 订单唯一标识
  • userId - 关联用户系统
  • productId - 关联商品系统
  • quantity - 购买数量
  • totalAmount - 订单总金额(使用 BigDecimal 避免精度问题)
  • status - 订单状态(建议用枚举类型增强可读性)
  • 时间相关字段:创建时间、支付时间、更新时间

5. 初始化函数

输入 prompt:“初始化函数。”

image

灵码编码智能体自动生成两个构造函数:全参数构造函数和基础字段构造函数,包含自动初始化逻辑。

  • 全参数构造函数:支持所有字段的自定义初始化
  • 基础字段构造函数:仅需提供核心业务字段即可创建订单对象
  • 智能默认值:
    • 状态字段自动初始化为 0(待支付),
    • 创建时间自动设置为当前时间,
    • 空值防护:对可能为 null 的参数进行了空值检查。

6. 提供增删改查的业务逻辑

输入 prompt:“提供增删改查的函数。”

image

灵码编码智能体自动创建订单的增删改查功能,包含以下组件:

数据访问层(DAO):OrderDAO.java

  • 创建 OrderDAO 类,包含存储数据的 Map。

业务服务层(Service):OrderService.java

  • 实现 createOrder 方法,添加新订单。
  • 实现 getOrder 方法,根据 ID 获取订单。
  • 实现 updateOrder 方法,更新现有订单。
  • 实现 deleteOrder 方法,移除订单。

总结:该操作的提示词,没有明确指明数据库类型,AI 实现方案为提供一个简单的 DAO 实现,模拟内存操作。在方案最后,会建议用户将内存存储替换为真实的数据库持久化。

7. 数据持久化到 SQLite 数据库中

输入 prompt:“数据库为 sqlite,在 test.db 中创建 order0713 订单表。”

image

灵码编码智能体自动完成 SQLite 数据库表创建和持久化功能,包含以下内容:

  • 在 test.db 中创建了 order0713 表,字段对应 Order 类属性
  • 添加了数据库连接工具类 DBUtil,用于获取 SQLite 数据库连接
  • 扩展了 OrderDAO 实现数据库持久化功能,包含表结构初始化、数据加载和保存方法
  • 在 pom.xml 中添加了 SQLite JDBC 依赖和 Java 时间 API 注解支持

8. 编译并运行

输入 prompt:“编译并运行。”

image

编译过程中遇到各类问题,智能体自动修复。

image

多轮修复后,再重新编译。

image

运行成功,若有问题,继续自动修复。

image

9. 按企业规范生成单元测试

创建项目的 rules:

在灵码高级设置中,添加 project_rule.md 文件。

image

自动添加目录和默认文件。

image

按企业单测生成规范,编辑 rule 文件,如下:

image

选中要单测的函数,右键生成单元测试。

image

灵码编码智能体自动生成单测方案,方案满足项目中定义单测的rule规范。

一、被测函数分析

被测函数:OrderService.createOrder(Order order)

该函数主要完成以下功能:

  • 对订单对象进行业务校验:
  • 检查购买数量是否大于 0
  • 检查订单金额是否大于 0
  • 调用数据访问层的 createOrder 方法创建订单。

二、分支分析

正常分支:

  • 订单数量>0且订单金额>0,调用 orderDAO.createOrder 返回 true
  • 订单数量>0且订单金额>0,调用 orderDAO.createOrder 返回 false

异常分支:

  • 订单数量<=0,抛出 IllegalArgumentException
  • 订单金额<=0,抛出 IllegalArgumentException

三、测试用例分析

image

灵码编码智能体按以上方案生成单测用例:

image

10. demo 工程的架构解读及视图

输入 prompt:“介绍该工程架构,技术栈,业务流程,并画出 Plantuml 架构图。”

灵码编码智能体生成:该工程是一个典型的 Java 项目,使用了 Maven 作为构建工具。项目的目录结构遵循标准的 Maven 布局,其中 src/main/java 包含了所有的源代码,而 src/test/java 则存放了测试代码。项目中包含了一些基本的类如 App.java, DatabaseConnection.java, Order.java, OrderDao.java, 和 OrderService.java,以及一个测试类OrderServiceTest.java。

技术栈

  • 编程语言:Java
  • 构建工具:Maven
  • 数据库连接:可能使用 JDBC 或其他 ORM 框架(具体实现未给出)
  • 单元测试:JUnit 5

业务流程

  • App.java:可能是应用程序的入口点。
  • DatabaseConnection.java:处理与数据库的连接。
  • Order.java:表示订单的模型类。
  • OrderDao.java:数据访问对象,负责与数据库交互以获取或存储订单信息。
  • OrderService.java:服务层类,可能包含业务逻辑来处理订单。
  • OrderServiceTest.java:对 OrderService 类中的方法进行单元测试。

PlantUML 架构图

  • 以下是该项目的一个简单 PlantUML 架构图:

image

输入 prompt:“以创建订单为例,分层介绍业务流程。”

灵码编码智能体生成:

image

注:安装 PlantUML 插件,或者拷贝 PlantUML 代码到 PlantUML 官网进行展示。

结束语

目前受限于模型的能力,智能体编译运行时需要多次修复才能编译运行通过,当出现多次不能编译成功时,可以通过优化提示词或人工干预做局部修改。

生成的样例工程如下:https://tongyi-code.oss-cn-hangzhou.aliyuncs.com/assets/0708V1unit_test_success.zip

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

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

相关文章

AI编程从0-1开发一个小程序

小伙伴们&#xff0c;今天我们利用AI实现从0到1开发一个小程序&#xff01;需求交给AI&#xff1a; 我们只要说出自己的开发思路&#xff0c;具体需求交给AI完成&#xff01;输入提示词&#xff1a;个人开发的小程序 能开发哪些好备案&#xff0c;用户喜欢使用的 AI给出…

DDoS高防IP是什么? DDoS攻击会暴露IP吗?

DDoS高防IP是什么&#xff1f;高防IP是指一种网络安全服务&#xff0c;主要用于防御DDoS攻击。随着技术的发展&#xff0c;黑客进行网络攻击的强度也在加大&#xff0c;所以我们要做好网络防护&#xff0c;及时预防DDoS攻击。DDoS高防IP是什么&#xff1f;DDoS高防IP是指基于IP…

k8s事件驱动运维利器 shell operator

Shell-Operator 概述 Shell-Operator 是 Kubernetes 的一个工具&#xff0c;用于通过 shell 脚本扩展集群功能。它允许用户编写简单的脚本&#xff08;Bash、Python 等&#xff09;来响应 Kubernetes 事件&#xff08;如资源变更、定时任务&#xff09;&#xff0c;无需编译复…

(二)文件管理-文件权限-chmod命令的使用

文章目录1. 命令格式2. 基本用法2.1 符号模式2.2 八进制数字模式3. 高级用法3.1 递归操作3.2 参考权限3.3 特殊权限位(Setuid, Setgid, Sticky Bit)3.4 X 特殊执行权限4. 注意事项4.1权限与所有权4.2 Root 权限4.3 安全风险4.4 -R 的风险4.5 目录的执行权限1. 命令格式 chmod …

医院预约挂号脚本

医院预约挂号脚本 功能介绍 本脚本是一个用 Python 编写的医院预约挂号程序&#xff0c;支持以下功能&#xff1a; 自动预约&#xff1a;通过api交互选择医院、科室、医生和时间段。自动监控&#xff1a;持续检查指定医生的号源状态&#xff0c;发现可预约时段时自动尝试预约。…

.NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)

在使用MudTools.OfficeInterop.Word库进行Word文档自动化处理时&#xff0c;深入理解Word对象模型的核心组件是至关重要的。Word对象模型提供了一套层次化的结构&#xff0c;使开发者能够通过编程方式控制Word应用程序、文档以及文档内容。本章将详细介绍Word对象模型中最核心的…

Kotlin在医疗大健康域的应用实例探究与编程剖析(上)

一、引言 1.1 研究背景与意义 在当今数字化时代,医疗行业正经历着深刻的变革。随着信息技术的飞速发展,尤其是人工智能、大数据、物联网等新兴技术的广泛应用,医疗行业数字化转型已成为必然趋势。这种转型旨在提升医疗服务的效率和质量,优化医疗资源配置,为患者提供更加…

AI智能体的应用前景

AI智能体的应用前景正从技术探索迈向规模化落地的关键阶段,其发展动力源于大模型能力的突破、行业需求的深化以及商业化模式的创新。以下是基于最新技术动态和行业实践的深度解析: 一、技术突破:从「有脑无手」到「知行合一」 大模型的进化显著提升了智能体的多模态交互与…

高系分四:网络分布式

目录一、我的导图和思考二、大模型对我导图的评价优点可优化之处三、大模型对这章节的建议一、网络知识范畴&#xff08;一&#xff09;网络基础理论&#xff08;二&#xff09;局域网与广域网&#xff08;三&#xff09;网络安全&#xff08;四&#xff09;网络性能优化&#…

Day24_【深度学习(1)—概念】

一、AI、ML、DL基本关系 机器学习是实现人工智能的途径&#xff0c;深度学习是机器学习的一种方法。人工智能 (AI)↓ 机器学习 (ML) —— 让机器从数据中学习规律↓ 深度学习 (DL) —— 使用深层神经网络的机器学习方法二、深度学习与机器学习概念深度学习&#xff08;Deep Lea…

VTK基础(01):VTK中的基本概念

VTK中的基本概念 1.三维场景中的基本要素 三维场景的基本要素包含&#xff1a;灯光、相机、颜色和纹理映射 (1)灯光vtkLight 光的本质是特定频段的电磁波&#xff0c;所以灯光的本质是特定频段&#xff08;可见光频段&#xff09;的电磁波发射器&#xff1b;依据发射可见光频段…

LeetCode 2348.全0子数组的数目

给你一个整数数组 nums &#xff0c;返回全部为 0 的 子数组 数目。 子数组 是一个数组中一段连续非空元素组成的序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,0,0,2,0,0,4] 输出&#xff1a;6 解释&#xff1a; 子数组 [0] 出现了 4 次。 子数组 [0,0] 出现了 2 次。…

【wpf】从 DataContext 到依赖属性:WPF 自定义控件 ImageView 的优化之路

从 DataContext 到依赖属性&#xff1a;WPF 自定义控件 ImageView 的优化之路 最近我在做一个 WPF 项目&#xff0c;需要封装一个 ImageView 控件&#xff0c;用来显示图像并处理鼠标交互。 在实际开发中&#xff0c;我遇到了一系列和 数据绑定 有关的问题&#xff1a; 控件需要…

人力资源管理的思维方式学习笔记2

战略人力资源管理的思维方式——北京师范大学政府管理学院——王建民 教授3.1.理念&#xff1a;人力资源是第一战略资源 我们先来了解海尔集团公司实施发展战略的情况。海尔集团创立于1984年&#xff0c;根据官方网站的介绍&#xff0c;目前是一家全球领先的美好生活解决方案服…

汽车网络安全 CyberSecurity ISO/SAE 21434 测试之一

一、什么是网络安全&#xff1f; 在智能网联和自动驾驶技术进入汽车行业之前&#xff0c;功能安全 一直是汽车开发的核心。 简单来说&#xff0c;功能安全的目标是确保车辆的系统在出现故障时&#xff0c;不会对人、环境或者设备造成危害。比如&#xff0c;刹车失灵了&#xff…

力扣(LeetCode) ——217. 存在重复元素(C++)

题目&#xff1a;217. 存在重复元素 示例1&#xff1a; 输入&#xff1a; nums [1,2,3,1] 输出&#xff1a; true 解释&#xff1a; 元素 1 在下标 0 和 3 出现。 示例2&#xff1a; 输入&#xff1a; nums [1,2,3,4] 输出&#xff1a; false 解释&#xff1a; 所有元素都…

Redis 高可用与集群原理

Redis 高可用与集群原理1. 前言 Redis 单机虽然高性能&#xff0c;但一旦节点宕机&#xff0c;数据丢失或服务不可用问题会非常严重。为了解决这一问题&#xff0c;Redis 提供了 主从复制、哨兵&#xff08;Sentinel&#xff09;、Cluster 集群 等高可用机制。 这一篇文章我们重…

Oracle OCP认证考试题目详解082系列第31题

考察知识点:SET VERIFY ON命令 英文题目 Which two statements are true about the SET VERIFY ON command? A.It displays values for variables prefixed with && B.It displays values for variables created by the DEFINE command C.It can be used in SQL Dev…

【WebSocket✨】入门之旅(五):WebSocket 的安全性

本篇文章将讲解 WebSocket 的安全性&#xff0c;特别是如何防止常见的 WebSocket 安全漏洞&#xff0c;如中间人攻击&#xff08;MITM&#xff09;、XSS、CSRF 等。我们将介绍如何使用 wss:// 协议保障数据传输的安全&#xff0c;并给出一些安全最佳实践&#xff0c;帮助你在使…

流程图用什么工具做?免费/付费工具对比,附在线制作与下载教程

在日常工作和学习中&#xff0c;流程图是一种高效的可视化工具——项目开发时梳理需求逻辑、业务推进中拆解步骤节点、学术研究里呈现论证框架&#xff0c;甚至是生活中规划旅行路线&#xff0c;都能借助流程图让复杂信息变得清晰易懂。但面对市面上五花八门的流程图工具&#…