整理文件路径:Technical→AI/

This commit is contained in:
2026-04-14 18:54:05 +08:00
parent c9767442ca
commit b6a3ed5f77
145 changed files with 4249 additions and 83 deletions

View File

@@ -0,0 +1,126 @@
---
title:
source:
author: shenwei
published:
created:
description:
tags: [ai, cursor, ide, mcp]
---
#ide #cursor #ai #mcp
```table-of-contents
```
## Cursor 2.0初学者使用指南
### 概述 🔍
本视频面向初学者系统讲解了Cursor 2.0这款集成了人工智能AI功能的代码编辑器的使用方法。视频首先介绍了Cursor的基本背景、安装及界面布局继而阐述了最新特性与模型变更详细示范了如何规划、生成及审查代码。通过示范制作一个简单的“Tetris”游戏和相关网页帮助观众理解如何高效使用AI代理进行项目开发。讲解风格结合演示和实操以通俗易懂的语言帮助初学者迅速上手重点突出AI代码生成的核心功能和实用操作技巧。
## Youtube
https://www.youtube.com/watch?v=l30Eb76Tk5s
## 核心知识点总结 ⏰
- **00:00-01:25 安装与打开项目文件夹**
- Cursor是基于VS Code的AI代码编辑器可免费使用支持付费升级以获取更多生成额度。
- 登录账户后,需通过文件菜单打开或新建项目文件夹,确保代码文件有存储路径。
- **01:26-02:30 最新版本与AI模型介绍**
- Cursor已运营约2年持续升级用户界面和功能。
- 新增了自有AI模型Composer强调其速度优势比类似模型快4倍
- 支持多AI代理并行操作提升代码生成效率。
- **02:31-04:00 界面主题与设置调整**
- 可通过快捷键打开命令面板Ctrl+Shift+P或Cmd+Shift+P切换编辑器主题例如Monokai。
- 设置面板支持界面窗口自由拖拽、调整大小,满足用户个性化需求。
- **04:01-06:30 界面模式与视图切换介绍**
- 主要有“编辑器视图”和“Agents代理视图”两大块分别用于代码文件编辑和AI代理交互。
- 界面左上角一组切换按钮控制左侧边栏、终端等模块显示。
- 了解这些视图和控制按钮,有助于快速定位所需功能和编程场景。
- **06:31-09:30 规划代码开发思路的重要性及基本用法示范**
- 强调在向AI代理发出生成代码请求前需明确项目目标如网站、游戏、后端工具
- 通过语音输入演示让AI生成“Tetris”游戏开发的计划得到任务列表。
- 计划文件通常以Markdown形式展示用户可修改或重新生成计划。
- **09:31-13:30 代码生成与多代理并行使用**
- 启动构建任务时生成新代理,执行计划步骤。
- 多代理功能可以同时运行不同任务,互不干扰。
- 代理工作模式包括Plan规划、Agent执行、Ask咨询三种Ask模式安全仅返回文本不改动文件。
- **13:31-16:30 代码审查与版本控制流程**
- 生成代码后进入“待审查”状态可使用“Diff”功能查看具体改动支持文件逐个审查或整体接收。
- 代码改动一旦生成即写入文件,未点击“撤销”按钮前持续保留,需确保先测试代码再确认保存。
- 推荐结合Git版本控制帮助管理和回滚代码变更降低风险。
- **16:31-19:30 细粒度代码编辑与上下文引用**
- 支持选中文本后快速编辑(如加注释),并可通过快捷键引用代码片段与文件上下文向代理提问,方便理解和定向修改。
- AI支持内置代码自动补全使用Tab键快速接受提示提高代码书写效率。
- **19:31-23:50 多任务代理管理与项目规则自定义**
- 新建代理用于不同任务场景,保证上下文不冲突。
- 演示创建独立页面广告“Play”按钮增强项目模块化管理。
- 可以设定“项目规则”如强制AI为函数生成文档注释实现代码规范自动化。
- **23:51-26:20 版本控制基础与自动化提交演示**
- 介绍Git版本控制的重要概念及操作建议用户学习以避免开发过程中的代码丢失与错误。
- AI可自动初始化Git仓库并提交代码为项目维护带来智能便捷。
- **26:21-27:10 附加功能简介MCP服务器及工具集成**
- MCPModel Context Protocol支持将外部工具和服务集成到AI代理扩展功能范围。
- 演示添加和切换MCP服务器提升开发项目的扩展性和操作能力。
## 关键术语与定义 📚
- **Cursor 2.0**基于VS Code的AI增强代码编辑器支持AI模型辅助代码生成及多任务代理操作。
- **AI代理Agent**基于AI模型的自动化任务助手可以按模式生成代码、规划任务或回答疑问。
- **Composer模型**Cursor自研AI模型主打生成速度快于其他同类模型。
- **Diff文件**显示代码改动对比的视图帮助开发者快速审查AI修改的内容。
- **Git**:主流版本控制系统,记录项目代码的历史版本变化,支持代码回滚和团队协同。
- **Markdown文件.md**:兼容纯文本且可格式化的文档文件格式,常用于代码计划及说明文档。
- **MCP服务器**可集成外部API和工具的协议平台赋予AI代理更丰富的执行能力。
## 推理结构 🔢
1. **需求明确 → 规划任务 → AI生成计划**
- 明确项目类型和预期结果是生成有效代码的前提。
- 使用计划模式让AI拆解步骤形成清晰的开发路线图。
2. **计划执行 → 代码生成 → 代码审查和测试**
- AI代理执行计划任务逐步生成代码。
- 通过Diff文件和运行测试确认代码质量。
3. **修正与迭代 → 版本控制 → 项目维护**
- 根据测试反馈调整代码。
- 结合Git管理项目版本确保稳定可靠。
## 示例解析 💡
- **通过语音输入生成开发计划**利用“Whisper Flow”音频工具直接对AI代理发出口述请求生成简易Tetris游戏开发计划帮助初学者体验从想法到实施的流程。
- **多代理并行任务**一边由一个代理执行游戏开发另一边新建代理创建游戏的独立Landing Page通过实战演示展示多线程开发优势。
- **规则文件应用示范**设定“函数必须生成Doc字符串”的规则实现代码统一风格保证代码规范性自动执行。
## 易错点提醒 ⚠️
- **盲目接受代码**误以为“Keep All”后代码才生成实际上代码生成即写入文件先测试再保存避免问题。
- **忽视版本控制**不使用Git版本控制可能导致无法回滚代码尤其是AI生成的代码出现错误时难以恢复。
- **代理模式混淆**Agent模式会修改代码Ask模式仅提供文本答案不会改动代码需根据需求选择。
- **多代理上下文混用**:在同一个代理内继续先前任务效果更佳,分散任务需创建新代理避免上下文混乱。
## 快速复习技巧/自测题 🎯
**复习技巧(无答案)**
- 解释Cursor中Plan模式、Agent模式和Ask模式的区别。
- 描述如何使用Diff视图查看AI生成的代码改动。
- 列出在生成代码前需要规划的关键项目问题。
**自测题(含答案)**
1. **问如何在Cursor中切换编辑器主题**
使用快捷键Ctrl+Shift+P或Cmd+Shift+P打开命令面板输入“theme”选择“Preferences: Color Theme”来切换。
2. **问Cursor中如何撤销AI生成的代码**
点击“Undo All”按钮撤销所有AI生成的改动注意关闭文件或多次修改后可能无法撤销。
3. **问Git在项目管理中的核心作用是什么**
Git用于版本控制能记录代码变更历史方便回滚和多人协作。
4. **问如果想让AI自动为每个函数生成文档注释应如何操作**
新增项目规则文件写入“Always generate doc strings for functions”的规则AI会自动遵守。
## 总结回顾 🔄
Cursor 2.0是一款强大的AI代码协助编辑器融合了先进的AI模型Composer支持多代理任务并行和多模式交互。通过明确项目目标制定开发计划结合代码生成、代码审查与版本控制流程用户可以高效地实现项目开发。其灵活的界面设置、丰富的辅助功能如语音输入、上下文引用及规则配置进一步提升用户体验。理解不同代理模式和审查机制是避免误操作的关键熟练使用Git版本控制则能实现代码稳定可靠的管理。整体来看Cursor 2.0为开发者提供了一条从想法到实现的智能化路径是现代AI辅助编程的重要工具之一。

