مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو السيرفر بياخد 900ms يجهز HTML، 103 Early Hints يخلي المتصفح يبدأ تحميل CSS والخطوط قبل وصول الصفحة النهائية.
لو صورة الهيرو هي سبب بطء أول تحميل، استخدم AVIF وWebP مع picture/srcset بدل إرسال نفس الصورة الكبيرة لكل الشاشات.
لو أول تحميل في تطبيق Vite بطيء بسبب صفحة تقارير أو محرر غني، افصل الكود الثقيل بـ dynamic import وmanualChunks بدل ما يدفع كل مستخدم تكلفة لا يحتاجها.
لو نفس استعلام SELECT بياخد 8 ثواني على جدول مليونين صف، ومرة تانية بـ 12ms بعد سطر واحد، السبب غالبًا في غياب Index. شرح مبتدئ بمثال الكتاب، التعريف العلمي للـ B-tree، EXPLAIN ANALYZE حقيقي، وtrade-offs الكتابة.
لو الـ GraphQL endpoint بيرمي 1200 SQL query لما تطلب قائمة 100 منتج بتفاصيل كاتيجوري ومؤلف، أنت بتدفع تكلفة N+1. DataLoader بيجمع الـ keys في batch واحد ويرجّع الردود في 8 استعلامات بدل 1200.
لو API عندك بيقرأ مئات المفاتيح من Redis في request واحد، المشكلة غالبًا مش Redis. المشكلة إنك بتدفع زمن الشبكة 1000 مرة بدل مرة أو دفعات قليلة.
لو نفس شاشة المنتجات بتسحب نفس JSON كل دقيقة، ETag يخلي الطلبات المتكررة ترجع 304 بدون جسم استجابة. النتيجة: نقل أقل وضغط أخف على السيرفر.
لو صفحة المنتجات أو المقالات الطويلة بتتقل قبل ما المستخدم يشوف آخرها، استخدم content-visibility لتأجيل رندر الأجزاء خارج الشاشة بدون إعادة بناء الواجهة.
لو `npm ci` بياكل 4 دقائق من كل Pull Request، تفعيل cache في `actions/setup-node` يقلل وقت التثبيت المتكرر بدون لمس كود التطبيق.