靈碼產品演示: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
英文地址,請注明出處:http://en.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;都能借助流程圖讓復雜信息變得清晰易懂。但面對市面上五花八門的流程圖工具&#…