refactor(officefile): 按 md/latex/word 三层结构重组文档目录
将 Markdown 源文件移入 md/,LaTeX 工作目录保留在 latex/, Word 导出移入 word/;删除临时脚本、调试截图和空 stub。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,434 @@
|
||||
# 附录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
|
||||
*斜体* **加粗** ***粗斜体*** ~~删除线~~ <u>下划线</u> `行内代码` ==高亮文本== ___分隔线
|
||||
```
|
||||
包含反引号的代码:当代码本身包含反引号时,使用两个反引号包围,使用 `` `code` `` 这样的格式
|
||||
|
||||
**列表**:
|
||||
列表可以嵌套使用
|
||||
```markdown
|
||||
- 无序列表项1
|
||||
- 无序列表项2
|
||||
|
||||
1. 有序列表项1
|
||||
2. 有序列表项2
|
||||
|
||||
- [ ] 未完成的任务
|
||||
- [x] 已完成的任务
|
||||
```
|
||||
|
||||
**链接与图片**:
|
||||
|
||||
```markdown
|
||||
[链接文字](https://example.com) <!-- 行内链接 -->
|
||||
[链接文字][1] <!-- 参考式链接 -->
|
||||
[跳转到基础](#基础) <!-- 锚点链接 -->
|
||||
|
||||
[1]: https://www.example.com <!-- 参考链接定义 -->
|
||||
|
||||
 <!-- 基本图片 -->
|
||||
*图7.8 路杀动物* <!-- 图片下方用斜体作为图注 -->
|
||||
|
||||
<!-- 图片居中对齐并指定宽度 -->
|
||||
<div align="center">
|
||||
<img src="image.png" alt="说明" style="width:10cm;"/>
|
||||
<p><em>图片标题</em></p>
|
||||
</div>
|
||||
```
|
||||
|
||||
**代码块**:
|
||||
|
||||
````markdown
|
||||
```python
|
||||
print("Hello, World!")
|
||||
```
|
||||
````
|
||||
|
||||
带行号的代码区块(需要渲染器支持,如 Docusaurus、VuePress):
|
||||
|
||||
````markdown
|
||||
```javascript linenums="1"
|
||||
function greet(name) {
|
||||
console.log(`Hello, ${name}!`);
|
||||
}
|
||||
```
|
||||
````
|
||||
|
||||
**表格**:
|
||||
|
||||
```markdown
|
||||
| 列1 | 列2 | 列3 |
|
||||
|-----|-----|-----|
|
||||
| 内容 | 内容 | 内容 |
|
||||
```
|
||||
|
||||
对齐方式:`:---` 左对齐,`:---:` 居中,`---:` 右对齐:
|
||||
|
||||
```markdown
|
||||
| 左对齐 | 居中对齐 | 右对齐 |
|
||||
| :----- | :------: | -----: |
|
||||
| 内容 | 内容 | 100 |
|
||||
```
|
||||
|
||||
**注记**:
|
||||
输入后在Obsidian编辑器中会自动弹出添加注记模块
|
||||
|
||||
```markdown
|
||||
脚注[^1]
|
||||
|
||||
```
|
||||
|
||||
**引用**:
|
||||
|
||||
```markdown
|
||||
> 这是一段引用文字
|
||||
|
||||
> 多级嵌套引用
|
||||
> > 第二层
|
||||
> > > 第三层
|
||||
|
||||
> **本章要点**
|
||||
>
|
||||
> - 了解项目背景和目标
|
||||
> - 掌握核心功能特性
|
||||
```
|
||||
|
||||
**图表绘制(Mermaid)**:
|
||||
|
||||
使用 `` ```mermaid `` 代码块,部分渲染器(GitHub、Typora、Obsidian)支持:
|
||||
|
||||
流程图:
|
||||
|
||||
````markdown
|
||||
```mermaid
|
||||
graph LR
|
||||
A[开始] --> B{条件判断}
|
||||
B -->|是| C[执行操作1]
|
||||
B -->|否| D[执行操作2]
|
||||
C --> E[结束]
|
||||
D --> E
|
||||
```
|
||||
````
|
||||
|
||||
时序图:
|
||||
|
||||
````markdown
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant 用户
|
||||
participant 系统
|
||||
用户->>系统: 登录请求
|
||||
系统-->>用户: 返回结果
|
||||
```
|
||||
````
|
||||
|
||||
甘特图:
|
||||
|
||||
````markdown
|
||||
```mermaid
|
||||
gantt
|
||||
title 项目计划
|
||||
dateFormat YYYY-MM-DD
|
||||
section 设计
|
||||
需求分析 :done, 2024-01-01, 15d
|
||||
section 开发
|
||||
编码实现 :active, 2024-01-16, 30d
|
||||
```
|
||||
````
|
||||
|
||||
饼图:
|
||||
|
||||
````markdown
|
||||
```mermaid
|
||||
pie
|
||||
title 市场份额
|
||||
"Chrome" : 65
|
||||
"Safari" : 15
|
||||
"其他" : 20
|
||||
```
|
||||
````
|
||||
|
||||
**数学公式**:
|
||||
|
||||
行内公式用 `$...$`,块级公式用 `$$...$$`,语法基于 LaTeX:
|
||||
|
||||
```markdown
|
||||
质能方程 $E = mc^2$,其中 $c$ 为光速。
|
||||
```
|
||||
|
||||
$$
|
||||
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
|
||||
$$
|
||||
|
||||
多行对齐公式:
|
||||
|
||||
$$
|
||||
\begin{align}
|
||||
f(x) &= ax^2 + bx + c \\
|
||||
f'(x) &= 2ax + b
|
||||
\end{align}
|
||||
$$
|
||||
|
||||
矩阵:
|
||||
|
||||
$$
|
||||
\begin{pmatrix}
|
||||
a & b \\
|
||||
c & d
|
||||
\end{pmatrix}
|
||||
$$
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
每次完成一个阶段性工作(如写完一节内容、完成一次实验)后提交一次,附上简洁的说明。这样既保留了完整的历史记录,也不会因为误操作而丢失工作成果。
|
||||
|
||||
Reference in New Issue
Block a user