View File

@@ -0,0 +1,192 @@
---
title:
source:
author: shenwei
published:
created:
description:
tags: [remote-ssh, trae, ubuntu]
---
#trae #ubuntu #remote-ssh
```table-of-contents
```
### 1. 整体架构图示
- **Ubuntu 2 (Dev Server):** 存放源码,运行 `tiktok_pm` 容器代码挂载Trae 通过 SSH 远程连接此处。
- **Ubuntu 1 (Prod Server):** 运行 `tiktok_pm` 容器(镜像打包),通过 Docker 卷持久化数据,不挂载源码。
- **ThinkBook (Local):** 仅作为 UI 端,通过 Trae 连接 Ubuntu 2 进行开发。
### 2. Ubuntu 2开发环境配置 (Dev)
这是您主要的工作区。路径:`/home/shenwei/docker/tiktok_pm`
#### A. 目录结构
``` bash
/home/shenwei/docker/tiktok_pm/
├── src/ # Django 源代码仓库
├── docker-compose.yml # 开发环境 Compose
├── .env.dev # 开发环境变量
└── Dockerfile # 开发/生产共用基础镜像定义
```
#### B. 开发环境 `docker-compose.yml`
开发环境的核心在于 **Bind Mount**(绑定挂载),实现代码修改实时生效。
### 3. 具体配置 (ThinkBook)
#### 第一阶段:基础设施层配置 (Connectivity & Permissions)
在配置 IDE 之前,必须确保 SSH 连接是免密的,并且你的 Ubuntu 用户有权直接操作 Docker否则 Trae 的远程插件会因为权限弹窗而连接失败或功能受限。
##### 1. 配置 SSH 免密登录 (本地机器 -> Ubuntu2 Server)
Trae 的远程连接依赖于非交互式登录。
- **本地机器(客户端)生成密钥对**(如果已有可跳过):
Bash
```
ssh-keygen -t rsa -b 4096
```
- **将公钥上传至 Ubuntu2 Server**
```
# 替换 user 和 ip
ssh-copy-id -i ~/.ssh/id_rsa.pub shenwei@192.168.3.45
```
- **配置 SSH Config 文件**(推荐): 在本地 `~/.ssh/config` (Mac/Linux) 或 `%USERPROFILE%\.ssh\config` (Windows) 中添加别名,方便 Trae 读取。
```
Host ubuntu2
HostName 192.168.3.45
User shenwei
Port 22
IdentityFile "C:\Users\ishenwei\.ssh\id_rsa" # 你的私钥路径
Host ubuntu2-ext # 公网访问
HostName ubuntu2.ishenwei.online:60024
User shenwei
Port 22
IdentityFile "C:\Users\ishenwei\.ssh\id_rsa" # 你的私钥路径
Host ubuntu1
HostName 192.168.3.47
User shenwei
Port 22
IdentityFile "C:\Users\ishenwei\.ssh\id_rsa" # 你的私钥路径
Host ubuntu1-ext # 公网访问
HostName ubuntu1.ishenwei.online:60022
User shenwei
Port 22
IdentityFile "C:\Users\ishenwei\.ssh\id_rsa" # 你的私钥路径
```
在 Ubuntu Server 上,你的用户必须在 `docker` 用户组中,否则 Trae 无法列出容器。
- **SSH 登录服务器执行:**
Bash
```
sudo usermod -aG docker $USER
# 必须注销并重新登录,或执行以下命令使组变更立即生效
newgrp docker
```
- **验证:** 执行 `docker ps`,如果不需要 sudo 且能列出容器,则配置成功。
---
#### 第二阶段Trae 客户端配置 (IDE Setup)
Trae 原生支持 VS Code 的插件生态,我们需要利用 Remote Development 能力。
##### 1. 安装 Trae 及必要插件
打开 Trae在左侧扩展市场Extensions中搜索并安装如果尚未预装
- **Remote - SSH** (必装)
- **Docker** (Microsoft 出品,必装)
- **Dev Containers** (如果你计划使用 `.devcontainer` 模式开发,强烈推荐)
##### 2. 建立远程连接
1. 使用快捷键 `Ctrl/Cmd + Shift + P` 调出命令面板。
2. 输入并选择:`Remote-SSH: Connect to Host...`。
3. 选择你在 SSH Config 中配置的 `ubuntu2`。
4. Trae 会在远程服务器上安装 **VS Code Server (Trae Server)** 代理组件。首次连接需要几十秒。
---
#### 第三阶段:开发模式选择 (Workflow Configuration)
针对 Docker 项目,你有两种主要的开发模式,根据你的需求选择:
##### 模式 AAttach 到正在运行的容器 (推荐用于调试)
这种模式下,你直接“进入”已经在 Ubuntu 上跑起来的 Docker 容器进行代码修改。
1. **连接成功后**,在 Trae 左侧侧边栏找到 **Docker** 图标。
2. 在 **Containers** 列表中,找到你的目标项目容器。
3. 右键点击该容器,选择 **"Attach Visual Studio Code"** (或 Trae 对应选项)。
4. Trae 会打开一个新的窗口,此时你的 IDE **实际上是运行在 Docker 容器内部**。
5. **优点**:环境完全隔离,直接使用容器内的 Python/Node/Go 环境,无需在 Ubuntu 宿主机安装语言环境。
##### 模式 B远程编辑宿主机文件 + Docker CLI (推荐用于编排)
这种模式下,你编辑的是 Ubuntu 文件系统上的代码 (`/home/user/project`),但在终端调用 Docker 命令。
1. **连接成功后**,点击 "Open Folder"。
2. 选择 Ubuntu 上 `docker-compose.yml` 或项目代码所在的路径。
3. 打开终端 (`Ctrl + ~`),直接执行 `docker compose up -d` 等命令。
4. **优点**:适合管理 `docker-compose.yml` 文件本身,或者同时管理多个微服务容器的配置。
---
#### 第四阶段:解决常见“坑” (Troubleshooting)
根据经验,在内网开发 Docker 项目常遇到以下问题,请提前规避:
1. **Git 凭证问题**
- 如果在容器内开发(模式 A容器内可能没有你的 SSH Key 或 Git 配置。
- **解决**Trae/VS Code 通常会自动转发本地的 SSH Agent。确保本地运行了 SSH Agent (`eval "$(ssh-agent -s)" && ssh-add`),这样容器内拉取代码使用的是你本地的 Key。
2. **文件权限 (UID/GID) 问题**
- 如果使用 Volume 挂载(将 Ubuntu 目录挂载进容器),容器内生成的 Build 文件可能归属于 `root`,导致你在宿主机无法删除或修改。
- **解决**:在 Dockerfile 中创建与宿主机相同 UID 的用户,或在 `docker-compose.yml` 中指定 `user: "${UID}:${GID}"`。
3. **内网穿透 (如果不只是局域网)**
- 如果你离开办公地点,需要从公网访问这个内网 Server。
- **建议**:不要直接暴露 SSH 端口。在 Ubuntu 上安装 **Tailscale** 或 **Cloudflare Tunnel**。
- 如果使用 TailscaleTrae 的 SSH Config HostName 可以直接填 Tailscale 的 IP (如 `100.x.x.x`),实现无缝切换。

View File

@@ -0,0 +1,211 @@
---
title: vibe-coding-cn/i18n/zh/documents/Methodology and Principles/A Formalization of Recursive Self-Optimizing Generative Systems.md at main · 2025Emma/vibe-coding-cn
source: https://github.com/2025Emma/vibe-coding-cn/blob/main/i18n/zh/documents/Methodology%20and%20Principles/%E5%BC%80%E5%8F%91%E7%BB%8F%E9%AA%8C.md
author: shenwei
published:
created: 2025-12-30
description: Contribute to 2025Emma/vibe-coding-cn development by creating an account on GitHub.
tags: []
---
## 开发经验与项目规范整理文档
## 目录
1. 变量名维护方案
2. 文件结构与命名规范
3. 编码规范Coding Style Guide
4. 系统架构原则
5. 程序设计核心思想
6. 微服务
7. Redis
8. 消息队列
---
## 1\. 变量名维护方案
## 1.1 新建“变量名大全文件”
建立一个统一的变量索引文件,用于 AI 以及团队整体维护。
### 文件内容包括(格式示例):
| 变量名 | 变量注释(描述) | 出现位置(文件路径) | 出现频率(统计) |
| --- | --- | --- | --- |
| user\_age | 用户年龄 | /src/user/profile.js | 12 |
### 目的
- 统一变量命名
- 方便全局搜索
- AI 或人工可统一管理、重构
- 降低命名冲突和语义不清晰带来的风险
---
## 2\. 文件结构与命名规范
## 2.1 子文件夹内容
每个子目录中需要包含:
- `agents` —— 负责自动化流程、提示词、代理逻辑
- `claude.md` —— 存放该文件夹内容的说明文档、设计思路与用途
## 2.2 文件命名规则
- 使用 **小写英文 + 下划线****小驼峰** (视语言而定)
- 文件名需体现内容职责
- 避免缩写与含糊不清的命名
示例:
- `user_service.js`
- `order_processor.py`
- `config_loader.go`
## 2.3 变量与定义规则及解释
- 命名尽可能语义化
- 遵循英语语法逻辑(名词属性、动词行为)
- 避免 `a, b, c` 此类无意义名称
- 常量使用大写 + 下划线(如: `MAX_RETRY_COUNT`
---
## 3\. 编码规范
每个文件、每个类、每个函数应只负责一件事。
- 提炼公共逻辑
- 避免重复代码DRY
- 模块化、函数化,提高复用价值
系统行为应明确划分:
| 概念 | 说明 |
| --- | --- |
| 消费端 | 接收外部数据或依赖输入的地方 |
| 生产端 | 生成数据、输出结果的地方 |
| 状态(变量) | 存储当前系统信息的变量 |
| 变换(函数) | 处理状态、改变数据的逻辑 |
明确区分 **输入 → 处理 → 输出** ,并独立管理每个环节。
### 3.4 并发Concurrency
- 清晰区分共享资源
- 避免数据竞争
- 必要时加锁或使用线程安全结构
- 区分“并发处理”和“异步处理”的差异
---
## 4\. 系统架构原则
### 4.1 先梳理清楚架构
在写代码前先明确:
- 模块划分
- 输入输出
- 数据流向
- 服务边界
- 技术栈
- 依赖关系
严谨开发流程:
1. 先理解需求
2. 保持架构与代码简单
3. 写可维护的自动化测试
4. 小步迭代,不做大爆炸开发
---
## 5\. 程序设计核心思想
## 5.1 从问题开始,而不是从代码开始
编程的第一步永远是: **你要解决什么问题?**
复杂问题拆解为可独立完成的小单元。
减少复杂度、魔法代码、晦涩技巧。
用函数、类、模块复用逻辑,不要复制粘贴。
## 5.5 清晰的命名
- `user_age``a` 清晰
- `get_user_profile()``gp()` 清晰 命名要体现 **用途****语义**
## 5.6 单一职责
一个函数只处理一个任务。
## 5.7 代码可读性优先
你写的代码是给别人理解的,不是来炫技的。
## 5.8 合理注释
注释解释“为什么”,不是“怎么做”。
先能跑,再让它好看,最后再优化性能。
## 5.10 错误是朋友,调试是必修课
阅读报错、查日志、逐层定位,是程序员核心技能。
永远不要把代码只放本地。
## 5.12 测试你的代码
未测试的代码迟早会出问题。
## 5.13 编程是长期练习
所有人都经历过:
- bug 调不出来
- 通过时像挖到宝
- 看着看着能看懂别人代码
坚持即是高手。
---
## 6\. 微服务
微服务是一种架构模式,将系统拆解为多个 **独立开发、独立部署、独立扩容** 的服务。
特点:
- 每个服务处理一个业务边界Bounded Context
- 服务间通过 API 通信HTTP、RPC、MQ 等)
- 更灵活、更可扩展、容错更高
---
Redis 的作用:
- 作为缓存极大提升系统“读性能”
- 降低数据库压力
- 提供计数、锁、队列、Session 等能力
- 让系统更快、更稳定、更抗压
---
消息队列用于服务之间的“异步通信”。
作用:
- 解耦
- 削峰填谷
- 异步任务处理
- 提高系统稳定性与吞吐