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

مدوّنتنا

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

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

لماذا تسبب الخطوط انزياح التخطيط: ملاحظات ميدانية حول next/font و size-adjust ومقاييس الخط الاحتياطي العربي
اقرأ المقال
هندسة الواجهات
September 13, 2026

لماذا تسبب الخطوط انزياح التخطيط: ملاحظات ميدانية حول next/font و size-adjust ومقاييس الخط الاحتياطي العربي

في موقع ثنائي اللغة نتولى صيانته، كانت الصفحات العربية تتحرك عند كل تحميل بارد بينما ظلت الصفحات الإنجليزية مستقرة. هذه ملاحظاتنا الميدانية حول سبب انزياح التخطيط الناتج عن الخطوط، وما الذي يولّده next/font تلقائياً، وكيف نحسب size-adjust ومحدِّدات القياس الرأسي للعربية بأنفسنا.

اقرأ المزيد
لماذا تنكسر الحزمة داخل تطبيق CommonJS: ملاحظات ميدانية حول require(esm) وخريطة exports وخطر الحزمة المزدوجة
اقرأ المقال
هندسة الويب المتكاملة
September 10, 2026

لماذا تنكسر الحزمة داخل تطبيق CommonJS: ملاحظات ميدانية حول require(esm) وخريطة exports وخطر الحزمة المزدوجة

نشرنا أداة صغيرة بصيغة ESM فقط، وكان أول من ثبّتها خدمة CommonJS فشلت عند الإقلاع بالخطأ ERR_REQUIRE_ESM. هذه ملاحظاتنا الميدانية حول ما أصلحته فعلاً خاصية require(esm) في Node.js 22.12، وترتيب شروط exports الذي يحل بصمت إلى الملف الخاطئ، وخطر الحزمة المزدوجة الذي يبقى رغم كل ذلك، والأداتين اللتين نشغّلهما قبل كل نشر.

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

لماذا تكلّف ميزات النماذج اللغوية أكثر مما ينبغي: ملاحظاتنا الميدانية حول التخزين المؤقت للموجّهات ونقاط القطع والطابع الزمني الذي يُفسد كل إصابة

استمرت فاتورة الوحدات الرمزية لأحد وكلائنا في الارتفاع بعد تفعيل التخزين المؤقت للموجّهات، وكشف حقل الاستخدام السبب: كل طلب كان كتابة للذاكرة المؤقتة ولا طلب واحد كان قراءة منها. هذه ملاحظاتنا الميدانية حول الموضع الصحيح لنقطة القطع، والتغييرات التي تُبطل البادئة بصمت، والحساب الذي يحدد الاختيار بين مدة خمس دقائق وساعة كاملة.

اقرأ المزيد
لماذا يصبح فحص أنواع TypeScript بطيئًا: ملاحظاتنا الميدانية حول tsgo ومراجع المشاريع وisolatedDeclarations
اقرأ المقال
أدوات المطورين
September 7, 2026

لماذا يصبح فحص أنواع TypeScript بطيئًا: ملاحظاتنا الميدانية حول tsgo ومراجع المشاريع وisolatedDeclarations

عندما يتوقف فحص الأنواع عن كونه جزءًا من دورة التطوير السريعة، يكون حدسنا الأول خاطئًا عادةً: المستودع لم يكبر كثيرًا، بل أصبح مليئًا بالأنواع العامة. نشارك كيف نقيس tsc باستخدام ‎--extendedDiagnostics‎ قبل أي تعديل، وكيف نقيّم منفذ TypeScript الأصلي المكتوب بلغة Go واسمه tsgo، ومتى تستحق مراجع المشاريع وisolatedDeclarations عناء الترحيل.

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

كيف نختبر ميزات النماذج اللغوية: المجموعات الذهبية والنموذج الحَكَم وبوابات التقييم في التكامل المستمر

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

اقرأ المزيد
لماذا حزمة العميل في Next.js أكبر مما تظن: ملفات البراميل وoptimizePackageImports وحدود 'use client'
اقرأ المقال
هندسة الواجهات
September 3, 2026

لماذا حزمة العميل في Next.js أكبر مما تظن: ملفات البراميل وoptimizePackageImports وحدود 'use client'

توجيه واحد من نوع 'use client' يسحب رسم الاستيراد الكامل للملف إلى حزمة المتصفح، وملف براميل index.ts يعيد تصدير مئتي وحدة هو السبب في تضخم هذا الرسم دون أن يلاحظ أحد. هذه ملاحظاتنا الميدانية عن الاستيراد المباشر وexperimental.optimizePackageImports وsideEffects وقراءة جدول next build بأمانة.

اقرأ المزيد
إدارة تركيز لوحة المفاتيح في Next.js App Router: تغيير المسار الذي يفقد التركيز، وinert، وعنصر dialog الأصلي
اقرأ المقال
هندسة الواجهات
September 1, 2026

إدارة تركيز لوحة المفاتيح في Next.js App Router: تغيير المسار الذي يفقد التركيز، وinert، وعنصر dialog الأصلي

