一、前言

本文将介绍AI编程工具Cursor的入门使用。

二、下载和使用

Cursor 官网 https://cursor.com/cn

2.1 下载

首页直接下载~~,安装后需要登陆,如果有Google账号可以直接登陆,没有也可以注册一个~

2.2 关于定价

如果想AI帮你直接写代码,是需要开通Pro,目前是20刀一月,约等于100R多点。按token计费的,我当时用的比较省,大概一天3刀,差不多一周就用完了。。不过用起来确实给力,很丝滑。如果有经济实力,建议还是用官方的。。某宝有代理插件,大概40R一月,可能会稍微慢点,但是总的来说开发够用了~~

三、AI Coding

目前就以比较典型的 TodoList 的项目来演示,演示语言为Go,可以提前安装下Go,或者让AI直接帮你安装~

3.1 初始的项目目录

.
├── AI编程通用代码规范.md
└── 提示词.ini

3.2 新建一个Chat,在对话框输入提示词

请参照 AI编程通用代码规范.md 使用go开发一个todo-list的功能,web界面样式需要简洁,使用bootstrap。前后无需分离

3.3 模型选择

选择Agent,模型选择GPT-5.3 Codex,点击发送。

3.4 AI 开始先做计划,然后按照计划进行写代码

3.5 让AI启动项目

在对话中输入新的提示词

请帮我启动当前项目,如果没有安装Go,请先帮我安装Go

3.6 查看效果

程序已经启动,可以打开 http://localhost:8080 进行查看

3.7 AI编程后的项目结构

.
├── AI编程通用代码规范.md
├── go.mod
├── main.go
├── modules
│   └── todo
│       ├── controller
│       │   └── todo_controller.go
│       ├── domain
│       │   └── todo.go
│       ├── repository
│       │   └── todo_repository.go
│       └── service
│           └── todo_service.go
├── templates
│   └── todo_list.html
└── 提示词.ini

3.8 AI编程通用代码规范.md

# AI 编程通用代码规范(前后端通用版)

## 0. 架构规范(优先级最高 / P0)

> **本章节为全规范最高优先级。**
> 当本规范其他条款与架构规范发生冲突时,**以本章节为准**。

1. **必须采用明确架构模式(MVC 或三层架构)**
   - MVC:`Controller` 负责请求分发,`Model` 负责领域与数据,`View` 负责展示。
   - 三层:`Controller(接口层)` → `Service(业务层)` → `Repository/DAO(数据层)`。

2. **严格分层,禁止越层访问**
   - 禁止 `Controller -> Repository` 直连,必须经 `Service`。
   - 禁止 `View` 承载业务逻辑与数据访问。
   - 禁止在前端文件中直接实现后端数据库逻辑。

3. **模块边界清晰,按业务域组织目录(优先)**
   - 推荐以业务域组织:如 `modules/user`、`modules/order`。
   - 每个业务域内再分层:`controller|service|repository|domain|dto`。
   - 业务代码应高内聚、低耦合,跨模块调用必须通过明确接口。

4. **严禁跨模块私有实现直连**
   - 禁止模块 A 直接读写模块 B 私有数据表/私有对象。
   - 必须通过模块 B 对外公开的服务接口交互。

5. **前后端不分离项目的边界要求**
   - 可使用模板引擎渲染(如 Jinja2),但仍需保持职责边界:
     - 控制层:路由与请求编排
     - 业务层:业务规则与校验
     - 数据层:持久化与查询
     - 模板层:页面展示

---

## 1. 总体原则

1. **可读性优先于“炫技”**
   - 代码首先给人读,其次给机器跑。
2. **一致性高于个人偏好**
   - 同项目内风格必须统一。
3. **最小惊讶原则**
   - 命名、结构、行为应符合团队直觉。
4. **可维护性优先**
   - 避免过度抽象和过早优化。
5. **变更可追溯**
   - 代码、注释、提交信息保持一致。

---

## 2. 代码格式与缩进

