مستودع Nx أحادي — مكتبات مكوّنات Angular مشتركة
المشكلة
تبني Champions Global منصات لعملائها وتتولى صيانتها، وكانت مشكلات الواجهة نفسها تُحل من جديد في كل قاعدة كود: الجدول نفسه، وعنصر الإدخال نفسه، والمكوّن نفسه، مكتوبًا في كل مرة بصورة مختلفة قليلًا. وهذا التكرار رخيص في اليوم الأول ومكلف بعد ذلك دائمًا؛ إذ يحتاج التصحيح الواحد إلى تطبيقه في مواضع عدة، وتظل النسخ تتباعد حتى يختلف سلوكها دون سبب مفهوم.
دوري في المشروع
عملت مهندس واجهات خلفية في ارتباط استمر أربعة عشر شهرًا، وامتد عملي عبر طبقات النظام على منصات عملاء تبقى أسماؤها غير معلنة هنا. وإلى جانب العمل على الواجهات البرمجية، بنيت مكتبات Angular المشتركة التي تحمل دراسة الحالة اسمها. وتوحيد واجهات الاستخدام المشتركة مشكلة تنظيمية بقدر ما هي تقنية؛ فالمكتبة لا تستمر إلا إذا كان استخدامها أسهل من نسخ الملف المجاور، ولذلك كان العمل منصبًّا على المنهجية المحيطة بها بالقدر نفسه.
البنية المعمارية
- مكتبات مكوّنات Angular ووحدات مشتركة قابلة لإعادة الاستخدام داخل مستودع Nx أحادي، فيصبح لكل مكوّن تنفيذ واحد ومجموعة اختبارات واحدة وموضع واحد للتصحيح؛ كما يوضح مخطط الاعتماديات في Nx أي التطبيقات يمسّها التغيير فعلًا قبل دمجه.
- خدمات خلفية بلغة PHP (Laravel و Symfony) وبيئة Node.js (NestJS و Express)، مصممة كواجهات REST وفق المعمارية النظيفة، لتبقى قواعد العمل مستقلة عن إطار العمل الذي يحملها.
- واجهات أمامية بـ Next.js سُلِّمت من البداية إلى النهاية فوق واجهات NestJS و Express.
- ميزات فورية بـ Socket.io حيث احتاج المنتج فعلًا إلى بيانات حيّة لا إلى زر تحديث.
- ربط متاجر WordPress و Shopify بخدمات خلفية مخصصة، ليحتفظ العميل بواجهة المتجر التي يعرفها فريقه بينما ينتقل المنطق المهم إلى خلف واجهة برمجية.
- مساهمات في مسارات CI/CD وفي منهجية العمل داخل المستودع الأحادي — وهو الجزء غير اللامع الذي يحدد ما إذا كانت المكتبات المشتركة ستبقى مشتركة أم ستعود بهدوء إلى نسخ متفرقة.
التقنيات
Angular و TypeScript و Nx و Next.js و NestJS و Express و Laravel و Symfony و Socket.io و WordPress و Shopify.
النتيجة
انخفض منطق الواجهات المكرَّر بنسبة 35%. الرقم هو العنوان، لكن الأثر الباقي هو ما يمثله: مكتبة مكوّنات تلجأ إليها الفرق تلقائيًا، ومستودع أحادي يصبح فيه التغيير المشترك طلب دمج واحدًا بدل خمسة، ومسارات تكامل تثبت سلامة التغيير لدى كل المستهلكين قبل اعتماده. استمر الارتباط من مارس 2025 حتى أبريل 2026.