يُعلن Next.js App Router عن تغيّر المسار لقارئات الشاشة لكنه لا ينقل تركيز لوحة المفاتيح أبدًا. هذه ملاحظاتنا الميدانية حول مكوّن RouteFocus المكوّن من خمسة عشر سطرًا الذي نشحنه في كل مشروع، ومتى نستخدم inert بدل aria-hidden، ولماذا يحبس عنصر dialog الأصلي التركيز فقط عند فتحه بـ showModal().

اقرأ المزيد
ترحيل مخطط Postgres دون توقف: نمط التوسيع والتقليص و lock_timeout وطابور الأقفال
اقرأ المقال
هندسة الخوادم
August 31, 2026

ترحيل مخطط Postgres دون توقف: نمط التوسيع والتقليص و lock_timeout وطابور الأقفال

نادرًا ما يُسقط ترحيل قاعدة بيانات Postgres التطبيق بسبب بطء أمر DDL نفسه، بل لأن أمر ALTER TABLE ينتظر قفلًا فينتظر خلفه كل استعلام وارد. هذه ملاحظات فريقنا الميدانية عن طوابير الأقفال ونمط التوسيع والتقليص وأوامر DDL التي تعيد كتابة الجدول والتعبئة على دفعات.

اقرأ المزيد
تحصين سلسلة إمداد حزم npm في 2026: سكربتات دورة الحياة وإعداد minimumReleaseAge والـ postinstall الذي توقفنا عن الوثوق به
اقرأ المقال
هندسة الأمن
August 30, 2026

تحصين سلسلة إمداد حزم npm في 2026: سكربتات دورة الحياة وإعداد minimumReleaseAge والـ postinstall الذي توقفنا عن الوثوق به

سكربتات دورة الحياة في npm تنفّذ شيفرة عشوائية من الاعتمادات قبل أن يبدأ التطبيق نفسه. هذه ملاحظات فريقنا الميدانية حول تعطيل سكربتات التثبيت افتراضيًا، وإضافة فترة تهدئة زمنية تمنع وصول أي إصدار حديث النشر إلى ملف القفل، وما الذي يثبته إثبات المنشأ في npm وما لا يثبته.

اقرأ المزيد
تعدد المستأجرين (Multi-Tenant) في Next.js App Router: ملاحظات ميدانية عن Middleware للنطاقات الفرعية والتسريب الذي رصدناه في الوقت المناسب
اقرأ المقال
هندسة البرمجيات الشاملة
August 29, 2026

تعدد المستأجرين (Multi-Tenant) في Next.js App Router: ملاحظات ميدانية عن Middleware للنطاقات الفرعية والتسريب الذي رصدناه في الوقت المناسب

نستعرض كيف نبني تطبيقات SaaS متعددة المستأجرين على Next.js App Router: تحديد المستأجر داخل middleware دون طلب قاعدة بيانات لكل زيارة، تخزين مؤقت مخصص لكل مستأجر، وطبقة أمان الصفوف في Postgres التي تحمينا عندما ينسى الكود تحديد النطاق بشكل صحيح.

اقرأ المزيد
البحث الهجين في Postgres باستخدام pgvector: ملاحظاتنا الميدانية حول HNSW وtsvector ودمج الترتيب التبادلي
اقرأ المقال
هندسة الذكاء الاصطناعي
August 25, 2026

البحث الهجين في Postgres باستخدام pgvector: ملاحظاتنا الميدانية حول HNSW وtsvector ودمج الترتيب التبادلي

pgvector هو امتداد لـ Postgres يضيف أنواع أعمدة المتجهات وفهارس الجيران الأقرب التقريبية. بنينا عليه خط استرجاع لتطبيق RAG، فلاحظنا أنه يفشل في مطابقة أكواد الأخطاء وأرقام المنتجات الحرفية، وأصلحنا ذلك بدمج تشابه المتجهات مع البحث النصي الكامل في Postgres عبر دمج الترتيب التبادلي. هذه ملاحظاتنا حول HNSW مقابل IVFFlat، وحد الألفي بُعد للفهرسة، وجملة WHERE التي أعادت صفوفاً أقل من الحد المطلوب.

اقرأ المزيد
عمّال الويب في موجّه التطبيقات بـ Next.js: ملاحظاتنا الميدانية حول import.meta.url وخطأ DataCloneError وما لا يستطيع العامل إصلاحه
اقرأ المقال
الأداء
August 24, 2026

عمّال الويب في موجّه التطبيقات بـ Next.js: ملاحظاتنا الميدانية حول import.meta.url وخطأ DataCloneError وما لا يستطيع العامل إصلاحه

عامل الويب هو خيط جافاسكربت يعمل في الخلفية بلا وصول إلى DOM. نقلنا تحليل ملفات CSV وتغيير حجم الصور وفهرس البحث خارج الخيط الرئيسي في تطبيق يعتمد على موجّه التطبيقات في Next.js — وهنا سبب عودة 404 عند نقل new URL خارج المُنشئ، وسبب وصول كائنات الأصناف بلا توابع، وسبب إنشاء StrictMode لعاملين اثنين.

اقرأ المزيد

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

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