تخطّى إلى المحتوى الرئيسي

مدوّنتنا

تصفّح مقالات مدوّنتنا حول تصميم وتطوير المواقع والتسويق الرقمي لتبقى على اطّلاع بأحدث التوجّهات والاستراتيجيات.

تم العثور على 101 مقال

إطلاق أعلام الميزات في Next.js باستخدام Vercel Flags SDK
اقرأ المقال
هندسة الواجهات
October 8, 2026

إطلاق أعلام الميزات في Next.js باستخدام Vercel Flags SDK

نقلنا أعلام الميزات المخصّصة القائمة على متغيرات البيئة لدى أحد عملائنا إلى Flags SDK ونمط precompute. إليكم كيف بدت عملية النقل ولماذا كان الرندر الثابت هو الجزء الذي يستحق الحماية.

اقرأ المزيد
الترحيل من vercel.json إلى vercel.ts: ما تعلمناه من إعدادات Vercel المكتوبة بـ TypeScript
اقرأ المقال
هندسة الواجهات
October 7, 2026

الترحيل من vercel.json إلى vercel.ts: ما تعلمناه من إعدادات Vercel المكتوبة بـ TypeScript

يستبدل vercel.ts ملف vercel.json بملف إعدادات TypeScript قابل للتنفيذ ومزوّد بالأنواع. هذا ما واجهناه عند ترحيل مشاريع العملاء، من أخطاء إملائية تم اكتشافها إلى خلل في ثبات الإعدادات سببه Date.now().

اقرأ المزيد
انتهاء دعم Node.js 20 على Vercel: ترحيلنا إلى Node 24 LTS
اقرأ المقال
هندسة الواجهات
October 5, 2026

انتهاء دعم Node.js 20 على Vercel: ترحيلنا إلى Node 24 LTS

انتهى دعم Node.js 20 على Vercel في 1 أكتوبر 2026. هذا ما تعطّل فعليًا عندما رحّل فريقنا عدة مشاريع إنتاجية إلى Node 24 LTS — ولم يكن كود التطبيق.

اقرأ المزيد
ترحيل المشاريع من Edge Runtime في Vercel: ملاحظات ميدانية
اقرأ المقال
هندسة الواجهات الأمامية
October 4, 2026

ترحيل المشاريع من Edge Runtime في Vercel: ملاحظات ميدانية

بيئة Edge Runtime في Vercel أصبحت قيد الإيقاف التدريجي لصالح Node.js على Fluid Compute — إليكم ما وجدناه أثناء ترحيل مسارات Next.js، ولماذا استمر البث بالعمل دون أي تغيير.

اقرأ المزيد
لماذا مسح تبويبان تعديلات بعضهما بصمت: ملاحظات ميدانية عن التحديثات المفقودة وأعمدة الإصدار وETag
اقرأ المقال
هندسة الأنظمة الخلفية
September 27, 2026

لماذا مسح تبويبان تعديلات بعضهما بصمت: ملاحظات ميدانية عن التحديثات المفقودة وأعمدة الإصدار وETag

أعدنا إنتاج خلل يمحو فيه تبويبان يعدّلان السجل نفسه تغييرات بعضهما بصمت، دون أي خطأ. هذه ملاحظاتنا الميدانية عن سبب عجز معاملات قاعدة البيانات عن منع التحديثات المفقودة عبر طلبات HTTP، وكيف يعالجها عمود إصدار وترويستا ETag وIf-Match وشاشة تعارض واضحة.

اقرأ المزيد
لماذا لا يوقف موجّه نظام أفضل حقنَ الأوامر: ملاحظاتنا الميدانية حول الثلاثية القاتلة والأدوات محددة الصلاحيات والمخرجات غير الموثوقة
اقرأ المقال
هندسة الذكاء الاصطناعي
September 26, 2026

لماذا لا يوقف موجّه نظام أفضل حقنَ الأوامر: ملاحظاتنا الميدانية حول الثلاثية القاتلة والأدوات محددة الصلاحيات والمخرجات غير الموثوقة

أثناء بناء مساعد لصندوق الدعم يملك صلاحية استدعاء الأدوات، أدخل فريقنا تذكرة اختبار تحتوي على تعليمات مخفية، فنفّذ النموذج بعضها. هذه ملاحظاتنا الميدانية حول سبب كون حقن الأوامر مشكلة معمارية لا مشكلة صياغة، وكيف تكشف الثلاثية القاتلة ميزات الذكاء الاصطناعي الخطرة، وكيف نقيّد الأدوات بصلاحيات المستخدم المسجّل، ولماذا تحتاج الآثار الجانبية إلى تأكيد بشري، وكيف يتحول عرض Markdown إلى قناة لتسريب البيانات.

اقرأ المزيد
حين تجعل إعادة المحاولة العطل أسوأ: مفاتيح عدم التكرار، والتراجع مع التشويش، وقواطع الدائرة
اقرأ المقال
هندسة الخلفية
September 23, 2026

حين تجعل إعادة المحاولة العطل أسوأ: مفاتيح عدم التكرار، والتراجع مع التشويش، وقواطع الدائرة

إعادة المحاولة الساذجة تضاعف الحِمل على خدمة تعاني أصلاً. نشرح تضخيم إعادة المحاولة، وأي أخطاء HTTP آمنة للتكرار، وكيف نطبّق ترويسة Idempotency-Key بقيد فريد بدل القراءة ثم الكتابة، ولماذا يتفوّق التشويش الكامل على التراجع الثابت، ومتى يستحق قاطع الدائرة تعقيده.

