Vue / المتقدم: المعمارية والاستيعاب ودليل الإنتاج / الدرس 18
موثوقية الميزات والرصد وقرارات الإصدار
اربط الفشل ونتيجة المستخدم بتشخيص محدود وسلوك إصدار متحقق.
في هذه الصفحة
أهداف الدرس
- صمم فشلاً وإعادة بتجربة صادقة.
- راقب نتائج محدودة دون جمع حمولات خاصة.
حدد نجاح المستخدم وفشله الظاهرين
تميز الميزة الإدخال والانتظار والتأكيد والفشل والإبطال وتحفظ جهد المستخدم وخطوة تالية. يضلل مؤشر دائم أو نجاح قبل القبول. حدد الإعادة الآمنة وعقد منع التكرار والمصالحة، وضمّن المسار والحساب والإزالة. الموثوقية سلوك الميزة المركبة لا مجرد غياب خطأ طرفية.
وفر حداً مضبوطاً لفشل العرض
تراقب onErrorCaptured أخطاء الأبناء وفق القواعد. يستبدل الحد المحتوى ويرجع false لإيقاف انتشار الحالة المعالجة، وقد يمنع معالج التطبيق فصمم الإبلاغ ولا تكتم المجهول. لا تعاود الابن الفاشل أثناء البديل، ولا يلتقط الحد كل خدمة أو حدث خارجي تلقائياً؛ نمذجها عند حدودها.
<script setup>
import { ref, onErrorCaptured } from "vue"
const failed = ref(false)
onErrorCaptured(() => {
failed.value = true
return false
})
</script>
<template>
<p v-if="failed" role="alert">This section could not be displayed.</p>
<slot v-else />
</template>
يتطلب محتوى فتحة وتطبيقاً متوافقاً ويعالج الانتشار بقصد بلا نقل قياس. لم يختبر سلوك البديل والخطاف وقت التشغيل هنا.
قس النتائج بمخطط حدث محدود
يحدد التشخيص الميزة والفئة والإصدار والتوقيت ومرجعاً معتماً عند الحاجة. تجنب العنوان والمحتوى والاعتماد والرابط الكامل والخطأ الخام بلا سياسة. قد تكشف الآثار أكثر من المتوقع؛ حد الأبعاد واحمِ التفاصيل والاحتفاظ. لا يعني غياب الأحداث صفر فشل. حدد الجمع والعينة والتحقق لتمييز المنتج والقديم والبيئة والغياب.
تحقق من شكل قياس اصطناعي آمن
تقبل الدالة فئة محدودة ومدة منتهية غير سالبة وتحولها لدلو واسع بلا محتوى. توضح التقليل لا مسار قياس كاملاً؛ يحدد الحقيقي الموافقة والاحتفاظ والنقل والعينة والسلامة والإصدار. لا تضف الخاص للتسهيل. يفحص التحقق المخطط محلياً ويفحص التكامل الجمع دون أسرار أو حركة غير مضبوطة.
function operationSummary({ result, durationMs }) {
const allowed = new Set(["success", "failure", "cancelled"])
if (!allowed.has(result) || !Number.isFinite(durationMs) || durationMs < 0) {
throw new Error("INVALID_OPERATION_METRIC")
}
return { result, durationBucket: durationMs < 1000 ? "under-1s" : "at-least-1s" }
}
const event = operationSummary({ result: "success", durationMs: 250 })
if (JSON.stringify(event) !== JSON.stringify({ result: "success", durationBucket: "under-1s" })) {
throw new Error("METRIC_SCHEMA_MISMATCH")
}
يعمل بـ Node وقيم اصطناعية ولا يرسل أو يقرأ بيانات مشروع أو متصفح. الثانية دلو تعليمي لا مطلب أداء شامل.
راجع مرشح الإصدار وحدود التعافي
تحقق من الحزمة بافتراضات المتصفح والمسار واللغة والوصول والبيانات وSSR واربط المصدر والنسخ والإعداد والدليل. لا تثبت الوحدة الاستضافة أو الأجزاء أو الاستيعاب أو العزل. للرصد مالك واستجابة وخطة تعاف تراعي البيانات والتوافق؛ لا تفترض تحمل عميل قديم لكل رد بعد التراجع. لا تنشر الدورة بل تصف الدليل والملكية لا تفوض الخارج.
الأخطاء الشائعة وإصلاحها
يخفي حد العرض كل خطأ بصمت
- لماذا يحدث؟
- استخدم ضبط الانتشار بلا إبلاغ وتعاف.
- كيف تصلحه؟
- حدد المعالج والبديل والتشخيص والتصعيد.
- كيف تتجنب تكراره؟
- اختبر تفاعل الحد ومعالج التطبيق.
تحوي الأحداث محتوى ملاحظات خاصاً
- لماذا يحدث؟
- جُمعت الحمولة بدل النتيجة المحدودة.
- كيف تصلحه؟
- قلل الحقول واتبع استجابة المالك.
- كيف تتجنب تكراره؟
- راجع المخطط والآثار قبل الجمع.
يعيد التراجع الشيفرة ويكسر توافق الحالة
- لماذا يحدث؟
- أُغفل عقد الخادم والعميل والدوام.
- كيف تصلحه؟
- استخدم تعافياً متوافقاً واختبر المهمة.
- كيف تتجنب تكراره؟
- خطط التعافي مع الإصدار والبيانات.
اختبر فهمك
1. يعرض حد المكوّن بديلاً. هل يحل فشل كتابة API؟
اعرض الحل المشروح
لا؛ تختلف الحدود. احفظ المسودة والنتيجة المبهمة وطبق سياسة الإعادة ومنع التكرار واعرض فعلاً صادقاً. الحد جزء واحد من التعافي.
2. لا يبلغ الرصد فشلاً بعد توقف الجمع. ماذا يستنتج المالك؟
اعرض الحل المشروح
الدليل ناقص؛ تحقق من الجمع والنافذة ولا تعلن السلامة من الغياب. استخدم إشارات مفوضة وأظهر المجهول حتى عودة الدليل.
أهم ما تعلمته
- يفصل الاستخدام الموثوق الانتظار والتأكيد والفشل والقديم.
- يكون التشخيص محدوداً ومراعياً للخصوصية.
- تعتمد الثقة على الحزمة وعقد التعافي.