AI 辅助构建静态内容网站实践:从零到壹
实践是最佳策略。
这个过程完全是一个从零开始的尝试,用大约100个字左右的需求描述,让 Gemini Code Assist 在 VSCODE 的开发环境中,帮助我完成了需求文档、设计文档和任务文档的编写。然后通过手动每个任务的执行,完成代码生成、测试、修复 BUG 等。大约消耗了两天时间完成了一个可以使用的项目。
项目实现了最简单的 Markdown 格式文章的展示,只有两个页面,首页展示文章列表,点击文章后进入文章详情页。
工具链的使用
- Gemini Code Assist 和 VSCODE 深度集成,是比较好的能够理解项目上下文的辅助 AI,但是不稳定,容易卡住。
- Gemini Cli 浅度集成,在上下文组织结构清晰的情况下,可以很好地完成单个任务。
- 用 Chatgpt / Gemini / Grok / Copilot 的网页版作为外部研究工具对单点离散需求进行研究,手工采用结果。
需求/设计/任务文档构建
构建一个目录用于保存需求/设计/任务文档,并且不断优化需求/设计/任务文档的内容格式,可以使得LLM对于目标的理解和上下文组织结构更加清晰,有助于整体目标和子目标的一致性。
某个任务说明的例子:
[T1.3] 创建基础内容与布局:<状态:未开始>
- **描述:** 创建一个 Markdown 文件作为内容源,并为其创建一个最基础的布局文件。该文件内容标题:‘构建一个内容网站的最佳实践’。要求文章字数不少于1000字,Markdown 格式中主要的元素都在文章中出现。
- **完成标准 (DoD):**
1. 在 `src/content/posts/` 目录下至少存在一个 `.md` 文件(例如 `first-post.md`)。文章采用中文和英文混合排版,文章标题是构建一个内容网站的最佳实践。
2. 在 `src/layouts/` 目录下创建一个 `BaseLayout.astro` 文件。
3. Markdown 文件能够通过该布局在本地开发环境中正确渲染显示。
任务执行和代码生成
代码生成需要用不断优化的提示词,使得每次生成都基于一个特定的子任务。
对于子任务执行的提示词要遵循以下的基本原则:
- 要求提示词理解项目整体目标和子任务特定目标
- 评估需求是否存在不清晰的地方,是否和整体目标以及其它任务存在冲突
- 首先要分析子任务的需求,组织完成目标的方案计划和步骤
- 经过人类工程师审核确认方案计划后,执行方案计划
项目文件结构的组织
这个点蛮重要,如果需要 Gemini Code Assist 和 Gemini CLI 协同能够理解项目,主要是依赖于文件结构的组织,其中对于Gemini.md 的作用需要做更多的研究分析。项目文件结构的组织,也意味着上下文的结构组织是基于这个文件系统的。
不断增长的需求需要在一个目录下统一管理,每个子需求单独成为子目录。在子目录中保存子需求的 PRD/DESIGN/TASK 文档。
问题
- 如何让外部的 LLM 模型网站的对话能更多了解项目上下文,使得针对性进行方案和思路研究的时候,给出的方案和答案更加准确。
- 如何让过程闭环:需求-设计-任务-编码和执行-测试-需求理解迭代,这个过程能够不断进行闭环执行。