AI开发项目之-系统设计文档

让AI(Clude, ChatGPT)扮演软件系统设计师,根据需求文档,编写软件系统设计文档,安排开发计划,创建项目目录结构,搭建golang开发环境,为AI开发业务逻辑奠定基础。

defagi avatar
  • defagi
  • 1 min read

AI开发项目之-系统设计文档

上一篇介绍了,如何通过客户的基本描述,让AI补充完善需求,最终编写需求文档。

本篇将介绍通过AI编写的需求文档,让AI阅读需求文档编写系统设计文档。在系统设计文档上创建项目目录结构,并生成创建目录结构shell脚本,为AI开发基础环境。

上一篇文章中,尝试了如何利用AI技术将客户的基本描述转化为完整的需求文档。这种方法不仅提高了效率,还确保了需求的全面性和准确性。

AI开发项目之-需求文档

本文将进一步探讨AI在软件开发流程中的应用,重点关注如何利用AI技术将需求文档转化为系统设计文档。我们将详细介绍这一过程,并展示如何利用AI生成项目目录结构和相应的shell脚本,同时搭建golang开发环境.为AI开发业务逻辑奠定基础。

这是ChatGPT对话过程:AI开发项目之-系统设计文档-提示词

系统设计文档

AI开发项目之-需求文档 中输出了简易版本功能性需求文档。

通过这个文档让AI(本次使用chatgpt )生成一份系统设计文档。下面是我的提示词:

AI开发项目的需求文档阶段,输出了一份简易版的功能性需求文档。接下来,将利用这份文档,借助AI(本次使用ChatGPT)来生成一份系统设计文档。 向ChatGPT提供了以下提示:

你是软件系统设计师,擅长golang、gin技术栈开发web restful api服务。下面提供一份功能需求文档,请仔细阅读,如有疑问,可以提出询问。确认无疑问后,
你需要根据功能需求文档做系统设计包含:
* 架构设计: 根据需求,制定系统架构,包括选择合适的技术栈、定义模块之间的接口、数据库设计等。
* 模块设计: 对每个功能模块进行详细设计,定义模块的输入输出、数据结构、算法等细节。

功能需求文档: 
---功能需求文档开始---
<--忽略-->
---功能需求文档结束---

完整的系统设计文档提示词: 系统设计文档完整提示词

chatgpt-prompt-1-1

chatgpt-prompt-1-1

检查ChatGPT的输出后,发现缺少了接口设计部分的内容。为了补充这一关键部分,ChatGPT提供了额外的提示:

缺少了 接口设计: 定义每个模块的接口,包括URL、请求方式、请求参数、返回结果等。 

chatgpt-prompt-1-2

暂时只需要一个上传接口,提示让chatgpt输出markdown格式。就用这个文档吧,虽然不是很标准的系统设计文档,但是对于开发已经够用了。

完整版系统设计文档

项目目录结构

chatgpt输出文档后,在想怎么让AI开发呢?在开发前还得有个开发环境。还要考虑项目开发的优先级,头大,先让AI编写一个开发计划吧。

根据《小说章节拆分系统设计文档》制定详细的开发计划,包括时间表、里程碑、资源分配等

chatgpt-development-plan

写得还是比较详细的,排出来的时间周期有点长,包含了后端,测试,文档的工作量,我现在只想要后端的开发计划。

修改下只需要关注后端开发这块

修改后这开发计划还是有点长,无关的工作量太多了,按照我自己的想法吧,先把开发架构搭起来,最主要的是设计目录结构+骨架代码,先把环境跑起来。

根据《小说章节拆分系统设计文档》创建项目目录结构和骨架代码

project-directory-structure

project-directory-structure-code

目录结构设计的还行,看上去没什么大问题,骨架代码也有了,可以先用着。让AI把创建目录机构的shell脚本写也写了。懒得一个个创建。

编写创建目录结构的shell脚本代码

create-directory-structure-shell-script

# 给个执行权限
chmod +x create_structure.sh
# 执行脚本
./create_structure.sh

shell脚本: create-directory-structure-shell-script

AI开发

创建完项目目录结构后,需要把开发环境搭起来,骨架代码也有了,把代码复制过去,当然不想复制也可以让AI写shell脚本,我这里就手动COPY代码吧,在让AI生成就怕chatgpt上下文太长了,后续出错概率大。如果新建会话又要重新给上下文,太麻烦。

仔细看了下目录结构,发现使用了golang modules管理依赖。那得手动处理模块的根目录初始化。

# 删除已存在的go.mod和go.sum文件
rm go.mod go.sum
# 初始化模块
go mod init defagi.com/novel-splitter
# 下载gin框架
go get github.com/gin-gonic/gin

然后就是无脑的copy,报错粘贴上去就行了。如何处理代码的报错过程可以查看: chatgpt交互流程

novel-splitter-run

成功启动,仔细看chatgpt写的骨架代码是有问题的,暂时先不管,后续做具体的业务逻辑开发在去修正吧。回过头看这个骨架代码好像有点多余。

推荐

AI开发项目之-产品需求

AI开发项目之-产品需求

让AI(Clude, ChatGPT)扮演产品经理,从客户需求出发,通过问答方式逐步完善产品需求文档,为AI开发项目代码奠定基础。