أفضل الممارسات لقواعد MDC واستكشاف الأخطاء وإصلاحها
تلميح
تساعدك قواعد MDC (الكود المدفوع بالنموذج) على الحفاظ على جودة الكود المتسقة وأتمتة المهام المتكررة في Cursor.
فهم قواعد MDC
قواعد MDC هي أدوات قوية تتيح لك:
- فرض معايير الترميز
- أتمتة تحويلات الكود
- تنفيذ عمليات التحقق المخصصة
- إنشاء إرشادات خاصة بالمشروع
إعداد قواعد MDC
الهيكل الأساسي
قم بإنشاء دليل .cursor/rules
في مشروعك:
.cursor/
└── rules/
├── naming.json
├── formatting.json
└── custom-rules.json
تكوين القاعدة
هيكل القاعدة الأساسي:
.cursor/rules/naming.json
{
"name": "اتفاقيات التسمية",
"description": "فرض تسمية متسقة عبر المشروع",
"rules": [
{
"pattern": "^[A-Z][a-zA-Z]*Component$",
"filePattern": "*.component.ts",
"message": "يجب أن تكون أسماء المكونات بصيغة PascalCase وتنتهي بـ 'Component'"
}
]
}
أنواع القواعد الشائعة
1. اتفاقيات التسمية
{
"rules": [
{
"pattern": "^[a-z][a-zA-Z]*Service$",
"filePattern": "*.service.ts",
"message": "يجب أن تكون أسماء الخدمات بصيغة camelCase وتنتهي بـ 'Service'"
},
{
"pattern": "^I[A-Z][a-zA-Z]*$",
"filePattern": "*.interface.ts",
"message": "يجب أن تبدأ أسماء الواجهات بـ 'I' وتستخدم صيغة PascalCase"
}
]
}
2. هيكل الكود
{
"rules": [
{
"pattern": "import\\s+{\\s*([^}]+)\\s*}\\s+from",
"filePattern": "*.ts",
"message": "يجب ترتيب الاستيرادات أبجديًا"
},
{
"pattern": "^export\\s+class\\s+[A-Z][a-zA-Z]*\\s+{",
"filePattern": "*.ts",
"message": "يجب أن تبدأ تعريفات الفئات بـ 'export class'"
}
]
}
3. التوثيق
{
"rules": [
{
"pattern": "/\\*\\*[\\s\\S]*?\\*/\\s*export",
"filePattern": "*.ts",
"message": "يجب توثيق جميع الفئات والوظائف المصدرة"
},
{
"pattern": "@param\\s+{[^}]+}\\s+\\w+",
"filePattern": "*.ts",
"message": "يجب توثيق جميع المعلمات بنوع وصفي"
}
]
}
4. أنماط الكود
{
"rules": [
{
"pattern": "console\\.log\\(",
"filePattern": "*.ts",
"message": "لا تترك عبارات console.log في الكود الإنتاجي"
},
{
"pattern": "TODO|FIXME",
"filePattern": "*.*",
"message": "يجب معالجة جميع علامات TODO و FIXME قبل الدمج"
}
]
}
استكشاف الأخطاء وإصلاحها
مشكلات التكوين
-
التحقق من بناء الجملة
{
"rules": [
{
"pattern": "^[A-Z][a-zA-Z]*$", // نمط regex صالح
"filePattern": "*.ts", // نمط glob صالح
"severity": "error" // مستوى خطورة صالح
}
]
} -
التحقق من مسار الملف
# تأكد من أن القواعد في المكان الصحيح
.cursor/
└── rules/
└── your-rule.json
مشكلات الأداء
-
تحسين الأنماط
{
"rules": [
{
"pattern": "^[A-Z]\\w*$", // أكثر كفاءة من ^[A-Z][a-zA-Z]*$
"filePattern": "*.{ts,js}" // تجميع الامتدادات
}
]
} -
استخدام الاستثناءات
{
"exclude": [
"node_modules/**",
"dist/**",
"build/**"
],
"rules": [...]
}
أفضل الممارسات
1. التنظيم
.cursor/
└── rules/
├── naming/
│ ├── components.json
│ └── services.json
├── formatting/
│ ├── spacing.json
│ └── indentation.json
└── documentation/
└── jsdoc.json