أفضل الممارسات لقواعد 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.*from",
"location": "top",
"message": "يجب أن تكون عمليات الاستيراد في أعلى الملف"
},
{
"maxLines": 300,
"filePattern": "*.ts",
"message": "يجب ألا تتجاوز الملفات 300 سطر"
}
]
}
3. متطلبات التوثيق
{
"rules": [
{
"pattern": "^\\/\\*\\*[\\s\\S]*?\\*\\/",
"filePattern": "*.ts",
"message": "يجب أن تحتوي جميع الملفات على توثيق JSDoc"
}
]
}
تكوين القواعد المتقدمة
استخدام المتغيرات
{
"variables": {
"COMPONENT_PREFIX": "App",
"MAX_FILE_SIZE": 500
},
"rules": [
{
"pattern": "^${COMPONENT_PREFIX}[A-Z][a-zA-Z]*$",
"filePattern": "*.component.ts",
"message": "يجب أن تبدأ المكونات بـ '${COMPONENT_PREFIX}'"
}
]
}
القواعد المتداخلة
{
"rules": {
"naming": {
"components": [
{
"pattern": "^[A-Z][a-zA-Z]*Component$",
"severity": "error"
}
],
"services": [
{
"pattern": "^[a-z][a-zA-Z]*Service$",
"severity": "warning"
}
]
}
}
}
استكشاف المشكلات الشائعة وحلها
القاعدة لا تعمل
-
تحقق من صياغة القاعدة
{
"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": [...]
}