1. **缩进统一**
   - 默认推荐:**4 空格**(Python 等)或 **2 空格**(JS/TS 前端常见)。
   - 一个项目只能选一种,禁止混用 Tab 与空格。
2. **行宽限制**
   - 建议每行不超过 **100~120** 字符。
3. **空行规则**
   - 逻辑块之间保留空行,提升可读性。
   - 函数与函数之间空一行或按语言约定处理。
4. **花括号/语句块**
   - 即使单行分支,也建议使用完整语句块,减少未来改动风险。
5. **自动格式化**
   - 必须使用统一格式化工具(如 Prettier/Black/gofmt/rustfmt 等),禁止手工风格冲突。

---

## 3. 命名规范

> 核心原则:**见名知意、统一语义、避免歧义**。

1. **变量名**
   - 使用有业务含义的词,避免 `tmp`, `data`, `obj` 泛化命名(循环临时变量除外)。
2. **函数/方法名**
   - 使用动词短语,体现行为:`getUserById`, `calculateTotal`, `sendEmail`。
3. **类/类型名**
   - 使用名词:`UserService`, `OrderRepository`, `PaymentResult`。
4. **常量名**
   - 全大写下划线(按语言习惯):`MAX_RETRY_COUNT`。
5. **布尔命名**
   - 建议 `is/has/can/should` 前缀:`isActive`, `hasPermission`。
6. **集合命名**
   - 使用复数或语义后缀:`users`, `orderList`, `userMap`。
7. **避免缩写**
   - 除公认缩写外(ID、URL、HTTP),尽量写全。
8. **语言习惯优先**
   - Java/C#: `camelCase` + `PascalCase`
   - Python: `snake_case`
   - 常量按语言社区规范执行。

---

## 4. 注释规范

1. **注释解释“为什么”,不是“做了什么”**
   - 代码能表达“做什么”,注释应补充背景、约束、边界、风险。
2. **对外接口必须有文档注释**
   - 函数用途、参数、返回值、异常、副作用、示例(按语言文档系统)。
3. **复杂逻辑必须注释**
   - 算法、兼容性、性能折中、业务规则。
4. **禁止无效注释**
   - 过时注释必须同步更新或删除。
5. **TODO/FIXME 规范**
   - 必须带责任人或 issue 编号,避免永久遗留。

---

## 5. 函数与模块设计

1. **单一职责**
   - 一个函数只做一件事。
2. **函数长度控制**
   - 优先保持短小(建议 20~50 行以内,视语言和业务可放宽)。
3. **参数控制**
   - 参数过多(>4)时,使用对象/结构体封装。
4. **避免深层嵌套**
   - 优先早返回(guard clause)。
5. **模块边界清晰**
   - 控制层、服务层、数据层职责明确,不互相越界。
6. **按业务模块划分(优先)**
   - 以业务域组织目录(如 `user/`, `order/`, `payment/`),每个业务域内再分层,而不是全局按技术类型散落。
   - 业务模块应具备高内聚、低耦合,跨模块调用必须通过明确接口。
7. **前后端代码严格分离**
   - 前端页面/组件/状态管理代码与后端控制器/服务/数据访问代码不得放在同一文件。
   - 禁止在前端文件中直接写后端数据库访问逻辑;禁止在后端文件中嵌入前端渲染实现细节(模板引擎场景除外且需边界清晰)。
8. **架构模式落地(MVC 或三层架构)**
   - MVC 参考:`Controller` 负责请求分发,`Model` 负责领域与数据,`View` 负责展示。
   - 三层架构参考:`Controller(接口层)` → `Service(业务层)` → `Repository/DAO(数据层)`。
   - 任何一层不得越层访问(如 Controller 直连数据库)。

---

## 6. 错误处理与日志

1. **禁止吞异常**
   - 必须显式处理、包装或上抛。
2. **错误信息可诊断**
   - 包含关键上下文(请求ID、用户ID、资源ID)。
3. **日志分级**
   - `DEBUG/INFO/WARN/ERROR` 语义一致。
