أفضل الممارسات لـ .cursor/rules
.cursor/rules
هي ميزة قوية تساعد الفرق على الحفاظ على معايير ترميز متسقة وتحسين التعاون. يغطي هذا الدليل أفضل الممارسات لإعداد وإدارة القواعد بفعالية.
فهم .cursor/rules
.cursor/rules
هو نظام تكوين يقوم بما يلي:
- تحديد معايير الترميز على مستوى المشروع
- أتمتة تنظيم الكود
- فرض أنماط متسقة
- تحسين تعاون الفريق
الإعداد الأساسي
إنشاء ملف القواعد
قم بإنشاء ملف .cursor/rules
في جذر مشروعك:
mkdir .cursor
touch .cursor/rules
الهيكل الأساسي
هيكل نموذجي لملف القواعد:
version: 1.0
rules:
- name: "هيكل المكون"
pattern: "src/components/**/*.{ts,tsx}"
template: |
import React from 'react'
interface ${ComponentName}Props {
// الخصائص
}
export const ${ComponentName}: React.FC<${ComponentName}Props> = () => {
return (
<div>
{/* محتوى المكون */}
</div>
)
}
- name: "طبقة الخدمة"
pattern: "src/services/**/*.ts"
template: |
import { ApiClient } from '../utils/apiClient'
export class ${ServiceName}Service {
private client: ApiClient
constructor() {
this.client = new ApiClient()
}
// طرق الخدمة
}
أفضل الممارسات
1. اصطلاحات التسمية المتسقة
استخدم أسماء واضحة ووصفية للقواعد:
rules:
- name: "مكون React"
description: "هيكل مكون React قياسي"
pattern: "src/components/**/*.tsx"
- name: "خدمة API"
description: "قالب خدمة REST API"
pattern: "src/services/**/*.ts"
2. التنظيم النمطي
قم بتجميع القواعد ذات الصلة:
rules:
# قواعد المكونات
- name: "مكون/وظيفي"
pattern: "src/components/**/*.tsx"
- name: "مكون/صنف"
pattern: "src/components/**/*.class.tsx"
# قواعد الخدمات
- name: "خدمة/REST"
pattern: "src/services/rest/**/*.ts"
- name: "خدمة/GraphQL"
pattern: "src/services/graphql/**/*.ts"
3. متغيرات القالب
استخدم متغيرات قالب وصفية:
rules:
- name: "قالب المكون"
pattern: "src/components/**/*.tsx"
template: |
interface ${ComponentName}Props {
${PropName}: ${PropType}
}
export const ${ComponentName} = ({
${PropName}
}: ${ComponentName}Props) => {
return (
<div>
{${PropName}}
</div>
)
}
4. التوثيق
قم بتضمين توثيق واضح في القواعد:
rules:
- name: "خدمة API"
description: |
قالب لأصناف خدمة API.
يتضمن عمليات CRUD القياسية ومعالجة الأخطاء.
pattern: "src/services/**/*.ts"
template: |
/**
* خدمة ${ServiceName}
* تتعامل مع ${ServiceDescription}
*/
export class ${ServiceName}Service {
// التنفيذ
}