当前位置: 首页 > news >正文

IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板

作者:陈荣健

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工程模板,还需要人为干预才能完成。

相关文章:

IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板

作者&#xff1a;陈荣健 IDEA 通义灵码AI程序员&#xff1a;快速构建DDD后端工程模板 在软件开发过程中&#xff0c;一个清晰、可维护、可扩展的架构至关重要。领域驱动设计 (DDD) 是一种软件开发方法&#xff0c;它强调将软件模型与业务领域紧密结合&#xff0c;从而构建更…...

libwebsockets交叉编译全流程

libwebsocket中的webscoket加密功能需要依赖于Openssl库因此需要提前准备好openssl开源库。 交叉编译openssl 下面演示源码方式交叉编译OpenSSL为动态库。 创建个Websocket文件夹&#xff0c;把后续的成果物均放在这个文件中&#xff0c;文件夹中创建子文件夹OpenSSL和libWeb…...

蓝思科技赋能灵伴科技:AI眼镜产能与供应链双升级

2月22日&#xff0c;蓝思科技宣布与AI交互领军企业杭州灵伴科技&#xff08;Rokid&#xff09;达成深度战略合作&#xff0c;通过整机组装与全产业链整合&#xff0c;为2025年全球AI眼镜出货量爆发式增长&#xff08;预计达400万-1200万台&#xff09;提供核心支撑。 双方合作通…...

谷歌浏览器更新后导致的刷新数据无法显示

这几天突然出现的问题&#xff0c;就是我做了一个网站&#xff0c;一直用Google展示&#xff0c;前两天突然就是刷新会丢失数据&#xff0c;然后再刷新几次吧又有了&#xff0c;之前一直好好的&#xff0c;后端也做了一些配置添加了CrossOrigin注解&#xff0c;然而换了edge浏览…...

Nginx学习笔记:常用命令端口占用报错解决Nginx核心配置文件解读

Nginx 1. 基础命令1.1 重新加载systemd配置1.2 停止Nginx服务1.3 启动Nginx服务1.4 重启Nginx服务1.5 查看Nginx服务状态1.6 测试配置和重载Nginx 2. 额外命令2.1 启用开机自启2.2 禁用开机自启2.3 强制关闭所有Nginx进程 3. Nginx端口占用解决方案3.1 查找占用端口8090的进程3…...

Pinia 3.0 正式发布:全面拥抱 Vue 3 生态,升级指南与实战教程

一、重大版本更新解析 2024年2月11日&#xff0c;Vue 官方推荐的状态管理库 Pinia 迎来 3.0 正式版发布&#xff0c;本次更新标志着其全面转向 Vue 3 技术生态。以下是开发者需要重点关注的升级要点&#xff1a; 1.1 核心变更说明 特性3.0 版本要求兼容性说明Vue 支持Vue 3.…...

at32f103a+rtt+AT组件+esp01s 模块使用

AT组件使用 这里需要设置wifi名称和密码 配置使用的串口 配置上边的自动会配置,at_device 依赖了at_client 依赖sal也自动加入 依赖了串口2 uart2 连接WiFi AT+ CWJAP = TP-LINK_45A1...

EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案

在智能硬件的浪潮中&#xff0c;设备之间的互联互通已成为提升用户体验的核心需求。无论是智能家居、智能办公&#xff0c;还是工业物联网&#xff0c;高效的音视频通讯和交互能力是实现智能化的关键。然而&#xff0c;传统音视频解决方案往往面临平台兼容性差、交互体验不佳以…...

Spring 实战技术文档

一、引言 Spring 是一个轻量级的 Java 开发框架,它为企业级开发提供了全面的解决方案,涵盖了从依赖注入、面向切面编程到 Web 开发、数据访问等多个方面。本技术文档旨在通过一个具体的实战项目,详细介绍 Spring 框架的核心特性和使用方法,帮助开发者更好地掌握 Spring 框架…...

设计模式教程:解释器模式(Interpreter Pattern)

1. 什么是解释器模式&#xff1f; 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;通常用于处理语言&#xff08;例如数学表达式、SQL查询等&#xff09;中的语法和解释。该模式定义了一个文法&#xff0c;并通过解释器类来解释文法中…...

ARM SOC 架构系统M系、R系、A系

**SOC R5** 通常指的是基于 **ARM Cortex-R5** 内核的系统级芯片&#xff08;System on Chip, SoC&#xff09;。ARM Cortex-R5 是属于 **ARM Cortex-R 系列**的处理器内核&#xff0c;Cortex-R 系列专为实时性要求较高的嵌入式应用设计&#xff0c;主要目标是实现高性能、低延…...

Hutool - Script:脚本执行封装,以 JavaScript 为例

一、简介 在 Java 开发中&#xff0c;有时需要动态执行脚本代码&#xff0c;比如 JavaScript 脚本&#xff0c;来实现一些灵活的业务逻辑&#xff0c;如动态规则计算、数据处理等。Java 本身提供了 javax.script 包来支持脚本执行&#xff0c;但使用起来较为繁琐。Hutool - Sc…...

【开源项目】分布式文本多语言翻译存储平台

分布式文本多语言翻译存储平台 地址&#xff1a; Gitee&#xff1a;https://gitee.com/dreamPointer/zza-translation/blob/master/README.md 一、提供服务 分布式文本翻译服务&#xff0c;长文本翻译支持流式回调&#xff08;todo&#xff09;分布式文本多语言翻译结果存储服…...

小智机器人CMakeLists编译文件解析

编译完成后&#xff0c;成功烧录&#xff01; 这段代码是一个CMake脚本&#xff0c;用于配置和构建一个嵌入式项目&#xff0c;特别是针对ESP32系列芯片的项目。CMake是一个跨平台的构建系统&#xff0c;用于管理项目的编译过程。 set(SOURCES "audio_codecs/audio_code…...

SOME/IP--协议英文原文讲解11

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2.6 Er…...

python~http的请求参数中携带map

背景 调试 http GET请求的 map 参数&#xff0c;链路携带参数一直有问题&#xff0c;最终采用如下方式携带map 解决 user{"demo":"true","info":"王者"}url encode之后的效果如下所示 user%7B%22demo%22:%22true%22,%22info%22:%22…...

深研究:与Dify建立研究自动化应用

许多个人和团队面临筛选各种网页或内部文档的挑战,以全面概述一个主题。那么在这里我推荐大家使用Dify,它是一个用于LLM应用程序开发的低代码,开源平台,它通过自动化工作流程的多步搜索和有效汇总来解决此问题,仅需要最小的编码。 在本文中,我们将创建“ Deepresearch”…...

ESP32S3:参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路 (实现各个平台移植使用该方式)

目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…...

Http模块及练习

### 作业 1. 静态文件服务器 js const http await import(http) const fs await import(fs) const proc ((req,res)>{ let file ./public${req.url} let FilePath file.replace(favicon.ico,"") // 检查文件是否存在 if (!fs.existsSync(FilePa…...

计算机视觉行业洞察--影像行业系列第一期

计算机视觉行业产业链的上下游构成相对清晰&#xff0c;从基础技术研发到具体应用场景的多个环节相对成熟。 以下是我结合VisionChina经历和行业龙头企业对计算机视觉行业产业链上下游的拆解总结。 上下游总结 上游产业链分为软硬件两类&#xff0c;视觉的硬件主要指芯片、…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...