4. **日志不泄露敏感信息**
   - 不打印密码、密钥、token、隐私数据。
5. **统一错误码/错误结构**
   - 前后端接口返回需稳定且可机器解析。

---

## 7. 安全规范(通用)

1. **输入校验**
   - 所有外部输入均视为不可信。
2. **防注入**
   - SQL/命令/模板注入必须使用参数化、转义和白名单。
3. **鉴权与权限控制**
   - 认证(你是谁)与授权(你能做什么)分离。
4. **敏感配置外置**
   - 密钥放环境变量或密钥管理系统,禁止硬编码。
5. **依赖安全**
   - 定期升级依赖,修复高危漏洞。

---

## 8. 前端专项补充

1. **组件设计**
   - 组件职责单一,避免“巨型组件”。
2. **状态管理**
   - 区分本地状态与全局状态,避免状态散乱。
3. **可访问性(a11y)**
   - 语义化标签、键盘可用、合理 aria 属性。
4. **性能**
   - 减少不必要渲染、按需加载、资源压缩与缓存。
5. **API 调用**
   - 统一封装请求层,统一错误处理和重试策略。
6. **按业务模块组织前端目录**
   - 建议结构:`features/<biz>/components|pages|hooks|services|types`。
   - 公共能力放 `shared/` 或 `common/`,禁止把业务逻辑堆在 `utils` 大杂烩目录。

---

## 9. 后端专项补充

1. **接口设计**
   - URL、方法、状态码、错误结构一致。
2. **幂等性**
   - 写接口在重试场景应尽可能幂等。
3. **事务与一致性**
   - 明确事务边界,避免隐式跨层事务。
4. **并发控制**
   - 注意锁、竞争条件、重复提交。
5. **可观测性**
   - 必须有日志、指标、追踪(Tracing)能力。
6. **按业务模块组织后端目录**
   - 建议结构:`modules/<biz>/controller|service|repository|domain|dto`(可按语言调整)。
   - 公共中间件、基础设施能力放 `infrastructure/` 或 `shared/`,避免业务代码反向依赖基础设施细节。
7. **严禁跨层/跨模块直连**
   - 禁止 `Controller -> Repository` 直连,必须经 `Service`。
   - 禁止模块 A 直接读写模块 B 私有数据表/私有对象,需通过模块公开服务接口。

---

## 10. 测试规范

1. **可测试性优先**
   - 业务逻辑与外部依赖解耦。
2. **测试分层**
   - 单元测试、集成测试、端到端测试职责清晰。
3. **关键路径必测**
   - 正常流程、边界条件、异常流程。
4. **测试命名**
   - 体现场景与预期:`should_return_401_when_token_invalid`。
5. **CI 门禁**
   - 测试失败禁止合并。

---

## 11. Git 与代码评审

1. **提交粒度小而清晰**
   - 一次提交解决一个问题。
2. **提交信息规范**
   - 建议:`type(scope): summary`(如 `fix(auth): handle token expiry`)。
3. **PR 描述完整**
   - 背景、改动点、影响面、测试说明。
4. **Code Review 关注点**
   - 正确性、可维护性、安全、性能、一致性。
5. **禁止直接推主干**
   - 走分支 + Review 流程。

---

## 12. AI 生成代码专项要求(重点)

1. **AI 代码必须人工复核**
   - 不可直接“盲合并”。
2. **先有约束再生成**
   - 明确语言版本、框架版本、风格与边界条件。
3. **生成后必须补齐**
   - 错误处理、日志、测试、注释、类型声明(若适用)。
4. **验证依赖与许可证**
   - 避免引入不合规或高风险依赖。
5. **保留决策记录**
   - 对关键改动写明“为何如此实现”。

---

## 13. 可执行目录模板示例(用于快速落地)

> 说明:以下模板用于规范落地参考,团队可按业务规模裁剪;但**分层边界与调用方向不可破坏**。

### 13.1 Python Flask(前后端不分离,MVC/三层混合落地)

