تصنيف: برمجة

مشكلة N+1 في الاستعلامات: كيف تكتشفها وتحلها في كل إطار عمل

مشكلة N+1 في الاستعلامات: كيف تكتشفها وتحلها في كل إطار عمل

·برمجة

شرح عملي لمشكلة N+1 في الاستعلامات: كيف تكتشفها بأدوات مثل Django Debug Toolbar، وتحلها في Laravel وRails وJPA وGraphQL بأقل تعقيد ممكن.

Cursor Pagination أم Offset: أيهما تختار لتصميم API؟

Cursor Pagination أم Offset: أيهما تختار لتصميم API؟

·برمجة

فرق جوهري بين cursor pagination وoffset pagination في API: أداء الاستعلامات وتكرار السجلات، مع أمثلة من Stripe وGitHub لاختيار الأنسب لمشروعك.

مستويات العزل في قواعد البيانات: متى ترفعها ومتى تقفل

مستويات العزل في قواعد البيانات: متى ترفعها ومتى تقفل

·برمجة

الافتراضي يختلف بين المحرّكات، وRepeatable Read يسمح بانحراف الكتابة، ورفع مستوى العزل ثمنه إعادة المعاملة كاملة، وقد يكفيك القفل الصريح.

مفتاح idempotency: منع تكرار الطلب في واجهات الدفع

مفتاح idempotency: منع تكرار الطلب في واجهات الدفع

·برمجة

كيف تمنع تكرار تنفيذ الطلب باستخدام مفتاح idempotency: ترتيب الإدخال قبل التنفيذ، وبصمة جسم الطلب، وفروق المزوّدين بين Stripe وTap وMoyasar.

UUID أم bigint: كيف تختار المفتاح الأساسي لجدولك

UUID أم bigint: كيف تختار المفتاح الأساسي لجدولك

·برمجة

مقارنة عملية بين UUID وbigint لاختيار المفتاح الأساسي في قاعدة البيانات، مع ما غيّره UUIDv7 وأخطاء شائعة في PostgreSQL وMySQL وقواعد قرار جاهزة.

التحقق من توقيع الويب هوك ومنع تكرار الأحداث

التحقق من توقيع الويب هوك ومنع تكرار الأحداث

·برمجة

شرح عملي للتحقق من توقيع الويب هوك على الجسم الخام، ومنع تكرار الأحداث بمعرّف فريد، مع فروق الترويسات والمهل بين Stripe وGitHub وSlack وShopify.