قواعد CleanLens

جدول القواعد المختصر الذي يُشحن داخل حزمة الإضافة.

2 دقائق قراءة1 أقسام

14 قاعدة، تُضبط في .clean-code-tracker.json. لكل قاعدة enabled وseverity ‏(low | medium | high | critical)؛ وبعضها يأخذ أيضاً limit أو options.

معرّف القاعدةمتى يُبلَّغ عنهاالحد الافتراضيJS/TSPython
maxFunctionLinesدالة أطول من الحد40 سطراً✅✅
maxFileLinesملف أطول من الحد400 سطر✅✅
maxParametersدالة تأخذ معاملات أكثر من الحد5✅✅
maxComplexityالتعقيد الدوري يتجاوز الحد10✅✅ (تقريبي)
maxNestingDepthتداخل جمل التحكم أعمق من الحد4✅✅ (حسب المسافة البادئة)
detectDuplicateCodeكتلة متطابقة تتكرر عبر الملفاتoptions.minLines = 6✅✅
detectUnusedCodeimport / متغير / دالة لا يُستخدم أبداً—✅✅ (الاستيرادات فقط)
requireClearVariableNamesاسم مبهم مثل data1 أو x—✅✅
requireErrorHandlingعملية معرّضة للفشل بلا try—✅ (await)✅ (open / requests / …)
forbidEmptyCatchBlockscatch / except فارغة—✅✅ (pass)
forbidHardcodedSecretsمفتاح API أو كلمة مرور في الكود—✅✅
forbidDebugStatementsconsole.log / debugger / print / breakpoint—✅✅
requireSingleResponsibilityclass فيه methods كثيرة، أو دالة طويلة ومعقدة معاًoptions.maxMethods = 10✅✅
requireDocumentationForComplexCodeتعقيد الدالة ≥ الحد بلا JSDoc / docstringoptions.complexityThreshold = 15✅✅

ملاحظات حول الدقة

  • requireErrorHandling وrequireSingleResponsibility وrequireDocumentationForComplexCode تقريبية بطبيعتها وقد تنتج إنذارات خاطئة. عطّلها أو ارفع حدودها إذا كانت مزعجة لفريقك.
  • محلل Python مبني على المسافة البادئة والأنماط (بلا شجرة AST كاملة). لتحليل أدق لاحقاً، يمكن دمج Ruff/Pylint كما في الخطة.
  • detectUnusedCode لـ JS/TS بلا معلومات أنواع — يلتقط فقط الحالات الواضحة (اسم يظهر مرة واحدة بالضبط).

للتفاصيل الكاملة انظر 06 — مرجع القواعد.