اقرأ المزيد
لماذا يصبح الترقيم بـ OFFSET أبطأ مع كل صفحة: مؤشرات keyset ومفاتيح الترتيب المستقرة والفهرس الذي يجعلها تعمل
اقرأ المقال
هندسة الخوادم
September 21, 2026

لماذا يصبح الترقيم بـ OFFSET أبطأ مع كل صفحة: مؤشرات keyset ومفاتيح الترتيب المستقرة والفهرس الذي يجعلها تعمل

استبدلنا الترقيم بـ OFFSET في واجهة إنتاجية بعدما بدأت الصفحات العميقة تتجاوز مهلة الاستجابة. هذه ملاحظاتنا الهندسية حول سبب كون تكلفة OFFSET متناسبة مع عمق الصفحة، وكيف تحوّل مؤشرات keyset الترقيم إلى بحث مباشر داخل الفهرس، وأي فهرس مركّب يحتاجه الاستعلام، وخطأ دقة الطوابع الزمنية الذي جعل مؤشراتنا تتخطى صفوفًا.

اقرأ المزيد
لماذا يكسر النشر كل تبويب مفتوح: ملاحظات ميدانية حول ChunkLoadError وانحراف الإصدارات
اقرأ المقال
هندسة الواجهات
September 20, 2026

لماذا يكسر النشر كل تبويب مفتوح: ملاحظات ميدانية حول ChunkLoadError وانحراف الإصدارات

قد يملأ نشر روتيني واحد سجل الأخطاء برسائل ChunkLoadError قادمة من جلسات فتحت الصفحة قبل دقائق. هذه ملاحظاتنا الميدانية حول سبب كون انحراف الإصدارات عدم تطابق بين العميل والخادم لا خللاً في أداة التجميع، والطبقات الأربع التي يكسرها، وكيف يبقي خيار deploymentId في Next.js وخاصية Skew Protection في Vercel البناءات القديمة قابلة للوصول، وكيف نبني مسار تعافٍ في المتصفح يعيد التحميل مرة واحدة فقط.

اقرأ المزيد
لماذا تنجح اختبارات Playwright محليًا وتفشل في CI: ملاحظاتنا الميدانية حول الانتظار التلقائي وعزل الاختبارات والتصحيح عبر التتبّع
اقرأ المقال
الاختبارات
September 19, 2026

لماذا تنجح اختبارات Playwright محليًا وتفشل في CI: ملاحظاتنا الميدانية حول الانتظار التلقائي وعزل الاختبارات والتصحيح عبر التتبّع

كانت مجموعات الاختبارات الشاملة لدينا خضراء على أجهزة المطورين وحمراء بشكل متقطع على CI. هذه ملاحظاتنا الميدانية حول كون التذبذب في Playwright حالة تسابق داخل الاختبار وليس عشوائية في المتصفح، وكيف تحل التوكيدات web-first محل كل انتظار ثابت، وكيف تمنع الـ fixtures على مستوى العامل مشاركة البيانات، ولماذا يُعد trace: 'on-first-retry' أهم سطر في ملف الإعداد.

اقرأ المزيد
لماذا يستمر استهلاك الذاكرة في عمليات Node بالارتفاع: ملاحظات ميدانية عن لقطات الكومة والكاش في نطاق الوحدة والتسريبات التي تظهر عند إعادة استخدام النسخ
اقرأ المقال
هندسة الويب المتكاملة
September 15, 2026

لماذا يستمر استهلاك الذاكرة في عمليات Node بالارتفاع: ملاحظات ميدانية عن لقطات الكومة والكاش في نطاق الوحدة والتسريبات التي تظهر عند إعادة استخدام النسخ

خدمة Node تبقى بصحة جيدة لساعة بعد كل نشر ثم يبدأ استهلاكها بالارتفاع تعني تسريباً فوق الطلب لا داخله. هذه ملاحظاتنا الميدانية حول التفريق بين تسريب حقيقي وتذبذب جمع المهملات، والتقاط لقطات الكومة عبر ‎--heapsnapshot-signal‎، وقراءة لوحة Retainers وصولاً إلى Map في نطاق الوحدة، ولماذا تجعل إعادة استخدام النسخ في Fluid Compute الكود بلا خادم يتسرب كخادم طويل العمر.

اقرأ المزيد
لماذا لا تنجح ذاكرة CDN أبدًا: ملاحظاتنا الميدانية حول Cache-Control وs-maxage وstale-while-revalidate
اقرأ المقال
هندسة الويب المتكاملة
September 14, 2026

لماذا لا تنجح ذاكرة CDN أبدًا: ملاحظاتنا الميدانية حول Cache-Control وs-maxage وstale-while-revalidate

كانت نقطة نهاية JSON عامة تصل إلى الخادم الأصلي في كل طلب بينما بدت إعدادات CDN صحيحة. هذه ملاحظاتنا الميدانية حول قراءة ترويسات x-vercel-cache وAge بدلًا من لوحات التحكم، والفرق بين max-age وs-maxage وstale-while-revalidate، ومتى تتفوق CDN-Cache-Control على ترويسة Cache-Control وحدها، والحالات الخمس التي تُعطّل التخزين على الحافة بصمت.

اقرأ المزيد

ابقَ على اطّلاع

اشترك في نشرتنا البريدية للحصول على أحدث الرؤى حول تصميم وتطوير المواقع والتسويق الرقمي.