上一篇 下一篇 分享链接 返回 返回顶部

AI 编程火起来后,我整理了一套真实可用的配置和工作流

发布人:慈云数据-客服中心 发布时间:5小时前 阅读量:0

AI编程 为什么突然火了|附配置文件

过去一年,如果你关注技术圈,大概率会频繁看到一个词:AI编程

从最早的 GitHub Copilot 自动补全,到 ChatGPT 帮人写脚本、改 Bug,再到 Cursor、Windsurf、Claude Code、Cline、Continue、通义灵码、豆包 MarsCode 等工具不断出现,AI 编程已经从“尝鲜玩具”逐渐变成很多开发者日常工作流的一部分。

以前我们谈 AI 编程,更多是在讨论:“它能不能替代程序员?”
现在这个问题已经变了,变成了:“不会用 AI 编程工具的程序员,会不会先被会用的人拉开差距?”

那么,AI 编程为什么突然火了?它到底解决了什么问题?普通开发者应该怎么配置、怎么使用、怎么避坑?本文会从原因、场景、工具、工作流以及配置文件几个角度展开。


一、AI编程突然火了,不是偶然

AI 编程的爆发,看起来像是突然发生的,但背后其实有几个条件同时成熟。

1. 大模型能力到了“可用临界点”

早期的代码生成工具并不新鲜,很多 IDE 很早就支持模板生成、代码片段、自动补全。但这些工具本质上还是“规则驱动”,它们只能根据固定模式补全一些语法结构。

而大模型带来的变化是:它不仅能补全代码,还能理解上下文。

比如你告诉它:

我有一个用户登录接口,需要校验手机号、验证码、登录状态,并返回 JWT。

它不只是写一段孤立函数,而是可以根据你的技术栈生成 Controller、Service、DTO、错误处理,甚至顺手帮你补上单元测试。

这说明大模型已经具备了几种关键能力:

  • 理解自然语言需求;
  • 阅读已有项目代码;
  • 根据上下文生成符合风格的代码;
  • 解释报错信息;
  • 给出重构建议;
  • 辅助编写测试和文档。

当这些能力叠加在一起,AI 就不再只是“智能补全”,而开始接近一个“初级开发助手”。


2. 开发者真的有大量重复劳动

很多人以为程序员每天都在做高深算法,实际上大量开发工作是:

  • 写 CRUD;
  • 写接口;
  • 写参数校验;
  • 写数据结构转换;
  • 写配置文件;
  • 写单元测试;
  • 查文档;
  • 改报错;
  • 对接第三方 API;
  • 给历史代码补注释;
  • 根据需求改字段、改枚举、改返回结构。

这些事情并不都难,但它们非常耗时间。

AI 编程真正火起来,不是因为它能完成所有复杂系统设计,而是因为它在这些“中低复杂度任务”上太好用了。

例如:

你要写一个 Python 脚本,把一个目录下所有 Markdown 文件中的图片链接提取出来,再导出成 CSV。
过去你可能要查 os.walk、正则、CSV 写入方式。现在你只要描述需求,AI 十几秒就能生成第一版。

你要把一段 JavaScript 代码改成 TypeScript,并补上类型。
过去要逐行处理,现在 AI 可以快速完成初稿。

你遇到一个 Docker 构建失败的日志。
过去要搜索很多帖子,现在 AI 能根据报错直接解释原因,并给出修改建议。

AI 不一定一次就完全正确,但它显著降低了“从 0 到 1”的成本。


3. IDE集成让AI进入真实工作流

AI 编程早期很多人是在网页里用 ChatGPT:复制代码、粘贴问题、等待回复、再粘回 IDE。

这个流程能用,但不顺手。

真正让 AI 编程普及的,是它开始深度集成到编辑器和 IDE 中。

现在的 AI 编程工具可以做到:

  • 读取当前文件;
  • 读取整个项目结构;
  • 根据选中代码进行修改;
  • 直接生成 diff;
  • 自动创建文件;
  • 自动执行命令;
  • 分析终端报错;
  • 结合 Git 历史理解项目变化;
  • 通过 Agent 模式连续完成多步任务。

这意味着 AI 不再是一个外部聊天机器人,而是进入了开发者每天使用的主战场:编辑器。

当 AI 能直接在项目里“看代码、改代码、跑命令、修错误”,体验就完全不同了。


二、AI编程到底能帮我们做什么?

很多人第一次使用 AI 编程工具,会犯一个错误:把它当作“万能程序员”。

