تكرار السؤال: …
الإجابة المختصرة
بتجميع الملفات حسب الميزة (Feature-based Folder Structure)، وجعل أسماء الملفات دالة على محتواها، وتجنب الملفات البرميلية الضخمة (Overused Barrel Files)، والالتزام بقاعدة 200 سطر للمكون.
الشرح
التنظيم الحديث يبتعد عن المجلدات حسب النوع (مثل وضع كافة المكونات في مجلد components وكافة الـ hooks في مجلد hooks). بدلاً من ذلك، نجمع كل ميزة في مجلد مستقل يحتوي على المكون والـ hook الخاص به واختباراته وتنسيقاته، مما يسهل حذف الميزة أو نقلها أو صيانتها دون البحث عبر ملفات المشروع المشتتة.
مثال بالكود
// هيكل الميزات النظيف الموصى به
src/
features/
auth/
components/LoginForm.tsx
hooks/useAuth.ts
api/login.ts
types.ts
index.ts // تصدير الواجهة العامة فقط
billing/
...أخطاء شائعة
- تسمية الملفات بأسماء عامة مضللة مثل utils.ts أو helpers.ts حيث تتحول لسلة مهملات لكافة الأكواد غير المصنفة.