💻 AI 编程助手
用 AI 提升编程效率:代码生成、Bug 修复、重构优化、文档编写,让编程事半功倍。
主流 AI 编程工具
| 工具 | 类型 | 价格 | 特点 |
|---|---|---|---|
| GitHub Copilot | IDE 插件 | $10/月 | 代码补全流畅、集成度高 |
| Cursor | AI 编辑器 | 免费/Pro $20/月 | 专为 AI 编程设计 |
| Claude Code | CLI 工具 | Claude Pro 包含 | 终端 AI 编程、多文件编辑 |
| Windsurf | AI 编辑器 | 免费/Pro $15/月 | Cascade 多步推理 |
| Codeium | IDE 插件 | 免费 | 零成本入门 |
实战 1:用 AI 从零写一个功能
场景:写一个 Python 爬虫
请用 Python 写一个爬虫,功能如下:
1. 爬取 Hacker News 首页的文章标题和链接
2. 按评论数排序
3. 输出为 CSV 文件
要求:
- 使用 requests + BeautifulSoup
- 代码要有详细注释
- 包含错误处理
- 附上使用示例1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
AI 输出示例
python
import requests
from bs4 import BeautifulSoup
import csv
from typing import List, Dict
def scrape_hackernews() -> List[Dict[str, str]]:
"""爬取 Hacker News 首页文章信息"""
url = "https://news.ycombinator.com/"
try:
# 发送请求
response = requests.get(url, timeout=10)
response.raise_for_status()
# 解析 HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 提取文章信息
articles = []
for item in soup.select('.titleline'):
title = item.text
link = item.a['href'] if item.a else ''
articles.append({'title': title, 'link': link})
return articles
except requests.RequestException as e:
print(f"请求失败: {e}")
return []
def save_to_csv(articles: List[Dict], filename: str = 'hn_articles.csv'):
"""将文章信息保存为 CSV 文件"""
with open(filename, 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=['title', 'link'])
writer.writeheader()
writer.writerows(articles)
print(f"已保存到 {filename}")
if __name__ == "__main__":
articles = scrape_hackernews()
save_to_csv(articles)
print(f"共爬取 {len(articles)} 篇文章")1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
实战 2:用 AI Debug
场景:代码报错,让 AI 帮忙找问题
以下代码报错了,请帮我找出问题并修复:
错误信息:
TypeError: 'NoneType' object is not subscriptable
代码:
def get_user_name(user):
return user['name']
users = [{'name': 'Alice'}, None, {'name': 'Bob'}]
for user in users:
print(get_user_name(user))1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
AI 回复示例
问题分析:
users列表中第二个元素是None,调用None['name']会报错。修复方案: 添加空值检查
python
def get_user_name(user):
if user is None:
return 'Unknown'
return user.get('name', 'Unknown')1
2
3
4
2
3
4
实战 3:代码重构
请重构以下代码,提升可读性和性能:
1. 提取重复逻辑为函数
2. 使用更 Pythonic 的写法
3. 添加类型注解
4. 给出重构前后的对比说明
[你的代码]1
2
3
4
5
6
7
2
3
4
5
6
7
实战 4:写单元测试
请为以下函数编写完整的单元测试,覆盖:
1. 正常情况
2. 边界情况
3. 异常情况
使用 pytest 框架,每个测试用例要有清晰的命名和注释。
[你的函数代码]1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
实战 5:生成文档
请为以下代码生成 JSDoc / Python Docstring 文档:
- 包含参数说明、返回值说明
- 给出 1-2 个使用示例
- 标注可能抛出的异常
[你的代码]1
2
3
4
5
6
2
3
4
5
6
AI 编程最佳实践
✅ 应该做的
- 明确需求 — 描述清楚输入、输出、约束
- 分步提需求 — 复杂功能拆成小步骤
- 提供上下文 — 附上相关代码、错误信息
- 审查代码 — AI 生成的代码必须人工 review
- 写测试 — 用 AI 生成测试用例验证正确性
❌ 不应该做的
- 盲目信任 — AI 可能生成有 Bug 的代码
- 忽视安全 — 检查 SQL 注入、XSS 等安全问题
- 跳过测试 — AI 代码也可能有边界问题
- 泄露隐私 — 不要把密钥、敏感数据发给 AI
效率对比
| 任务 | 手动编码 | AI 辅助 | 效率提升 |
|---|---|---|---|
| 写一个新功能 | 2-4 小时 | 30-60 分钟 | 3-4x |
| Debug | 30-60 分钟 | 5-15 分钟 | 4-6x |
| 写测试用例 | 1-2 小时 | 15-30 分钟 | 4x |
| 代码重构 | 2-3 小时 | 30-60 分钟 | 3x |
| 学习新框架 | 数天 | 数小时 | 5x+ |
下一步
- 👉 ChatGPT 使用指南 — 通用 AI 助手
- 👉 Claude 使用指南 — 编程能力突出