正确的方式是,把它当作一个能力很强但需要监督的助手。

它很适合做以下几类事情。


1. 快速生成代码初稿

比如你要写一个 FastAPI 接口:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class LoginRequest(BaseModel):
    phone: str
    code: str

@app.post("/login")
def login(req: LoginRequest):
    if not req.phone or not req.code:
        return {"error": "phone and code are required"}
    return {
        "token": "mock-token",
        "phone": req.phone
    }

这样的代码并不复杂,但如果每次都手写,依然会消耗注意力。AI 可以先生成初稿,开发者再根据项目规范调整。


2. 解释陌生代码

进入一个历史项目时,最痛苦的事情之一是:不知道代码为什么这么写。

你可以选中某个函数,让 AI 解释:

  • 这个函数的作用是什么;
  • 输入输出是什么;
  • 是否有潜在问题;
  • 是否存在性能隐患;
  • 如果要重构,应该怎么拆。

AI 对于“代码阅读”的帮助非常明显。很多时候它能让你更快跨过陌生项目的理解门槛。


3. 辅助排查错误

例如终端出现:

ModuleNotFoundError: No module named 'requests'

AI 会告诉你:

pip install requests

但这只是最简单的情况。

更有价值的是复杂错误,例如:

  • Node.js 依赖版本冲突;
  • Python 虚拟环境不一致;
  • Docker 容器内外路径不一致;
  • Nginx 反向代理配置错误;
  • TypeScript 类型推断异常;
  • 数据库迁移失败;
  • CI/CD 构建失败。

AI 可以根据日志给出排查路径,至少能帮你节省大量搜索时间。


4. 生成测试用例

很多团队都知道测试重要,但现实中测试覆盖率往往不高。原因很简单:写测试很烦。

AI 非常适合补测试,例如:

def add(a: int, b: int) -> int:
    return a + b

AI 可以生成:

def test_add_positive_numbers():
    assert add(1, 2) == 3

def test_add_negative_numbers():
    assert add(-1, -2) == -3

def test_add_mixed_numbers():
    assert add(-1, 2) == 1

对于复杂业务逻辑,AI 也可以先给出测试框架,开发者再补充具体断言。


5. 重构和优化代码

AI 可以帮你做一些基础重构:

  • 提取公共函数;
  • 拆分复杂函数;
  • 消除重复逻辑;
  • 改善变量命名;
  • 增加类型标注;
  • 补充异常处理;
  • 优化 SQL 查询;
  • 将同步逻辑改成异步逻辑。

当然,重构类任务一定要谨慎。因为 AI 可能会“看起来改得很优雅”,但偷偷改变了业务语义。所以最好配合测试、代码审查和小步提交。


三、为什么现在很多公司开始重视AI编程?

AI 编程火,不只是开发者个人觉得好用,很多公司也开始推动内部使用。

主要原因有三个。


1. 提升研发效率

研发效率不是简单地“多写几行代码”,而是让开发者减少低价值消耗,把更多时间放在架构设计、业务理解和质量保障上。

AI 能提升效率的地方包括:

  • 新项目脚手架生成;
  • 老项目代码理解;
  • API 对接;
  • 测试补全;
  • 文档编写;
  • 自动化脚本;
  • 日志排查;
  • DevOps 配置。

这些任务虽然分散,但累计起来非常可观。


2. 降低新人上手成本

新人进入项目,经常会问:

  • 项目怎么启动?
  • 配置文件在哪里?
  • 这个接口在哪里实现?
  • 数据库表对应哪个实体?
  • 为什么这里要这么判断?
  • 如何本地调试?

如果项目接入了 AI 工具,并且提供了良好的上下文配置,AI 可以成为一个“项目问答助手”。

它不能替代导师,但可以减少大量重复答疑。


3. 推动知识沉淀

很多公司的技术知识分散在:

  • README;
  • Wiki;
  • 飞书文档;
  • 代码注释;
  • 会议纪要;
  • 老员工脑子里。

AI 编程工具如果结合文档检索和代码索引,可以让这些知识更容易被使用。

未来的研发组织,很可能会出现一种新的基础设施:企业级 AI 研发助手。它不仅会写代码,还会理解公司的技术规范、业务规则和上线流程。


四、AI编程的常见误区

AI 编程很强,但也有明显边界。如果盲目依赖,反而会制造风险。


1. 误区一:AI生成的代码可以直接上线

这是非常危险的想法。

