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

简介: 本文介绍如何使用 IntelliJ IDEA 和阿里云的通义灵码 AI 程序员,快速搭建基于 DDD 领域驱动设计的后端工程模板。通过安装和配置 IDEA、JDK、Maven 及通义灵码插件,用户可以借助 AI 自动生成项目结构和代码。然而,测试发现 AI 生成的代码存在依赖问题,需手动修正才能成功运行。最终,项目包括 Spring Boot、Maven 和 Deepseek API 集成,可调用大模型进行预测。尽管 AI 工具提高了开发效率,但目前仍需人工干预确保项目顺利运行。

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

在软件开发过程中,一个清晰、可维护、可扩展的架构至关重要。领域驱动设计 (DDD) 是一种软件开发方法,它强调将软件模型与业务领域紧密结合,从而构建更贴近业务需求的系统。本文将介绍如何利用 IntelliJ IDEA 编辑器和阿里云的通义灵码 AI 程序员,快速搭建一个基于 DDD 领域驱动架构的后端工程模板,作为其他工程的初始化工程。

图文投稿地址:公众号https://mp.weixin.qq.com/s/XlocM6zMrk0pJItSjr2mbw

一、准备工作

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 = "*")
public class DeepseekController {
   

    private final ChatClient chatClient;

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

目录
相关文章
|
7天前
|
存储 人工智能 前端开发
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
49 8
2025年解析 AI 编程:当前水平与对程序员的影响-优雅草卓伊凡
|
4天前
|
人工智能 达摩院 搜索推荐
通义大模型:解码中国AI的"通"与"义"
“通义”取自中国传统文化中“通晓大义”,寓意技术与人文的结合。作为阿里巴巴旗下的超大规模语言模型,通义在知识蒸馏、动态稀疏激活和文化感知模块上实现三大突破,大幅提升效率与适切性。其已在医疗、司法、文化传播等领域落地,如辅助病历处理、法律文书生成及文物解说等。测试显示,通义在中文诗歌创作、商业报告生成等方面表现优异。同时,开放的开发者生态已吸引5万+创新者。未来,通义将探索长期记忆、自我反思及多智能体协作,向AGI迈进,成为智能本质的载体。其对中文语境情感的精准把握,更是中国AI“通情达义”的典范。
50 22
|
4天前
|
人工智能 自然语言处理 达摩院
通义大模型:中国AI领域的新里程碑
本文介绍了阿里巴巴达摩院研发的“通义大模型”系列,该模型在2025年已成为AI领域的重要里程碑。通义大模型拥有超大规模参数、多模态融合、高效训练框架和中文优化等技术特点,在智能客服、内容创作、教育和企业服务等多个场景实现应用。未来,它将在多模态能力、小样本学习、安全性及应用场景拓展等方面持续突破,推动中国AI技术进步与行业智能化转型。
80 17
|
7天前
|
人工智能 Java 开发者
通义灵码:当AI成为你的编程搭档,效率革命已经到来
本文介绍了通义灵码作为AI编程伙伴的革命性意义及其技术特点。基于阿里云通义代码大模型CodeQwen1.5,它具备多模态代码理解、意图推理和跨语言知识融合能力,可重构开发者工作流,从智能编码到Debug预警再到文档自动化全面提升效率。数据显示,其能将常规开发时间缩短60%,错误率下降43%,新技术上手速度提升2倍。未来,通义灵码将推动需求-代码双向翻译、架构自演进等全新编程形态,助力开发者聚焦更高价值领域,开启人机共生的编程新时代。
67 9
|
3天前
|
人工智能 自然语言处理 JavaScript
我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码
本文分享了一名全栈开发同学使用通义灵码做代码生成、接口注释、测试代码补全等工作,效率明显提升的体会。
|
5天前
|
人工智能 自然语言处理 测试技术
通义灵码入选 “2025 年值得关注的 AIGC 产品”,是唯一入选的 AI 编程产品
阿里云的通义灵码是一款基于通义大模型的AI编程助手,能够智能生成代码、优化结构、排查错误并自动生成测试用例,支持多种主流编程语言。在2025年入选《值得关注的AIGC产品》榜单,凭借卓越技术与广泛应用场景成为国内开发者首选。通义灵码已在国内多个行业落地,大幅提升开发效率与代码质量,同时针对中文编程场景优化,支持企业内网部署保障数据安全,推动AI编程技术在教育与科研领域的创新应用。
|
7天前
|
人工智能 运维 Java
通义灵码进阶指南:解锁AI编程的隐藏潜能
本文探讨了通义灵码在DevOps全流程中的深度应用,通过五大高阶技巧将其从“代码补全工具”升级为“全栈协作者”。内容涵盖AI驱动的架构设计优化、全链路异常预测、智能学习工作台、AIOps智能运维以及定制化AI助手训练。实际案例显示,这些方法可提升团队交付效率300%,重新定义开发者生产力边界。
46 6
|
5天前
|
人工智能 自然语言处理 JavaScript
我定制的通义灵码 Project Rules,用 AI 写出“更懂我”的代码
本文分享了一名全栈开发者使用通义灵码的经验,重点介绍了其新推出的“Project Rules”功能。通过定制规则,解决了团队代码风格不统一、AI生成代码不符合项目规范等问题。示例配置包括Vue 3 + Composition API的语法规范、命名约定、注释风格等。作者总结,该功能显著提升了编码效率和团队协作一致性,并建议用户根据自身需求定制规则以优化体验。文中还提出了对团队规则共享、行业模版内置等功能的期待。
|
6天前
|
人工智能 自然语言处理 Java
通义灵码:AI编程助手如何重塑开发者的效率革命?
通义灵码是阿里云推出的一款基于通义大模型的智能编程助手,支持Java、Python、Go等主流语言,并深度适配VSCode、JetBrains等开发环境。其核心功能包括自然语言转代码、跨文件上下文理解、行级/函数级实时补全、自动生成单元测试及性能优化建议等。此外,还提供知识问答引擎、文档智能生成和研发大数据分析等进阶功能,助力开发者提升效率。通过重构生产关系,将重复劳动转化为创造性工作,使技术债务可视化,推动人机协同编程新时代的到来。
59 1
|
1月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
147 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡

热门文章

最新文章

下一篇
oss创建bucket