```text
project/
  app/
    __init__.py                 # create_app、注册蓝图、中间件
    config.py                   # 配置项(环境变量、常量)
    controllers/                # Controller:路由与请求编排
      __init__.py
      todo_controller.py
    services/                   # Service:业务规则、参数校验、事务边界
      __init__.py
      todo_service.py
    repositories/               # Repository:数据库读写
      __init__.py
      todo_repository.py
    templates/                  # View:Jinja 模板
      todo_list.html
    static/                     # 静态资源(css/js/img)
      css/
      js/
  tests/
    test_todo_service.py
    test_todo_controller.py
  run.py                        # 启动入口
  requirements.txt
```

调用方向:`Controller -> Service -> Repository`,模板层只做展示。

### 13.2 Java Spring Boot(三层架构)

```text
src/main/java/com/example/project/
  modules/
    user/
      controller/
        UserController.java
      service/
        UserService.java
        impl/UserServiceImpl.java
      repository/
        UserRepository.java
      domain/
        User.java
      dto/
        UserCreateRequest.java
        UserResponse.java
    order/
      controller/
      service/
      repository/
      domain/
      dto/
  infrastructure/
    config/
    exception/
    logging/
src/main/resources/
  application.yml
src/test/java/com/example/project/
```

约束:禁止 `controller` 直接调用 `repository`;跨模块通过 service 接口。

### 13.3 Node.js NestJS(模块化三层)

```text
src/
  modules/
    user/
      user.controller.ts        # Controller
      user.service.ts           # Service
      user.repository.ts        # Repository(或 data-access provider)
      dto/
        create-user.dto.ts
      entities/
        user.entity.ts
      user.module.ts
    order/
      order.controller.ts
      order.service.ts
      order.repository.ts
      dto/
      entities/
      order.module.ts
  shared/
    filters/
    guards/
    interceptors/
    pipes/
  main.ts
test/
```

约束:控制器只处理 HTTP 语义;业务逻辑进入 service;数据访问进入 repository/provider。

---

## 可直接落地的最小执行清单(推荐)

- [ ] 架构评审门禁:PR 必须说明分层边界与模块归属
- [ ] CI 增加架构检查(禁止越层依赖)
- [ ] 统一格式化工具 + lint 规则
- [ ] 统一命名规范文档
- [ ] 必填 PR 模板(背景/改动/测试/风险)
- [ ] CI:lint + test + build 必过
- [ ] 敏感信息扫描与依赖漏洞扫描
- [ ] AI 代码复核清单(安全/异常/测试/性能)

3.9 提示词.ini

请参照 AI编程通用代码规范.md 使用go开发一个todo-list的功能,web界面样式需要简洁,使用bootstrap。前后无需分离

四、结语

目前 AI 编程工具已经可以使毫无开发经验的人员开发出程序。过去需要专业开发者花费数小时甚至数天完成的代码编写、逻辑调试、接口对接与环境配置工作,现在借助 AI 辅助,普通用户只需用自然语言描述需求,就能快速生成可运行的代码片段、完整脚本乃至小型应用。这大大降低了软件开发的门槛,让产品、运营、学生、个人创作者等非技术人群,也能把自己的想法快速落地为工具、网站、自动化脚本等实际成果。

但这并不意味着 AI 会完全替代程序员。AI 更像是一位高效的辅助者,擅长代码生成、错误排查、格式优化、文档生成等重复性工作;而程序员的核心价值,正从 “手写代码” 转向需求理解、架构设计、逻辑抽象、安全把关、系统整合与问题定义。真正决定软件质量与可用性的,依然是对业务场景的理解、对系统稳定性的把控,以及对复杂问题的拆解与规划能力。

长远来看,AI 编程正在推动开发模式发生变革:人人都能开发将成为常态,专业开发者则会聚焦更具创造性与架构性的工作。AI 与开发者不是替代关系,而是协作关系,它让开发效率指数级提升,让更多人能用技术解决真实问题,也让专业开发者有更多精力去创造更复杂、更有价值的系统。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