مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو البحث عن مستخدم بالإيميل بياخد نص ثانية على مليون صف، المشكلة مش في السيرفر. سطر CREATE INDEX واحد بينزّل الزمن من 480 لـ 0.9 مللي ثانية. شرح للمبتدئ بمثال بسيط ثم علميًا، مع كود وقياس وtrade-offs.
صفحتك بطيئة بسبب الصور؟ حوّل JPEG وPNG لـ WebP وAVIF، واستخدم وسم picture والتحميل الكسول، وانزل بحجم الصفحة من 5.8 ميجا لـ 720 كيلوبايت وزمن التحميل من 6 ثواني لثانية. دليل للمبتدئ بأمثلة وأوامر جاهزة وأرقام ومصادر.
لو نص صفحتك يختفي أو يقفز وقت التحميل، المشكلة في طريقة تحميل الخط. اضبط font-display والتحميل المسبق والتقليم لتنزيل حجم الخط من 280KB لـ 68KB وتحسين LCP من 2.6s لـ 1.1s.
لو API بيرجع JSON حجمه 820KB لكل طلب، الضغط ممكن ينزله إلى 190KB مع Brotli أو 260KB مع Gzip. المقال يشرح الإعداد، القياس، والتكلفة الحقيقية على CPU.
فهرس على عمودين موجود فعلًا، ومع ذلك الاستعلام بياخد 420ms ويعمل Seq Scan. السبب مش السيرفر، السبب ترتيب الأعمدة جوه الفهرس. مقال للمحترف يشرح قاعدة الـ leftmost prefix وقاعدة Equality-Sort-Range بمثال دليل التليفونات، مع SQL وEXPLAIN ANALYZE شغّال على PostgreSQL 16، أرقام مقاسة (420ms ← 2.8ms)، trade-offs، ومتى الترتيب مش هيفرق، ومصادر رسمية.
لو قائمة فيها آلاف الصفوف بتخلّي التمرير يتقطّع، المشكلة مش في حجم الداتا — انت بترسم 10,000 عنصر في الـ DOM مرة واحدة. الـ virtualization بيرسم اللي ظاهر بس (حوالي 20 صف) فيرجّع التمرير لـ 60fps. مقال للمتوسط بمثال نافذة القطار، شرح علمي لميزانية الإطار وLong Tasks، كود react-window شغّال، أرقام مقاسة، 4 trade-offs، ومتى متستخدمهوش، مع مصادر.
لو صفحة 5000 في الـ API بتاعتك بطيئة رغم وجود index، المشكلة في OFFSET نفسه مش في السيرفر. الـ Keyset/Seek Method بيخلّي أي صفحة تتحمّل في زمن ثابت. مقال للمحترف بمثال دليل التليفونات للمبتدئ، شرح علمي لسلوك OFFSET، كود SQL وEXPLAIN ANALYZE على PostgreSQL 16، أرقام مقاسة (850ms ← 2ms)، التعامل مع الترتيب المركّب، 4 trade-offs، ومتى Keyset مش الحل، مع مصادر رسمية.
لو خدمتك بترمي "too many connections" تحت الحمل رغم إن CPU وRAM فاضيين، المشكلة في إدارة الاتصالات مش في حجم السيرفر. PgBouncer في وضع transaction بيخلّي 500 عامل تطبيق يشتغلوا على 20 اتصال حقيقي، بكونفيج قابل للنسخ، أرقام مقاسة، شرح session مقابل transaction، trade-offs، ومتى متستخدمهوش.
صفحة بـ 100 منتج ممكن تعمل 101 استعلام بدل اثنين بسبب N+1 query. اكتشف المشكلة في دقيقة وحلّها بـ eager loading، وانزل بزمن التحميل من 1.4 ثانية لـ 47 مللي ثانية على PostgreSQL، بأمثلة Sequelize وPrisma وDjango ومصادر رسمية.