从零开始用 AI 编写一个复杂项目的实践方法论
从零开始用 AI 编写一个复杂项目的实践方法论
这篇文章我用ai润色了一下,但是初稿是完全由我个人整理的逻辑思路,不是完全由ai生成的。其中内容也确实是我在实践中遇到问题、解决问题、总结出来的经验。
在从零开发一个复杂项目时,直接把目标丢给 AI 让它生成全部代码,通常并不会得到你想要的结果。原因在于:AI 缺乏上下文信息,对你的意图并不清楚。
作为懂技术的程序员,我们可以把 AI 当作“助理”,先设计好文档,再通过文档驱动 AI 参与编码过程。
事实上,即使不使用 AI,明确需求设计文档也是中大型项目开发的必要准备步骤。
第一步:编写辅助文档(Documentation-Driven Development)
建议文档使用 Markdown 格式,便于人类阅读,也便于 AI 分析和修改。
📄 一、设计文档 —— 明确“做什么”
用于定义需求与规则,不涉及技术实现,结构建议如下:
1. 核心概念设计
-
游戏基本定位:玩法类型、风格、目标用户
-
主题与世界观(如有):故事背景、设定框架
2. 游戏规则设计
-
游戏目标:玩家的胜利条件
-
玩家操作方式:鼠标/键盘/手柄等
-
胜负判定条件:例如 HP 为 0、完成任务等
-
游戏节奏:回合制 / 实时制 / 其他,流程结构
3. 游戏视角设计
-
2D / 3D?
-
横版、俯视角、第一人称等
-
摄像机逻辑:是否跟随?是否支持缩放/旋转?
4. 核心机制设计
-
玩法机制:战斗 / 解谜 / 移动 等
-
交互方式:与环境、AI 或 UI 互动方式
-
系统模块:是否有道具、技能、装备系统等
5. 项目开发计划
-
阶段 1:核心玩法(MVP)
⤷ 搭建最小可玩版本,确认主要玩法循环 -
阶段 2:基础功能
⤷ UI 界面、音效、存档、菜单等通用内容 -
阶段 3:内容扩展与打磨
⤷ 添加更多关卡、数值平衡、美术优化等
🧠 二、技术文档 —— 明确“怎么做”
用于让 AI 按照你设定的架构进行代码生成,建议结构如下:
1. 技术总览
-
使用引擎/框架:Unity、Pygame、Unreal 等
-
架构模式:MVC / ECS / 状态机 / 渲染分离等
-
依赖工具:Cinemachine、NavMesh、Tiled、DOTween…
-
系统总览:
-
地图系统
-
玩家控制与状态机
-
敌人 AI 系统
-
战斗系统
-
得分/任务/成就系统
-
存档系统
-
UI 系统
-
-
编码规范:
-
命名风格、组件组织、目录结构
-
注释格式、使用协程/事件/状态机的约定
-
2. 系统模块设计(推荐每个模块包含三段)
-
✅ 职责说明:模块干什么
-
🔧 方法列表:有哪些接口函数
-
🔄 交互关系:与其他模块如何通信
示例:地图系统
-
地图格子类
-
职责:定义地图格子通用行为(是否可通行、占用)
-
方法:
IsWalkable()
、GetPosition()
、Occupy()
等
-
-
地图管理类
-
职责:地图生成、加载、寻路等
-
方法:
GenerateMap()
、FindPath()
、HighlightTiles()
-
示例:UI系统
-
界面结构:主菜单 / 游戏内 UI / 暂停菜单等
-
动态 UI:血条、得分、提示文本、卡牌展示等
示例:玩家控制系统
-
输入模块:监听键盘/鼠标/手柄操作
-
状态切换:如待机 → 移动 → 攻击 → 死亡
💡 Tip:建议所有系统以“职责 / 方法 / 交互”三段式描述,便于维护和 AI 理解。
第二步:启动项目编码
-
建立
/docs
文件夹,存放设计与技术文档,便于版本管理与投喂 AI -
使用 Git 版本控制,配合分支与 PR 管理
🧱 分块开发策略:
-
从 最小可玩版本(MVP) 开始
-
每完成一个模块 → 测试 → 集成
-
每个功能单独分支 → 合并 PR → 保持主分支稳定
🧪 测试驱动开发:
-
让 AI 辅助编写单元测试 / 集成测试
-
每次提交前运行测试,避免破坏旧功能
第三步:细节调整与迭代
项目结构明确后,便于对系统进行局部调整和增强:
-
⚙️ 修改细节时请同步更新设计/技术文档
-
🧠 使用 AI 修改已有代码时,需谨慎审查差异,避免遗漏
✅ 结语
以上流程是我个人实践中总结的一套 文档驱动 AI 编码法,欢迎参考。
如你有其他想法或补充建议,欢迎交流!
相关文章:
从零开始用 AI 编写一个复杂项目的实践方法论
从零开始用 AI 编写一个复杂项目的实践方法论 这篇文章我用ai润色了一下,但是初稿是完全由我个人整理的逻辑思路,不是完全由ai生成的。其中内容也确实是我在实践中遇到问题、解决问题、总结出来的经验。 在从零开发一个复杂项目时,直接把目标…...
k8s监控方案实践(一):部署Prometheus与Node Exporter
k8s监控方案实践(一):部署Prometheus与Node Exporter 文章目录 k8s监控方案实践(一):部署Prometheus与Node Exporter一、Prometheus简介二、PrometheusNode Exporter实战部署1. 创建Namespace(p…...
2.5 特征值与特征向量
本章围绕特征值、特征向量及其应用展开,是线性代数的核心章节之一。以下从四个核心考点系统梳理知识体系: 考点一:矩阵的特征值与特征向量 1. 计算方法 具体矩阵: 解特征方程 ∣ λ E − A ∣ 0 |\lambda E - A| 0 ∣λE−A∣…...
从简历筛选到面试管理:开发一站式智能招聘系统源码详解
当下,如何打造一款高效、精准的一站式智能招聘系统,成为了很多人力资源科技公司和创业团队关注的焦点。在这篇文章中,将带你深入了解如何从零开始开发一款智能招聘系统源码,涵盖从简历筛选到面试管理的全流程。 一、招聘系统的核心…...
10.进程控制(下)
一、进程程序替换(重点) 在程序替换过程中,并没有创建新的进程,只是把当前进程的代码和数据用新程序的代码和数据进行覆盖式的替换。 1)一旦程序替换成功,就去执行新代码了,后序代码不执行 2&am…...
【Python 字符串】
Python 中的字符串(str)是用于处理文本数据的基础类型,具有不可变性、丰富的内置方法和灵活的操作方式。以下是 Python 字符串的核心知识点: 一、基础特性 定义方式: s1 单引号字符串 s2 "双引号字符串" s…...
最新CDGP单选题(第四章)补充
31、 [单选] 企业数据模型主题域的识别准则必须在整个企业模型中保持一致,以下哪项是常用的主题域识别准则: A:使用规范化规则,从系统组合中分离主题域...
Cursor降智找不到文件(Cursor降智)
文章目录 明明提供了上下文,却找不到文件! 明明提供了上下文,却找不到文件! 解决办法,删除codebase index,最好再把那个Index new folders by default给设置为Disabled。 这样设置貌似就不会出现找不到文件…...
Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能)
说明:这是一个系统实战项目(附带代码文档安装讲解),如需代码文档安装讲解可以直接到文章最后关注获取。 系统演示如下: Python基于Django和MySQL实现突发公共卫生事件舆情分析系统(有大屏功能) 项目背景 随着互联网的…...
cat、more和less的区别
在 Linux 系统中,cat、more 和 less 都是用于查看文件内容的命令,但它们在功能和使用场景上有显著区别。以下是它们的详细对比: 1. cat 命令 功能: - 直接输出整个文件:一次性将文件内容全部显示在终端上ÿ…...
Python cv2特征检测与描述:从理论到实战
在计算机视觉领域,特征检测与描述是图像匹配、物体识别、SLAM等任务的核心技术。本文将结合OpenCV的cv2库,系统讲解特征检测与描述的原理,并通过Python代码演示主流算法的实现。 一、为什么需要特征检测与描述? 图像本质是像素矩…...
实践005-Gitlab CICD全项目整合
文章目录 环境准备环境准备集成Kubernetes Gitlab CICD项目整合项目整合整合设计 后端Java项目部署后端Java项目静态检查后端Java项目镜像构建创建Java项目部署文件创建完整流水线 前端webui项目部署前端webui项目镜像构建创建webui项目部署文件创建完整流水线 构建父子类型流水…...
为了摸鱼和吃瓜,我开发了一个网站
平时上班真的比较累,摸鱼和吃瓜还要跳转多个平台的话,就累上加累了。 所以做了一个聚合了全网主流平台热搜的网站。 目前市面上确实有很多这种网站了,所以目前最主要有两点和他们不同: 给热搜列表增加了配图,刷的时候…...
React -> AI组件 -> 调用Ollama模型, qwen3:1.7B非常聪明
使用 React 搭建一个现代化的聊天界面,支持与 Ollama 本地部署的大语言模型进行多轮对话。界面清爽、功能完整,支持 Markdown 渲染、代码高亮、<think> 隐藏思考标签、流式渐进反馈、暗黑模式适配等特性。 🧩 核心功能亮点 ✅ 模型选择…...
算法中的数学:约数
1.求一个整数的所有约数 对于一个整数x,他的其中一个约数若为i,那么x/i也是x的一个约数。而其中一个约数的大小一定小于等于根号x(完全平方数则两个约数都为根号x),所以我们只需要遍历到根号x,然后计算出另…...
性能远超SAM系模型,苏黎世大学等开发通用3D血管分割基础模型
如果把人的身体比作一座庞大的城市,那么血管无疑就是这座城市的「道路」,动脉、静脉以及毛细血管对应着高速公路、城市道路以及乡间小道,它们相互协作,通过血液将营养物质、氧气等输送到身体各处,从而维持着这座「城市…...
对 Kotlin 中的 data 关键字的理解,相比于普通类有哪些特点?
Kotlin 中的 data 关键字用于声明数据类(Data Class),它专门为简化数据模型的实现而设计的。 1 主构造函数必须至少有一个参数,且参数标记为 val 或 var 数据类的主构造函数必须至少有一个参数,并且这些参数必须使用…...
电厂参与全球能源效率排名的方法
在全球积极推动可持续能源发展的大背景下,电厂参与全球能源效率排名,对提升自身竞争力、推动行业进步意义重大。这不仅有助于电厂明确自身在全球能源领域的地位,还能促进其通过能效对标,学习先进经验,实现节能减排与高…...
〖 Linux 〗解决 VS Code 远程连接服务器的常见问题
文章目录 解决 VS Code 远程连接服务器的断开问题VS Code Remote-SSH一直弹出输入密码的问题VsCode C 语法检测失效不标红色波浪线 解决办法卸载扩展方式: 解决vscode C智能提示缓慢 解决 VS Code 远程连接服务器的断开问题 解决 vscode 卡顿,卡死&…...
谷歌 Gemma 大模型安装步骤
1.下载OllamaSetup安装包 下载地址:https://ollama.com/download 这里已Windows系统为例: 2.安装OllamaSetup客户端 3.部署大模型 在系统搜索栏里面,搜索cmd并打开 根据电脑实际配置情况选择对应的模型进行安装 【1】. 普通7B版 安装指…...
【Linux修炼手册】Linux开发工具的使用(一):yum与vim
文章目录 一、Linux 软件包管理器——yum安装与卸载的使用方法查看软件包 二、Linux编辑器——vimvim命名模式常用指令底行模式常用指令 一、Linux 软件包管理器——yum Linux安装软件的方式有3种: 源代码安装——成本极高rmp安装——具有安装依赖、安装源、安装版…...
JAVA房屋租售管理系统房屋出租出售平台房屋销售房屋租赁房屋交易信息管理源码
一、源码描述 这是一套房屋租售管理源码,基于SpringBootVue框架,后端采用JAVA开发,源码功能完善,涵盖了房屋租赁、房屋销售、房屋交易等业务。 二、源码截图...
XL32F001国产低成本单片机,24MHz主频,24KB Flash,3KB SRAM
XL32F001 是一颗基于ARM Cortex-M0内核的32 位微控制器,专为低成本、低功耗、小型化嵌入式系统设计,适合对资源需求中等但强调性价比和能效的场景。主频可达24M,内存方面有24KB Flash和3KB SRAM,适用于资源需求不大的应用场景。1.…...
k8s术语之job
Job类型 Kubernetes支持以下几种Job: 非并行Job:通常创建一个Pod直至其成功结束 固定结束次数的Job:设置.spec.completions,创建多个 Pod,直到 .spec.completions 个 Pod 成功结束 带有工作队列的并行Job:设置.spec.Parallelism 但…...
单片机-STM32部分:8、外部中断
飞书文档https://x509p6c8to.feishu.cn/wiki/ENFswNTSGiblehkIMtfc9dYinqh 创建工程 按工程创建章节步骤,把工程创建好,并配置外部时钟源,SWD调试模式,时钟72MHz。 设置引脚模式 找到需要配置的按键,例如PC2&#…...
电子电器架构 --- 电气/电子架构如何发展以满足其处理和传感器融合需求
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
WordPress插件:WPJAM Basic优化设置
WPJAM Basic 插件的「优化设置」是我爱水煮鱼博客多年使用 WordPress 的经验而整理的各类优化设置。 一、功能屏蔽 功能屏蔽就是屏蔽一些WordPress中用不上、难用的功能,目前的支持屏蔽以下功能: (1)屏蔽文章修订功能 文章修…...
数字电子技术基础(五十六)——JK触发器
目录 1 JK触发器 2 使用Digital软件来绘制JK触发器 1 JK触发器 对于D触发器来说,其功能是过于简单了,D触发器只有置0和置1的操作,而JK触发器相对于D触发器处理原来的保持、置位和复位的操作,还增加了翻转操作。JK触发器通过优化…...
python小说网站管理系统-小说阅读系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核…...
Python程序,输入IP,扫描该IP哪些端口对外是开放的,输出端口列表
#!/usr/bin/env python # -*- coding: utf-8 -*-""" IP端口扫描程序 输入IP地址,扫描该IP哪些端口对外是开放的,输出端口列表 """import socket import sys import concurrent.futures import ipaddress from tabulate im…...
极狐GitLab 容器镜像仓库功能介绍
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 极狐GitLab 容器镜像库 (BASIC ALL) 您可以使用集成的容器镜像库,来存储每个极狐GitLab 项目的容器镜像。 要为您…...
【嵌入式开发-IIC】
嵌入式开发-IIC ■ IIC简介■ IIC ■ IIC简介 ■ IIC...
能见度测量仪:能适应各种恶劣天气状况
云境天合TH-BN10能见度测量仪是一种用于测量大气能见度的专业仪器,在气象观测、交通运输、航空航海等领域发挥着关键作用。 能见度即目标物的能见距离,指观测目标物时,能从背景上分辨出目标物轮廓的最大距离,是重要的气象观测要素…...
运维打铁:服务器分类及PHP入门
文章目录 C/S架构和B/S架构C/S架构B/S架构 服务器分类服务器类型服务器软件 使用 WampServer 搭建 HTTP服务集成环境的分类WampServer 的安装测试访问配置网站根目录 静态网站和动态网站PHP的常见语法第一段 php 代码注释变量数据类型运算符函数的定义类和对象内容输出循环语句…...
SpringBoot应急知识学习系统开发实现
概述 一个基于SpringBoot开发的应急知识学习系统,该系统提供了完整的用户注册、登录、知识学习与测评功能。对于开发者而言,这是一个值得参考的免费Java源码项目,可以帮助您快速构建类似的教育平台。 主要内容 5.2 注册模块的实现 系统采…...
系统思考助力富维东阳
刚刚完成了长春一家汽车零配件公司关于系统思考的项目! 在开班仪式上,公司总经理深刻阐述了项目的背后意义,强调了系统思考与公司战略的紧密联系。这不仅是一次培训,更是一次关于“如何全方位看待问题”的深度对话。 在这个过程中…...
《供应链网络攻击的风险与防范》
中国古语有云:“千里之堤,溃于蚁穴。”供应链攻击正是利用这种系统性弱点发起攻势。近年来,随着国内数字化转型加速,供应链安全问题频发。从某盟删库事件到某头部物流企业数据泄露,从某国产工业软件遭恶意代码植入到某…...
【MySQL】进阶知识详解
目录 引言一、约束:数据完整性的守护者1.1 约束的作用与分类1.2 约束的语法详解非空约束唯一约束主键约束外键约束1.3 约束实战案例二、数据库设计:表关系的艺术2.1 三种核心表关系一对多(部门-员工)多对多(学生-课程)一对一(用户-详情)三、多表查询:数据关联的桥梁3.…...
SpringBoot中使用MCP和通义千问来处理和分析数据-连接本地数据库并生成实体类
文章目录 前言一、正文1.1 项目结构1.2 项目环境1.3 完整代码1.3.1 spring-mcp-demo的pom文件1.3.2 generate-code-server的pom文件1.3.3 ChatClientConfig1.3.4 FileTemplateConfig1.3.5 ServiceProviderConfig1.3.6 GenerateCodeController1.3.7 Columns1.3.8 Tables1.3.9 Fi…...
算法每日一题 | 入门-分支结构-Apples Prologue/苹果和虫子
Apples Prologue/苹果和虫子 题目描述 小 B 喜欢吃苹果。她现在有 m m m(1 ≤ m ≤100)个苹果,吃完一个苹果需要花费 t t t(0 ≤ t≤ 100)分钟,吃完一个后立刻开始吃下一个。 现在时间过去了 s s s&a…...
浙大与哈佛联合开源图像编辑模型IC-Edit,实现高效、精准、快速的指令编辑~
项目背景 研究动机与目标 ICEdit(In-Context Edit)由浙江大学团队开发,旨在通过自然语言指令实现高效、精准的图像编辑,降低对大规模训练数据和计算资源的需求。传统图像编辑方法(如基于微调的扩散模型或无训练技术&…...
查看jdk是否安装并且配置成功?(Android studio安装前的准备)
WinR输入cmd打开命令提示窗口 输入命令 java -version 回车显示如下:...
Off-Policy策略演员评论家算法SAC详解:python从零实现
引言 软演员评论家(SAC)是一种最先进的Off-Policy策略演员评论家算法,专为连续动作空间设计。它在 DDPG、TD3 的基础上进行了显著改进,并引入了最大熵强化学习的原则。其目标是学习一种策略,不仅最大化预期累积奖励&a…...
基于大模型的计划性剖宫产全流程预测与方案优化研究报告
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型在计划性剖宫产中的应用原理 2.1 大模型介绍 2.2 数据收集与处理 2.3 模型训练与优化 三、术前预测与准备 3.1 风险因素评估 3.2 大模型术前预测 3.3 术前准备方案 四、术中预测与应对 4.1 术中…...
在Lua中使用轻量级userdata在C/C++之间传递数据和调用函数
在Lua中使用轻量级userdata在C/C之间传递数据和调用函数 轻量级userdata是Lua中一种高效的数据传递机制,它允许你在C/C和Lua之间传递指针而不创建完整的userdata对象。下面是如何使用轻量级userdata的详细说明: 基本概念 轻量级userdata:只…...
总线通信篇:I2C、SPI、CAN 的底层结构与多机通信设计
本文为嵌入式通信协议系列第三章,深入剖析 MCU 世界中的三大总线协议 —— I2C、SPI 和 CAN。 这些总线协议广泛应用于传感器数据采集、Flash 存储、外设扩展、汽车电子、工业设备控制等领域,是嵌入式开发不可或缺的通信骨架。 📜 一、总线通信的基本概念 1.1 什么是总线?…...
心跳策略(Heartbeat) 和 Ping/Echo 策略
一、心跳策略(Heartbeat) 原理:客户端定期向服务端发送心跳包,服务端监控客户端存活状态,超时未收到心跳则判定客户端离线 服务端代码 using System; using System.Net; using System.Net.Sockets; using System.Coll…...
探索网络设备安全:Shodan 的原理与合法应用
在数字化时代,网络摄像头因其便捷性和高效性被广泛应用于家庭、商业和工业领域。然而,这些设备的安全性问题也日益受到关注。Shodan,这个被称为“设备搜索引擎”的工具,能够帮助我们发现和分析网络摄像头的分布和安全性。本文将深…...
Java JWT 配置类 (JwtProperties) 学习笔记
1. 核心作用: 此类 (JwtProperties) 作为一个集中的“配置信息持有者”,专门用来存储项目中与 JWT(JSON Web Token,一种用于身份验证的令牌)相关的配置参数。 2. 关键注解说明: Component: 含义ÿ…...
沃伦森电容器支路阻抗特性监控系统 电容器组智能健康管理专家
行业现状与挑战 在现代电力系统中,电容器组作为无功补偿的核心设备,对保障电网稳定运行和提升电能质量至关重要。然而,长期运行中面临的谐波干扰、过电压/过电流冲击等问题,极易导致电容值衰减、介质老化甚至爆炸等严重故障&#…...