作者:陳榮健
IDEA + 通義靈碼AI程序員:快速構建DDD后端工程模板
在軟件開發過程中,一個清晰、可維護、可擴展的架構至關重要。領域驅動設計 (DDD) 是一種軟件開發方法,它強調將軟件模型與業務領域緊密結合,從而構建更貼近業務需求的系統。本文將介紹如何利用 IntelliJ IDEA 編輯器和阿里云的通義靈碼 AI 程序員,快速搭建一個基于 DDD 領域驅動架構的后端工程模板,作為其他工程的初始化工程。
一、準備工作
1.IntelliJ IDEA 安裝: ?確保已安裝 IntelliJ IDEA,推薦使用最新版本。本文基于IntelliJ IDEA 2024.3.3 (Community Edition)進行演示。
下載地址:https://www.jetbrains.com/idea/download/?section=windows
2.JDK 安裝: ?確保已安裝 JDK 8 或以上版本。本文使用版本為23.0.2
java version "23.0.2" 2025-01-21
Java(TM) SE Runtime Environment (build 23.0.2+7-58)
Java HotSpot(TM) 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)
3.Maven 安裝: ?這里使用 Maven 作為項目構建工具,并配置好環境變量。
C:\Users\17217>mvn -v
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: E:\install\apache-maven-3.9.9
Java version: 23.0.2, vendor: Oracle Corporation, runtime: E:\install\Java\jdk-23
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
二、安裝阿里云的通義靈碼插件
1.在 IntelliJ IDEA 中安裝阿里云的通義靈碼插件。可以通過?File -> Settings -> Plugins
?搜索 “通義靈碼” 并安裝。已經安裝過了的話,則會提示升級,我們升級到最新版2.1.0,便可以使用AI程序員了
安裝通義靈碼
三、登錄通義靈碼
插件安裝成功后,會自動彈出登錄提示,我們根據提示完成登錄即可,可以直接使用支付寶或者手機號完成登錄
登錄通義靈碼
四、功能介紹
如圖,我們可以點擊通義靈碼的圖標,我的再右上測。可以看到可以進行智能問答和AI程序員,輸入區域左下角可以選擇基礎模型。可以看到我們的基礎模型已經有我們最近火的一塌糊涂的deepseek r1,但只能智能問答。AI程序員的話,目前只支持deepseek v3和qwen-2,5
功能介紹
五、何為AI程序員
打個比方,他就是甘愿為你做牛做馬的員工,絕不會撒手不干,更不會離你而去!嘻嘻!在公司當牛馬的你,回到家后,你可以當老板來吆喝它來給你干活,只要你會說人話,他就能吭哧吭哧的給你不知疲倦的干活了!這不,加班回來后,發泄下,充當老板來指揮員工干活,不然睡不著么!
六、老板開始指揮員工干活了
1. 給員工提需要
1.請你基于當前目錄,基于springboot+maven快速構建DDD領域驅動架構后端工程模板,并確保工程創建完后可以成功運行
2.工程模板構建成功后,請基于springAI框架,編寫一個可以調用Deepseek r1大模型的API,并確保API編寫完成,啟動工程后,可以通過postman工具進行成功調用
如下,點擊發送后,靜靜的等待它給你完成編碼即可,編寫完成后,我們只要點擊接受即可
給AI程序員提需求
生成了以下項目目錄,可以看出來他雖然吭哧吭哧的在右邊生成了這個目錄,但是實際上工程創建時,并沒有按照他說的這個目錄結構進行創建。
D:\IDEA\ddd-springboot-template
├── src
│ ? ├── main
│ ? │ ? ├── java
│ ? │ ? │ ? └── com
│ ? │ ? │ ? ? ? └── example
│ ? │ ? │ ? ? ? ? ? ├── application
│ ? │ ? │ ? ? ? ? ? ├── domain
│ ? │ ? │ ? ? ? ? ? ├── infrastructure
│ ? │ ? │ ? ? ? ? ? └── interfaces
│ ? │ ? └── resources
│ ? └── test
│ ? ? ? └── java
└── pom.xml
并幫我們創建了如下的文件
自動創建目錄和文件
七、老板驗收工作-運行項目
1. 把項目添加為maven工程
此過程會去maven倉庫拉取依賴,速度可能會有點慢,執行過程中看是否會報錯。居然沒有報錯
把工程添加為maven工程
2. 嘗試啟動工程
嘗試啟動工程
剛啟動就直接報錯了!員工干活實在不靠譜!必須給我加班!
啟動工程時,直接報錯了
算了,作為老板要有耐心,員工才能忠于你,繼續為你干活!,有問題說問題,對事不對人哈!
項目啟動時,控制臺提示:java: 程序包org.springframework.ai.client不存在,請修復
還好,還是孺子可教,知道錯在哪里并很快給我修復,作為老板只能接受了!
修改bug
最終他還是沒能給我找到對的依賴,進入了死循環,只能我自己動手了!下面是為修改后的pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>ddd-springboot-template</artifactId><version>0.0.1-SNAPSHOT</version><name>ddd-springboot-template</name><description>Demo project?for?Spring Boot</description><properties><java.version>17</java.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 添加Spring AI的其他必要依賴 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0-M5</version></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-spring-boot-autoconfigure</artifactId><version>1.0.0-M5</version></dependency><!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency>--><dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>5.2.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
下面是我創建的配置文件
# Deepseek configuration
spring.ai.openai.api-key=申請自己的key
spring.ai.openai.base-url=https://api.siliconflow.cn
spring.ai.openai.chat.options.model=deepseek-ai/DeepSeek-R1
下面是我修改的DeepseekController
package?com.example.interfaces;import?org.springframework.ai.chat.client.ChatClient;
import?org.springframework.web.bind.annotation.CrossOrigin;
import?org.springframework.web.bind.annotation.GetMapping;
import?org.springframework.web.bind.annotation.PathVariable;
import?org.springframework.web.bind.annotation.RestController;@RestController
@CrossOrigin(origins = "*")
publicclassDeepseekController?{privatefinal?ChatClient chatClient;publicDeepseekController(ChatClient.Builder builder)?{this.chatClient = builder.defaultSystem("你是一個占卜大師,當有人輸入日期的時候,你輸出今天的桃花運和財運信息,"+?"生成結果在html頁面中以markdown的格式輸出,最后輸出結尾的時候始終以下面的語句結尾:感謝您的咨詢,我是陳榮健。").build();}@GetMapping(value = "/deepseek/{message}")public?String?chat(@PathVariable("message")?String message){return?chatClient.prompt().user(message).call().content();}
}
3. 測試 API 接口
測試
八、總結
本文介紹了如何利用 IntelliJ IDEA 編輯器和阿里云的通義靈碼 AI 程序員,快速搭建一個基于 DDD 領域驅動架構的后端工程模板。 測試下來,這個AI程序員并不能順利的按照他的想法來執行,想一套,做一套,還是需要老板親自動手才能讓工程跑起來。希望通義靈碼 AI 程序員這個員工可以學習更多的知識,在未來能夠聰明的給更多的牛馬能夠真正成為老板!所以這個工程如果需要作為ddd工程模板,還需要人為干預才能完成。