تخطي إلى المحتوى الرئيسي
Clinford Jordano Valencia
كل المشاريع
منصةويبالجوال

تدفقات مدفوعة بالمخطط مع الإعدادات كشيفرة

منصة واجهات مدفوعة بالإعدادات مع config-as-code قائم على Git، لتصدر تغييرات القواعد في ساعات دون نشر للواجهة الأمامية.

التقنيات
TypeScript · jsonform · Git · CI/CD · Schema validation

المشكلة

كانت التدفقات لأسواق كثيرة تعني شيفرة مكررة وتذكرة هندسية في كل مرة يريد فيها فريق المنتج أو الامتثال تغيير قاعدة إقليمية.

النهج

  • عرض النماذج من المخطط. تقرأ الواجهة إعدادات JSON أو YAML عبر jsonform: يولّد المخطط الحقول وقواعد التحقق. أما الإجراءات المخصصة، مثل تشغيل جسر أصلي، فتبقى في الشيفرة.
  • خطوة واحدة، نتائج مختلفة. تحدد الإعدادات ما تفعله الخطوة لكل سوق ومنصة. وحيث تكون القدرة الأصلية مدعومة تعرض الخطوة إرشادًا وزر مسح؛ وإلا تعرض حقول النموذج المعتادة وزر المتابعة. ويغيّر فريق المنتج ذلك في الإعدادات لا في الشيفرة.
  • الإعدادات كشيفرة. تُرسل التغييرات عبر Git. يفتح كل تغيير pull request آليًا ويشغّل CI مع تحقق صارم من المخطط مدعوم بأنواع TypeScript، فتفشل الإعدادات المشوهة قبل الوصول إلى الإنتاج.

قراران يستحقان الشرح

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

Git بدل نموذج المسؤول. التعديلات السهلة بلا حوكمة تكسر التدفقات الإنتاجية. وتجعل pull request وفحوص الأنواع وCI كل تغيير قابلًا للإسناد والمراجعة وسهل التراجع.

النتيجة

لم تعد إصدارات الإعدادات تعتمد على نشر الواجهة الأمامية، فانتقلت تحديثات الأسواق المتعددة من أسابيع إلى ساعات، وتوقف تكرار الشيفرة الإقليمية عن النمو.