# 附录2:Vibe Coding与工具链 本附录介绍Vibe Coding的概念与实践,以及Claude Code、Markdown/Obsidian、Git/GitHub等核心工具的使用方法。 ## 1 Vibe Coding的概念与工具 ### 1.1 什么是Vibe Coding 传统编程:**明确需求 → 设计算法 → 编写代码** Vibe Coding:**模糊想法 → AI辅助 → 迭代完善** Vibe Coding是一种以AI为核心的编程新模式:开发者用自然语言描述意图,AI生成代码,再通过迭代对话逐步完善。对于编程经验较少的设计专业读者而言,这种模式大幅降低了技术门槛——不需要记住语法细节,只需要清楚地表达"想要什么"。 ### 1.2 工作流程 **1. 描述意图**:用自然语言说明需求 > "帮我创建一个简单的图像分类模型" **2. AI生成代码**:自动生成完整代码框架 **3. 运行测试**:发现问题或需要调整 **4. 迭代优化**:通过对话逐步改进 > "把隐藏层改成128个神经元" **5. 理解学习**:阅读AI生成的代码,理解实现原理 ### 1.3 实践技巧 | 技巧 | 说明 | |------|------| | 明确需求 | 详细描述输入输出,提供上下文 | | 分步实现 | 复杂功能拆解为小任务,逐步完成 | | 验证结果 | 运行并检查AI生成的代码是否正确 | | 学习思考 | 不盲目接受,理解AI为什么这样写 | ### 1.4 工具生态 | 工具 | 形态 | 特点 | 适用场景 | |------|------|------|---------| | ChatGPT / Claude | 网页对话 | 代码生成与解释 | 学习咨询、快速原型 | | GitHub Copilot | 编辑器插件 | 实时代码补全 | 日常开发 | | Cursor | AI原生IDE | 对话式编程 | 快速原型、中型项目 | | Claude Code | 终端CLI | 终端AI编程、多文件协作 | 项目级开发 | | Replit Agent | 在线平台 | 端到端开发 | 小型项目、学习实验 | ## 2 Claude Code简介与使用 ### 2.1 什么是Claude Code Claude Code是Anthropic推出的命令行AI编程工具(CLI),能够直接在终端中理解项目上下文、读写文件、执行命令,实现端到端的AI辅助开发。它也提供VSCode扩展,可以在编辑器中无缝使用。 ### 2.2 安装与配置 ```bash # 安装(需要 Node.js 18+) npm install -g @anthropic-ai/claude-code # 进入项目目录后启动 cd my_project claude ``` 启动后进入交互式对话界面,直接用自然语言描述需求即可。 ### 2.3 核心使用方式 **对话式开发**:用自然语言描述任务,Claude Code会自动读取相关文件、编写代码、执行测试。 ``` > 帮我创建一个数据预处理的Python脚本,读取CSV文件并清洗缺失值 ``` **文件操作**:Claude Code可以直接读取、创建和编辑项目中的文件,每次修改前会征得确认。 **命令执行**:可以请求Claude Code运行终端命令,如安装依赖、运行脚本等。 ### 2.4 VSCode中的Claude Code Claude Code提供VSCode扩展,在编辑器中获得同样的AI辅助能力: 1. 在VSCode扩展商店搜索 "Claude Code" 并安装 2. 打开项目文件夹 3. 使用快捷键或侧边栏打开Claude面板 4. 在编辑器中选中代码后,可以直接向Claude提问或请求修改 **常用场景**: - 选中一段代码,请求"解释这段代码" - 选中函数,请求"添加错误处理" - 在Claude面板中输入"帮我写单元测试" ### 2.5 典型项目工作流 **推荐项目结构**: ``` project/ ├── data/ # 数据文件 ├── notebooks/ # Jupyter笔记本 ├── src/ # 源代码 │ ├── models/ # 模型定义 │ ├── utils/ # 工具函数 │ └── train.py # 训练脚本 ├── requirements.txt # 依赖列表 └── README.md # 项目说明 ``` **开发流程**: ```bash # 1. 创建环境 conda create -n myproject python=3.10 conda activate myproject # 2. 安装依赖 pip install -r requirements.txt # 3. 启动 Claude Code 进行AI辅助开发 claude # 4. 保存环境 conda env export > environment.yml ``` ## 3 Markdown语法及Obsidian工具 ### 3.1 Markdown简介 Markdown是一种轻量级标记语言,用纯文本格式编写文档,可以方便地转换为HTML、PDF等格式。它的语法简洁直观,是技术文档、笔记、学术写作的常用工具。 本书全部内容即使用Markdown编写。 ### 3.2 基础语法 **标题**: ```markdown # 一级标题 ## 二级标题 ### 三级标题 ``` **文本格式**: ```markdown **加粗** *斜体* ~~删除线~~ `行内代码` ``` **列表**: ```markdown - 无序列表项1 - 无序列表项2 1. 有序列表项1 2. 有序列表项2 ``` **链接与图片**: ```markdown [链接文字](https://example.com) ![图片说明](image.png) ``` **代码块**: ````markdown ```python print("Hello, World!") ``` ```` **表格**: ```markdown | 列1 | 列2 | 列3 | |-----|-----|-----| | 内容 | 内容 | 内容 | ``` **引用**: ```markdown > 这是一段引用文字 ``` ### 3.3 Obsidian:Markdown笔记工具 [Obsidian](https://obsidian.md/) 是一款基于Markdown的知识管理工具,适合构建个人知识库和笔记系统。 **核心特性**: - **本地存储**:所有笔记以Markdown文件保存在本地,数据完全自主 - **双向链接**:用 `[[笔记名]]` 在笔记之间建立链接,形成知识网络 - **图谱视图**:可视化笔记之间的关联关系 - **插件生态**:丰富的社区插件扩展功能(如日历、看板、模板等) - **实时预览**:编辑Markdown时实时渲染效果 **使用建议**: - 用Obsidian打开本教材的根目录,即可获得完整的阅读与编辑体验 - 建议安装"目录"插件,方便在长文档中快速导航 - 利用双向链接功能,将学习笔记与教材内容关联起来 ## 4 Git版本管理与GitHub协作 ### 4.1 为什么需要版本管理 在项目开发过程中,文件会不断修改。版本管理工具可以: - 记录每一次修改的内容和时间 - 随时回退到之前的任意版本 - 多人协作时避免互相覆盖 Git是当前最流行的分布式版本管理系统。 ### 4.2 Git基础操作 **初始化仓库**: ```bash # 在项目目录中初始化Git cd my_project git init ``` **日常三步曲**: ```bash # 1. 查看当前修改状态 git status # 2. 将修改添加到暂存区 git add filename.md # 添加指定文件 git add . # 添加所有修改 # 3. 提交修改(附带说明) git commit -m "添加了数据预处理功能" ``` **查看历史**: ```bash # 查看提交历史 git log --oneline # 查看某次提交的具体改动 git show abc1234 ``` **回退操作**: ```bash # 查看某文件的历史版本 git log -- filename.md # 恢复某个文件到指定版本 git checkout abc1234 -- filename.md ``` ### 4.3 GitHub:云端协作平台 [GitHub](https://github.com/) 是基于Git的代码托管平台,提供云端存储和协作功能。 **核心概念**: - **仓库(Repository)**:项目的存储空间,包含所有文件和历史记录 - **远程同步**:将本地仓库推送到GitHub,或从GitHub拉取更新 - **协作**:多人通过分支和合并协同工作 **常用操作**: ```bash # 关联远程仓库 git remote add origin https://github.com/username/project.git # 推送到远程 git push -u origin main # 从远程拉取更新 git pull ``` **本书的Git管理**: 本书内容即通过Git进行版本管理。每个章节的修改都有完整的提交记录,可以通过 `git log` 查看内容的演变历史。 ### 4.4 推荐工作流 对于设计专业的学习和研究项目,建议采用以下简化工作流: ``` 编写/修改文档 → git add → git commit → git push ``` 每次完成一个阶段性工作(如写完一节内容、完成一次实验)后提交一次,附上简洁的说明。这样既保留了完整的历史记录,也不会因为误操作而丢失工作成果。