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

مدوّنتنا

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

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

أمان مستوى الصفوف في Postgres لتطبيقات Node.js متعددة المستأجرين: الأدوار والاتصالات المجمّعة والنقاط العمياء — ملاحظات ميدانية
اقرأ المقال
هندسة الأنظمة الخلفية
October 29, 2026

أمان مستوى الصفوف في Postgres لتطبيقات Node.js متعددة المستأجرين: الأدوار والاتصالات المجمّعة والنقاط العمياء — ملاحظات ميدانية

ننقل عزل المستأجرين في تطبيقات Node.js ذات المخطط المشترك إلى ميزة Row-Level Security في PostgreSQL، فيُرجع الشرط المنسي WHERE tenant_id صفر صفوف بدلًا من بيانات عميل آخر. تغطي ملاحظاتنا شكل السياسة، وفصل الأدوار الذي يمنع تجاوز RLS بصمت، ونمط set_config الصامد أمام تجميع الاتصالات، والنقاط العمياء.

اقرأ المزيد
مكوّن Activity في React داخل Next.js 16: كيف نتعامل مع الصفحات المخفية وإعادة تشغيل التأثيرات وuseEffectEvent
اقرأ المقال
هندسة الواجهات
October 28, 2026

مكوّن Activity في React داخل Next.js 16: كيف نتعامل مع الصفحات المخفية وإعادة تشغيل التأثيرات وuseEffectEvent

عند تفعيل cacheComponents يتوقف Next.js 16 عن إزالة الصفحات ويخفيها بدلًا من ذلك باستخدام مكوّن Activity في React. نشرح هنا كيف يقرر فريقنا أي حالة يجب أن تبقى بعد الانتقال، وكيف نعيد ضبط الآثار الجانبية لعناصر DOM التي تستمر رغم display: none، وكيف نستخدم useEffectEvent لتقليل كلفة إعادة تشغيل التأثيرات، وكيف نمنع Playwright من النقر على صفحات غادرها المستخدم.

اقرأ المزيد
BullMQ 6 في NestJS: المهام المتوقفة، ومنع التكرار، ونقل المهام المتكررة إلى Job Schedulers — ملاحظات ميدانية
اقرأ المقال
هندسة الأنظمة الخلفية
October 27, 2026

BullMQ 6 في NestJS: المهام المتوقفة، ومنع التكرار، ونقل المهام المتكررة إلى Job Schedulers — ملاحظات ميدانية

كيف نشغّل BullMQ 6 خلف NestJS في الإنتاج: Redis بإعداد noeviction، ومعالجات معزولة تمنع تنفيذ المهام المتوقفة مرتين، والفرق بين jobId وdeduplication، ونقل المهام المتكررة إلى Job Schedulers قبل الترقية إلى BullMQ 6.

اقرأ المزيد
تدوير رموز التحديث في NestJS وNext.js: كشف إعادة الاستخدام وعائلات الرموز وسباق التحديث المتوازي — ملاحظات ميدانية
اقرأ المقال
هندسة Full-Stack
October 26, 2026

تدوير رموز التحديث في NestJS وNext.js: كشف إعادة الاستخدام وعائلات الرموز وسباق التحديث المتوازي — ملاحظات ميدانية

كيف ندوّر رموز التحديث في كل استخدام داخل واجهات NestJS البرمجية، ونخزّنها كعائلات رموز مُجزّأة في Postgres، ونُلغي العائلة كاملة عند عودة رمز مستخدَم، ونمنع الطلبات المتوازية وعمليات الجلب المسبق في Next.js من تسجيل خروج المستخدمين.

اقرأ المزيد
قواعد التخمين المسبق (Speculation Rules) في Next.js: كيف نعرض التنقلات الكاملة مسبقًا دون كسر التحليلات أو سياسة CSP
اقرأ المقال
هندسة الواجهات
October 23, 2026

قواعد التخمين المسبق (Speculation Rules) في Next.js: كيف نعرض التنقلات الكاملة مسبقًا دون كسر التحليلات أو سياسة CSP

تتيح واجهة Speculation Rules API لمتصفحات Chromium جلب الصفحة التالية أو عرضها بالكامل مسبقًا قبل النقر، لكنها في تطبيقات Next.js App Router لا تُسرّع إلا التنقلات الكاملة. هكذا نحصر القواعد، ونشغّلها بأمان تحت سياسة CSP صارمة، ونستبعد الروابط ذات الآثار الجانبية، ونُبقي العرض المسبق خارج إحصاءات التحليلات.

اقرأ المزيد
تدافع الكاش في Node.js: كيف نستخدم دمج الطلبات وأقفال Redis ونمط stale-while-revalidate للمفاتيح الساخنة
اقرأ المقال
هندسة الأنظمة الخلفية
October 22, 2026

تدافع الكاش في Node.js: كيف نستخدم دمج الطلبات وأقفال Redis ونمط stale-while-revalidate للمفاتيح الساخنة

انتهاء صلاحية مفتاح كاش شائع تحت الضغط يرسل كل الطلبات المتزامنة إلى قاعدة البيانات دفعة واحدة. إليكم كيف نبني طبقات الحماية من تدافع الكاش في خدمات Node.js وNestJS لدينا: دمج الطلبات داخل العملية، وقفل Redis عبر SET NX بين النسخ، وTTL مرن يقدّم البيانات القديمة بينما يحدّثها عامل واحد، والانتهاء المبكر الاحتمالي، والتذبذب العشوائي في TTL.

