支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Cursor是越来越难用了!逼着我写mdc文档比代码还多

发布日期:2025-04-01 19:18:43 浏览次数: 1567 作者:字节笔记本
推荐语

Cursor的新挑战与.mdc文件的解决方案。

核心内容:
1. Cursor智能下降引发的问题与挑战
2. 介绍.mdc文件及其在编码中的作用
3. .mdc文件的创建、应用及示例展示

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

Cursor真就越来越难用了,尤其从0.45版本开始,智能肉眼可见的下降,越来越Trae化了。

这段时间以来我就发现Cursor的上下文越来越短,时不时的乱改文件,一个简单问题能盘它好久,明明就是已经提供了报错信息解决方式愣是不解决。

最离谱的是我打开了MCP的功能,结果每次编辑文件他都会去调用MPC的写文件功能,我甚至把配置文件去掉了,他还在调MCP的rite_file。

哎,以前有多智能,现在就有多智障!

最可笑的是官方自己都没有搞清楚Edit还是Agent的定位,现在然后又突然换掉了名字,增加一个不知道所谓的Manual功能。

降智商降得没办法,只能自己本地创文件手把手的教它怎么写了,结果就是.mdc文档比代码还多。用下来还行吧,算是有点部分缓解Cursor目前的不作为。

稍微介绍一下这个新的Cursor特有的.mdc文件。

.mdc(Markdown Cursor)文件是Cursor规则文件格式,它本身就是Markdown语法,只是特别用于定义AI在编码时的行为、约束和上下文的。

你可以它当成给AI助手的"备忘录",告诉它在你的项目中应该遵循什么规则,要怎么做。

而且旧版.cursorrules也马上要废弃了,主要因为太于单一,新的专有.mdc优势:

  • 可以为不同类型的文件或任务创建专门的规则文件
  • AI会根据你正在编辑的文件自动选择适用的规则
  • 基于Markdown,写起来更加自然流畅

使用.mdc文件后,AI助手改的代码质量还是有所提升的,把东西都喂到他嘴边了,再不会写,只能骂娘了,而且搞这个文档,公司团队协作也方便了些,不需要再重复告诉AI同样的项目规范,后续项目也可以很方便的迁移过去。

搭配地表最强编程模型:Google Gemini 2.5 Pro超长上下文,简直天作之合。

写这个文件其实特别简单,一个典型的.mdc文件包含两个部分:

  • 前置元数据:用三横线(---)包裹,定义规则的描述和适用范围
  • 规则正文:使用Markdown格式编写具体指令

创建和使用.mdc文件的话,主要是记住他的位置:

  • 在项目根目录创建.cursor/rules/文件夹
  • 添加.mdc文件,如ts-rules.mdc,保存后,Cursor会自动应用规则

看看这个简单示例:

---
description: TypeScript项目规范
globs: *.ts, *.tsx
---

# TypeScript编码规范
- 使用严格模式(strict: true)
- 优先使用函数组件而非类组件
- 代码中必须包含完整类型注解

下面这些是我日渐膨胀的.mdc部分案例展示:

全栈TypeScript项目架构与约束

---
description: 企业级TypeScript全栈应用架构规范
globs: *.ts, *.tsx
priority: 10
---

# TypeScript全栈架构规范

## 核心架构原则
- 采用**六边形架构**(Hexagonal Architecture)设计模式
- 领域逻辑与框架、UI、数据库等基础设施隔离
- 依赖关系必须指向领域核心,禁止反向依赖
- 接口定义在领域层,实现在基础设施层

## 类型系统规范
- 禁止使用`any`类型,必须使用`unknown`作为未知类型的默认选择
- 对所有函数参数和返回值进行显式类型注解
- 对于复杂对象,使用以下模式定义类型:
```typescript
// 领域实体基础类型
type UserProperties = {
id: string;
email: string;
firstName: string;
lastName: string;
role: UserRole;
createdAt: Date;
updatedAt: Date;
};

// 实体类
export class User {
private props: UserProperties;

private constructor(props: UserProperties) {
this.props = props;
}

// 工厂方法
public static create(props: Omit<UserProperties, 'id' | 'createdAt' | 'updatedAt'>): Result<User> {
// 验证逻辑...
return Result.ok(new User({
...props,
id: UUID.generate(),
createdAt: new Date(),
updatedAt: new Date()
}));
}

// 访问器方法
get id(): string { return this.props.id; }
get email(): string { return this.props.email; }
// ...其他访问器
}

微服务的

### 微服务架构设计规范

---
description: 微服务架构设计规范与最佳实践
globs: *.{ts,js,go,py}
priority: 20
---

# 微服务架构设计规范

## 架构总体原则
- 采用**Domain-Driven Design (DDD)**思想设计微服务边界
- 每个微服务应满足"单一职责"原则
- 服务间通信优先考虑异步事件驱动模式
- 遵循API优先设计原则,先定义接口再实现

## 服务间通信规范
### 同步通信
- REST API必须遵循以下规范:
- 使用HAL(Hypertext Application Language)表示资源关系
- 统一错误响应格式:
```json
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "请求的资源不存在",
"details": {
"resource_id": "12345",
"resource_type": "user"
},
"trace_id": "abcd1234-5678-efgh-ijkl-mnopqrstuvwx",
"timestamp": "2025-03-28T12:34:56Z"
}
}
```
- API版本控制策略:Accept header中指定版本,例如`Accept: application/vnd.company.api+json;version=1`

### 异步通信
- 事件结构规范:
```json
{
"id": "uuid-v4-format",
"type": "user.created",
"version": "1.0",
"source": "user-service",
"time": "2025-03-28T12:34:56Z",
"dataContentType": "application/json",
"data": {
// 事件具体数据
},
"correlationId": "related-request-id",
"subject": "users"
}

上面这些都是基于Cursor 0.45版本的,如果你也遇到了Cursor降智的行为,不妨也像这样多写两行类似规划文档的东西,或许会有所改观。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询