AI 生成的代码可能存在:

  • 逻辑漏洞;
  • 安全问题;
  • 性能问题;
  • 依赖版本错误;
  • 不符合项目规范;
  • 异常处理缺失;
  • 边界条件遗漏;
  • 业务语义理解错误。

所以 AI 生成代码后,必须经过:

  1. 人工审查;
  2. 本地运行;
  3. 单元测试;
  4. 集成测试;
  5. 代码评审;
  6. 安全扫描。

AI 可以提高效率,但不能替代工程质量流程。


2. 误区二:提示词越长越好

很多人以为提示词越长,AI 输出越好。其实不一定。

好的提示词应该清晰表达:

  • 背景;
  • 目标;
  • 输入;
  • 输出;
  • 限制条件;
  • 技术栈;
  • 代码风格;
  • 不要做什么。

例如,不好的提示词:

帮我写个登录。

更好的提示词:

使用 FastAPI 写一个登录接口。请求参数包括 phone 和 code。需要校验手机号格式,验证码暂时使用 mock 校验,成功后返回 JWT 字符串。请拆分 router、service、schema 三层,并补充 pytest 测试用例。

这样的提示词更容易得到可用结果。


3. 误区三:AI会让程序员不需要学习基础

恰恰相反,AI 编程时代更需要基础能力。

因为你要判断 AI 写得对不对。

如果你不懂数据库索引,就无法判断它生成的 SQL 是否低效。
如果你不懂并发,就无法判断它有没有线程安全问题。
如果你不懂安全,就无法发现它把用户输入直接拼进 SQL。
如果你不懂架构,就无法判断它是否把简单问题复杂化。

AI 会放大人的能力,而不是自动填平所有差距。


五、推荐的AI编程工作流

一个比较稳妥的 AI 编程流程可以是:

第一步:让AI先理解项目

不要一上来就让 AI 改代码,可以先问:

请阅读当前项目结构,总结项目的技术栈、主要目录作用和启动方式。

这样可以确认 AI 是否真正理解上下文。


第二步:让AI提出方案,而不是直接动手

例如:

我想增加一个用户积分模块。请先给出实现方案,包括数据库表、接口设计、核心服务逻辑和可能影响的文件。暂时不要修改代码。

先看方案,再决定是否让它执行。


第三步:小步修改

不要让 AI 一次完成巨大需求。可以拆成:

  1. 先创建数据模型;
  2. 再写接口;
  3. 再写服务;
  4. 再写测试;
  5. 再补文档。

每一步都检查 diff。


第四步:必须跑测试

AI 改完代码后,至少要执行:

npm test

或:

pytest

或:

mvn test

如果没有测试,也应该至少启动项目、调用接口、检查日志。


第五步:让AI做代码审查

你可以让 AI 对它刚写的代码进行反向审查:

请审查刚才的改动,重点检查潜在 bug、安全问题、边界条件、异常处理和是否违反项目规范。

这一步经常能发现一些低级问题。


六、附:AI编程配置文件示例

下面给出几个常用配置文件示例,可以根据自己的工具和项目调整。


1. Cursor Rules 配置示例

如果你使用 Cursor,可以在项目根目录创建:

.cursor/rules/project.mdc

示例内容如下:

---
description: Project coding rules
globs:
  - "**/*.ts"
  - "**/*.tsx"
  - "**/*.js"
  - "**/*.jsx"
alwaysApply: true
---

# 项目开发规则

你是本项目的 AI 编程助手,请遵守以下规则:

## 技术栈

- 前端框架:React + TypeScript
- 构建工具:Vite
- 状态管理:Zustand
- UI 组件库:Ant Design
- 请求库:Axios
- 测试框架:Vitest

## 代码风格

- 所有新代码必须使用 TypeScript。
- React 组件优先使用函数组件。
- 组件文件使用 PascalCase 命名。
- 工具函数使用 camelCase 命名。
- 禁止使用 `any`,除非明确说明原因。
- 优先使用类型推导,必要时补充 interface 或 type。
- 异步函数必须包含错误处理。
- 不要在组件中直接写复杂业务逻辑,应抽离到 hooks 或 service。

## 目录规范

- 页面组件放在 `src/pages`。
- 通用组件放在 `src/components`。
- API 请求放在 `src/services`。
- 类型定义放在 `src/types`。
- 工具函数放在 `src/utils`。
- 自定义 hooks 放在 `src/hooks`。

## 输出要求