اقرأ المزيد
عقود API مُنمَّطة من NestJS إلى Next.js عبر OpenAPI: كيف نُبقي أنواع الواجهة صادقة
اقرأ المقال
هندسة التطبيقات المتكاملة
October 20, 2026

عقود API مُنمَّطة من NestJS إلى Next.js عبر OpenAPI: كيف نُبقي أنواع الواجهة صادقة

توقفنا عن نسخ أنواع الـ DTO يدويًا بين واجهات NestJS البرمجية وتطبيقات Next.js، وأصبحنا نولّدها من مواصفة OpenAPI التي يُخرجها NestJS أصلًا. هذا مسارنا الكامل — إضافة Swagger CLI وopenapi-typescript وعميل openapi-fetch لكل طلب وفحص الانحراف في CI — والمواضع التي ما زالت الأنواع المولَّدة تكذب فيها.

اقرأ المزيد
نمط Transactional Outbox في Postgres و NestJS: كيف أنهينا الكتابة المزدوجة بين قاعدة البيانات وقائمة الانتظار
اقرأ المقال
هندسة الواجهة الخلفية
October 19, 2026

نمط Transactional Outbox في Postgres و NestJS: كيف أنهينا الكتابة المزدوجة بين قاعدة البيانات وقائمة الانتظار

استبدلنا نمط الحفظ ثم النشر (الكتابة المزدوجة) في خدمات NestJS لدينا بنمط Transactional Outbox في Postgres: يُثبَّت صف الحدث مع التغيير الأساسي، وينشره ناقل يعتمد على SKIP LOCKED، ويزيل المستهلكون التكرار بمعرّف الحدث. إليك التصميم، وحالات الفشل التي يغلقها، وكيف نشغّله في الإنتاج.

اقرأ المزيد
JSON-LD في Next.js App Router: كيف نكتب أنواع البيانات المنظَّمة ونسلسلها ونختبرها — ملاحظات ميدانية
اقرأ المقال
هندسة الواجهات
October 17, 2026

JSON-LD في Next.js App Router: كيف نكتب أنواع البيانات المنظَّمة ونسلسلها ونختبرها — ملاحظات ميدانية

نعرض JSON-LD من مكوّنات الخادم في Next.js App Router، ونهرّب كل علامة «أصغر من» حتى لا يغلق المحتوى وسم script، ونكتب أنواع الرسم بحزمة schema-dts، ونُبقيه متطابقاً مع الصفحة عبر اختبار CI. وهذه أنواع schema.org التي لا تزال تستحق مكانها في 2026.

اقرأ المزيد
لماذا ينكسر CORS بين Next.js و NestJS: ملاحظاتنا الميدانية حول طلبات Preflight وملفات تعريف الارتباط والتمرير عبر وكيل
اقرأ المقال
هندسة الأنظمة الخلفية
October 16, 2026

لماذا ينكسر CORS بين Next.js و NestJS: ملاحظاتنا الميدانية حول طلبات Preflight وملفات تعريف الارتباط والتمرير عبر وكيل

في كل مرة نفصل فيها واجهة Next.js عن واجهة برمجية NestJS نواجه أخطاء CORS الثلاثة نفسها: طلبات preflight مرفوضة، وأصل عام * ينكسر مع ملفات تعريف الارتباط، وجلسات لا تصل أبدًا. إليك ما تفعله كل ترويسة CORS فعلًا، وإعداد قائمة السماح الذي نعتمده، ومتى نمرّر /api عبر rewrite في Next.js بدلًا من ذلك.

اقرأ المزيد
الإيقاف الآمن لتطبيقات Node.js وNestJS داخل Docker: إشارة SIGTERM وتصريف الطلبات وترتيب الـ Hooks
اقرأ المقال
هندسة الأنظمة الخلفية
October 15, 2026

الإيقاف الآمن لتطبيقات Node.js وNestJS داخل Docker: إشارة SIGTERM وتصريف الطلبات وترتيب الـ Hooks

كانت حاويات NestJS لدينا تنتهي برمز الخروج 137 عند النشر، أي أنها تُقتل بإشارة SIGKILL في منتصف الطلبات بعد مهلة Docker البالغة 10 ثوانٍ. نشرح هنا كيف أصلحنا وصول الإشارة، وفعّلنا shutdown hooks في NestJS، ونقلنا إغلاق الاتصالات إلى الـ hook الذي يعمل بعد انتهاء خادم HTTP من تصريف الطلبات.

اقرأ المزيد
خطافات Claude Code: كيف نحوّل قواعد وكلاء الذكاء الاصطناعي إلى حواجز حماية حتمية
اقرأ المقال
الذكاء الاصطناعي وأدوات المطورين
October 14, 2026

خطافات Claude Code: كيف نحوّل قواعد وكلاء الذكاء الاصطناعي إلى حواجز حماية حتمية

القاعدة في CLAUDE.md طلبٌ يلتزم به النموذج غالبًا، أما خطاف Claude Code فيعمل في كل مرة. نشارك كيف يستخدم فريقنا خطافات PreToolUse وPostToolUse وStop لحظر ملفات الأسرار وتنسيق التعديلات تلقائيًا ورفض الإنهاء عند فشل فحص الأنواع.

اقرأ المزيد

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

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