تصنيف: برمجة

تجمّع الاتصالات في قاعدة البيانات: اضبط الحجم والمهلات

تجمّع الاتصالات في قاعدة البيانات: اضبط الحجم والمهلات

·برمجة

لماذا يزيد رفع max_connections الكمون؟ احسب حجم تجمّع الاتصالات من الأنوية، وزّع ميزانية النسخ، وفعّل المهلات المعطّلة افتراضياً في PostgreSQL.

الفهرس المركب في SQL: ترتيب الأعمدة يحسم الأداء

الفهرس المركب في SQL: ترتيب الأعمدة يحسم الأداء

·برمجة

قاعدة ترتيب أعمدة الفهرس المركب: مساواة ثم مدى ثم ترتيب، مع قراءة خطط التنفيذ في PostgreSQL وMySQL وأمثلة تكشف سبب تجاهل المخطط لفهرسك.

تخزين التاريخ والوقت في قاعدة البيانات: UTC أولاً

تخزين التاريخ والوقت في قاعدة البيانات: UTC أولاً

·برمجة

دليل عملي لتخزين التاريخ والوقت في قاعدة البيانات: متى تعتمد UTC للحظات الماضية، ومتى تحفظ المواعيد المستقبلية بوقت محلي مع معرّف IANA.

تخزين المبالغ المالية في قاعدة البيانات: DECIMAL لا float

تخزين المبالغ المالية في قاعدة البيانات: DECIMAL لا float

·برمجة

دليل عملي لتخزين المبالغ المالية في قاعدة البيانات: لماذا يفشل float، ومتى تختار DECIMAL أو أصغر وحدة، مع فخ العملات الخليجية وتقريب ضريبة زاتكا.

مشكلة 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.