- 修改代码前先说明计划。
- 涉及多个文件时,列出文件清单。
- 修改完成后说明变更点。
- 如果新增功能,请尽量补充测试。
- 如果发现需求不明确,先提出问题,不要擅自假设。

## 禁止事项

- 不要删除现有业务逻辑,除非明确要求。
- 不要引入新的依赖,除非说明原因并获得确认。
- 不要修改公共配置文件,除非任务需要。
- 不要输出与项目无关的大段解释。

这个配置的作用是让 AI 在当前项目中遵守统一规范,避免每次都重复告诉它技术栈和目录结构。


2. Continue 配置示例

如果你使用 VS Code 插件 Continue,可以配置 config.json

路径通常为:

~/.continue/config.json

示例:

{
  "models": [
    {
      "title": "DeepSeek Chat",
      "provider": "openai",
      "model": "deepseek-chat",
      "apiBase": "https://api.deepseek.com/v1",
      "apiKey": "YOUR_API_KEY"
    },
    {
      "title": "Qwen Coder",
      "provider": "openai",
      "model": "qwen2.5-coder-32b-instruct",
      "apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "apiKey": "YOUR_API_KEY"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Qwen Coder Autocomplete",
    "provider": "openai",
    "model": "qwen2.5-coder-7b-instruct",
    "apiBase": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "apiKey": "YOUR_API_KEY"
  },
  "customCommands": [
    {
      "name": "explain",
      "prompt": "请解释选中的代码,包括功能、输入输出、潜在问题和优化建议。"
    },
    {
      "name": "test",
      "prompt": "请为选中的代码生成单元测试,覆盖正常场景、边界场景和异常场景。"
    },
    {
      "name": "review",
      "prompt": "请审查选中的代码,重点检查 bug、安全问题、性能问题、可读性和可维护性。"
    }
  ],
  "contextProviders": [
    {
      "name": "code"
    },
    {
      "name": "docs"
    },
    {
      "name": "diff"
    },
    {
      "name": "terminal"
    }
  ]
}

使用时请把 YOUR_API_KEY 替换成自己的密钥。不要把真实 API Key 提交到 Git 仓库。


3. Cline 规则文件示例

如果你使用 Cline,可以在项目根目录创建:

.clinerules

示例内容:

# Cline 项目规则

## 角色设定

你是一个谨慎的高级全栈工程师,负责协助开发、重构、测试和排查问题。

## 工作原则

1. 在执行修改前,先阅读相关文件并给出计划。
2. 每次只做必要修改,避免扩大影响范围。
3. 修改后必须说明改了哪些文件、为什么改。
4. 如果需要运行命令,请先说明命令用途。
5. 如果命令可能删除文件、修改数据库或影响系统环境,必须先请求确认。
6. 不要猜测业务规则,遇到不明确需求必须提问。
7. 优先保持现有代码风格,不要强行重构无关代码。

## 编码规范

- 保持函数职责单一。
- 避免重复代码。
- 关键逻辑需要注释。
- 对外接口需要参数校验。
- 数据库操作需要考虑异常处理。
- 所有新增功能应尽量补充测试。
- 不允许硬编码密钥、Token、密码和内部地址。

## 安全要求

- 禁止输出真实密钥。
- 禁止将用户输入直接拼接到 SQL。
- 禁止在日志中打印敏感信息。
- 禁止绕过权限校验。
- 禁止随意关闭安全配置。

## 输出格式

请用中文回答,结构清晰,必要时使用 Markdown。

4. 通用项目提示词文件

不管使用哪种工具,都可以在项目根目录放一个:

AI_GUIDE.md

示例:

# AI 开发助手指南

## 项目简介

这是一个面向企业内部使用的管理后台系统,主要包含用户管理、角色权限、订单管理和数据看板功能。

## 技术栈

- 前端:Vue 3、TypeScript、Vite、Pinia、Element Plus
- 后端:Node.js、NestJS、Prisma、PostgreSQL
- 测试:Vitest、Playwright
- 部署:Docker、Nginx、GitHub Actions

## 本地启动

前端:

```bash
cd web
pnpm install
pnpm dev

后端:

cd server
pnpm install
pnpm prisma migrate dev
pnpm start:dev

目录说明

web/src/pages       页面
web/src/components  通用组件
web/src/api         请求封装
web/src/stores      状态管理
server/src/modules  后端业务模块
server/prisma       数据库模型和迁移文件

代码要求

  • 前端组件必须使用