AI 辅助编程是使用人工智能技术帮助开发者编写代码、调试程序、优化性能的实践。
# 安装 VS Code 扩展 code --install-extension GitHub.copilot # 登录 GitHub 账号 # 在 VS Code 中登录 GitHub 账号授权
# 输入注释,Copilot 会生成代码 # 实现快速排序算法 def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right)
# 输入函数签名 def calculate_statistics(numbers): # Copilot 会生成完整的函数实现 if not numbers: return None total = sum(numbers) count = len(numbers) average = total / count sorted_numbers = sorted(numbers) median = sorted_numbers[count // 2] variance = sum((x - average) ** 2 for x in numbers) / count std_dev = variance ** 0.5 return { 'total': total, 'count': count, 'average': average, 'median': median, 'std_dev': std_dev }
# 安装 Copilot Labs code --install-extension GitHub.copilot-labs # 功能: # - 代码解释 # - 代码翻译 # - 代码审查 # - 测试生成
# 安装 Copilot Chat code --install-extension GitHub.copilot-chat # 使用示例: # /explain 解释这段代码 # /fix 修复代码中的问题 # /test 生成测试用例 # /refactor 重构代码
# 下载 Cursor # https://cursor.sh/ # 安装 # macOS/Linux: 直接运行 # Windows: 使用安装程序 # 配置 AI 模型 # Settings → AI Provider → 选择模型
# 按 Cmd+L (Mac) 或 Ctrl+L (Windows) 打开 AI Chat # 使用示例: # "编写一个 Python 脚本,从 API 获取数据并保存到数据库" # "解释这段代码的功能" # "帮我优化这段代码的性能"
# 在 Cursor 中,按 Cmd+K (Mac) 或 Ctrl+K (Windows) # 输入需求,AI 会生成代码 # 示例输入: # "创建一个 Flask API,包含用户注册、登录、获取用户信息接口" # Cursor 会生成: from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy from werkzeug.security import generate_password_hash, check_password_hash app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password_hash = db.Column(db.String(128)) @app.route('/register', methods=['POST']) def register(): data = request.get_json() username = data.get('username') email = data.get('email') password = data.get('password') if User.query.filter_by(username=username).first(): return jsonify({'error': 'Username already exists'}), 400 user = User( username=username, email=email, password_hash=generate_password_hash(password) ) db.session.add(user) db.session.commit() return jsonify({'message': 'User registered successfully'}), 201 @app.route('/login', methods=['POST']) def login(): data = request.get_json() username = data.get('username') password = data.get('password') user = User.query.filter_by(username=username).first() if not user or not check_password_hash(user.password_hash, password): return jsonify({'error': 'Invalid credentials'}), 401 return jsonify({'message': 'Login successful'}), 200 @app.route('/user/<int:user_id>', methods=['GET']) def get_user(user_id): user = User.query.get(user_id) if not user: return jsonify({'error': 'User not found'}), 404 return jsonify({ 'id': user.id, 'username': user.username, 'email': user.email }) if __name__ == '__main__': with app.app_context(): db.create_all() app.run(debug=True)
# 选择代码,按 Cmd+K (Mac) 或 Ctrl+K (Windows) # 输入编辑指令 # 示例: # 选择以下代码,输入"添加错误处理和日志" # 原代码: def divide(a, b): return a / b # Cursor 会生成: def divide(a, b): try: result = a / b logger.info(f"Division successful: {a} / {b} = {result}") return result except ZeroDivisionError: logger.error(f"Division by zero: {a} / {b}") raise except TypeError: logger.error(f"Invalid types for division: {type(a)} / {type(b)}") raise
# 安装 Codeium code --install-extension Codeium.codeium # 特点: # - 免费使用 # - 支持多种语言 # - 代码补全和生成
# 安装 Tabnine code --install-extension TabNine.tabnine-vscode # 特点: # - 本地运行 # - 保护隐私 # - 智能补全
# 安装 AWS Toolkit code --install-extension AmazonWebServices.aws-toolkit-vscode # 特点: # - AWS 集成 # - 支持 AWS 代码生成 # - 安全扫描
❌ 不好的提示词:"写个函数" ✅ 好的提示词:"编写一个 Python 函数,使用递归方式计算斐波那契数列的第 n 项,包含输入验证和错误处理"
✅ 好的提示词: "我正在开发一个电商系统,使用 Spring Boot 3.2 和 PostgreSQL。 请编写一个订单服务,包含以下功能: 1. 创建订单(库存检查、价格计算) 2. 查询订单(支持分页和排序) 3. 取消订单(库存回滚) 使用 JPA 和事务管理。"
✅ 好的提示词: "编写一个 React 组件,用于显示用户列表。 要求: - 使用 TypeScript - 使用函数组件和 Hooks - 包含加载状态和错误处理 - 使用 Material-UI 组件库 - 遵循 Airbnb 代码风格"
# 选择代码,使用 AI 审查 # "审查这段代码,查找潜在的问题:性能、安全、可维护性" # 示例代码: def process_user_input(user_input): # SQL 注入漏洞 query = f"SELECT * FROM users WHERE name = '{user_input}'" results = db.execute(query) return results # AI 会指出: # 1. SQL 注入漏洞 # 2. 缺少输入验证 # 3. 缺少错误处理 # 4. 使用参数化查询修复
# 选择函数,使用 AI 生成测试 # 原函数: def calculate_discount(price, discount_rate): if price < 0 or discount_rate < 0 or discount_rate > 1: raise ValueError("Invalid input") return price * (1 - discount_rate) # AI 生成的测试: import unittest class TestCalculateDiscount(unittest.TestCase): def test_normal_case(self): self.assertEqual(calculate_discount(100, 0.2), 80) def test_zero_discount(self): self.assertEqual(calculate_discount(100, 0), 100) def test_full_discount(self): self.assertEqual(calculate_discount(100, 1), 0) def test_invalid_price(self): with self.assertRaises(ValueError): calculate_discount(-100, 0.2) def test_invalid_discount_rate(self): with self.assertRaises(ValueError): calculate_discount(100, -0.2)
# 选择代码,使用 AI 重构 # "重构这段代码,提高可读性和性能" # 原代码: def find_duplicates(items): duplicates = [] for i in range(len(items)): for j in range(i + 1, len(items)): if items[i] == items[j] and items[i] not in duplicates: duplicates.append(items[i]) return duplicates # AI 重构后: def find_duplicates(items): """找出列表中的重复元素,使用集合提高性能。""" seen = set() duplicates = set() for item in items: if item in seen: duplicates.add(item) else: seen.add(item) return list(duplicates)
# ❌ 不要盲目信任 AI 生成的代码 # ✅ 始终验证代码的正确性和安全性 # 验证步骤: # 1. 理解代码功能 # 2. 检查边界条件 # 3. 运行测试 # 4. 代码审查 # 5. 性能测试
# 定期更新 AI 模型 # 学习新的提示词技巧 # 参与社区讨论 # 分享使用经验
# ❌ 不要将敏感代码发送到 AI # ✅ 使用本地 AI 模型 # ✅ 匿名化代码后再发送 # ✅ 检查服务提供商的隐私政策
AI 辅助编程正在改变开发方式:
记住:AI 是助手,不是替代品。开发者的判断力和创造力仍然不可替代!