الأعطال التي لم تخطر لاختباراتك، مُتتبَّعة من الطلب حتى قاعدة البيانات.
يتتبع SmartScan كل نقطة دخول - إجراء ويب أو مهمة أو مستهلك رسائل أو شاشة في تطبيق - عبر الخدمات والمعالجات حتى قاعدة البيانات أو الطلب الصادر، ويُعلِّم ما قد ينكسر في الطريق: بحث قد يعود فارغاً، كتابتان قد تنجحان جزئياً، عمود قد يتجاوزه الإدخال. ويأتي كل خطر مع السلسلة التي تقود إليه.
شاشات من تثبيت قيد التشغيل
ما الذي يبحث عنه
أربعة أنواع من المخاطر، كل منها يُكتشف على مسار حقيقي في شيفرتك - لا على نمط كتبه أحد.
السجل غير موجود
قد يعود بحث مبني على بيانات الطلب فارغاً ويستخدم الكود النتيجة دون تحقق: 500 بدل 404 أو رسالة مضللة.
كتابة جزئية
إيداعان منفصلان في تدفق واحد دون معاملة تحيط بهما: إذا فشل الثاني يبقى الأول مكتوباً.
فجوات العقد
قد يحمل الطلب أكثر مما يتسع له العمود، أو لا يُتحقق من عمود إلزامي في الطريق، أو يُكتب عمود فريد دون فحص التفرد.
الواجهة والجوال
طلب لا يعالج أحد فشله، أو خطأ يُعامل كنجاح، أو استجابة تُستخدم دون تحقق: تنهار الشاشة أو تبقى صامتة.
ما الذي يراه SmartScan في طلب واحد
يُنشأ الطلب عبر ست خطوات. كل خطوة استدعاء حقيقي في الكود؛ يتتبعها SmartScan ويتوقف حيث يمكن أن ينكسر شيء.
- نقطة الدخول
POST /api/ordersOrdersController.Create - طلب الوسيط
mediator.Send(CreateOrderCommand) - المعالج
CreateOrderHandler.Handle - من الواجهة إلى التنفيذ
ICustomerRepository.FindAsyncCustomerRepository !غير موجود: تُستخدم النتيجة دون تحقق - عمليات الكتابة
SaveChangesAsync() ×2!كتابة جزئية: عمليتا commit دون معاملة - قاعدة البيانات
orders · order_lines
كيف يعمل
الوحدة هي سلسلة: من حيث يدخل الطلب إلى حيث يلمس البيانات.
- 01
البدء من كل نقطة دخول
إجراءات الويب والمهام المجدولة ومستهلكو الرسائل؛ وفي الواجهات والتطبيقات الأحداث والتأثيرات والمسارات والشاشات.
- 02
تتبع السلسلة
من الواجهة إلى التنفيذ، والتجاوزات، وطلبات الوسيط إلى معالجاتها - حتى ORM أو استدعاء HTTP.
- 03
استبعاد ما هو محمي
يُحتسب الفحص أو البحث الذي يرمي استثناءً أو المدقق ذو الحد الصحيح - على مسار الكتابة نفسه. ولا يُبلَّغ عن سلسلة بلا خطر.
- 04
إظهار المسار
يسرد كل خطر خطواته بالملف والسطر، من نقطة الدخول حتى العمود.
تحذير لا بوابة
ليس SmartScan مجموعة قواعد: لا يخفض درجة ولا يُفشل خط إنتاج. يمكن إغلاق كل خطر على حدة مثل أي نتيجة. يُفعَّل لكل مشروع وهو مغلق افتراضياً، ويعمل في الفحوص الكاملة فقط، فتبقى فحوص طلبات الدمج سريعة.
بلغات الجامع التسع كلها
القاعدة ومخاطرة SmartScan ليستا الشيء نفسه
يظهر كلاهما في اللوحة نفسها، لكنهما يجيبان عن أسئلة مختلفة ويتصرفان بشكل مختلف.
| ملاحظة قاعدة | مخاطرة SmartScan | |
|---|---|---|
| ما الذي يبحث عنه | نمط معروف كتبه أحدهم | مسار عبر الكود الخاص بك |
| الدرجة | يخفضها حسب الخطورة | لا يمسها أبداً |
| خط النشر | يمكنه إيقافه بعتبة fail-on | لا يوقفه أبداً |
| متى يعمل | مراجعات طلبات الدمج والفحوص الكاملة | الفحوص الكاملة فقط، ويُفعّل لكل مشروع |
| ما الذي تحصل عليه | الملف والسطر ومبرر القاعدة | السلسلة كاملة خطوة بخطوة مع الملف والسطر |
أسئلة حول SmartScan
هل هي مجموعة قواعد أخرى؟
كيف تُقلَّل الإنذارات الكاذبة؟
هل يبطئ مراجعات طلبات الدمج؟
ما اللغات والأطر؟
شاهده داخل المنتج
كل لقطات الشاشة
اكتشف الأعطال قبل مستخدميك
فعّل SmartScan لمشروع واحد خلال إثبات المفهوم؛ يُظهر الفحص الكامل التالي كل سلسلة معرّضة للخطر.