
إطار عمل لتبديل الميزات في Java يتيح التنشيط الديناميكي للميزات في وقت التشغيل، والوصول القائم على الأدوار، والتبديل القائم على AOP، والمراقبة، ومسارات التدقيق، ووحدة تحكم ويب مع REST API.
FF4j هو تنفيذ لنمط Feature Toggle.
تبديل الميزات (Feature Toggle): قم بتمكين. وتعطيل الميزات في وقت التشغيل - دون الحاجة إلى عمليات نشر. في الكود الخاص بك، نفّذ مسارات متعددة محمية بمسندات (predicates) ديناميكية (if/then/else).
التبديل المستند إلى الأدوار: قم بتمكين الميزات ليس فقط عبر قيم الأعلام (flags) ولكن أيضاً بالتحكم في الوصول عبر الأدوار والمجموعات (Canary Release). يتم دعم أطر عمل مختلفة بدءاً من Spring Security.
التبديل المستند إلى الاستراتيجيات: نفّذ مسندات (predicates) مخصصة (نمط الاستراتيجية Strategy Pattern) لتقييم ما إذا كانت الميزة مفعّلة. بعضها متوفّر جاهزاً خارج الصندوق: القوائم البيضاء/السوداء، المستندة إلى الوقت، المستندة إلى التعبيرات. اربط مصادر خارجية مثل محرك القواعد Drools.
التبديل المستند إلى AOP: حافظ على نظافة الكود وسهولة قراءته: تجنّب عبارات if المتداخلة واستخدم التعليقات التوضيحية (annotations). بفضل Spring AOP يتم اختيار التنفيذ المستهدف في وقت التشغيل، وبالتالي يكون مدفوعاً بحالات الميزات.
مراقبة الميزات: عند كل تنفيذ لميزة، يقوم ff4j بتقييم المسند، وبالتالي يمكن جمع وتسجيل الأحداث والمقاييس لحساب لوحات معلومات (dashboards) جميلة أو رسم منحنيات لاستخدام الميزات عبر الوقت.
سجل التدقيق (Audit Trail): يمكن تتبع كل إجراء (إنشاء، تحديث، حذف، تبديل) وحفظه في سجل التدقيق لاستكشاف الأخطاء وإصلاحها. مع إدارة الصلاحيات (AuthorizationManager) يمكن تحديد المستخدمين.
وحدة التحكم على الويب: أدر FF4j (بما في ذلك الميزات والخصائص) عبر واجهة الويب. مُعبّأة كـ servlet داخل المكتبة، ستقوم بعرضها في تطبيقات الواجهة الخلفية (backend). تتوفر ما يقارب 10 لغات.
مجموعة واسعة من قواعد البيانات: ما نفخر به: ندعم أكثر من 20 تقنية لقواعد البيانات لتخزين الميزات والخصائص والأحداث. نفس نموذج العمل مع تطبيقات متعددة. بفضل نقاط التوسعة (extension points) من السهل بناء التطبيق الخاص بك.
Spring Boot Starter استورد تبعية ff4j-spring-boot-starter في خدماتك المصغرة (microservices) لتحصل على وحدة التحكم على الويب و REST API تعمل فوراً. (لتُستخدم لتطبيقات الواجهة الخلفية. متوافق الآن مع Spring Boot 2x: 👉 SAMPLES
REST Api شغّل FF4j عبر WEB API. هذه هي الطريقة المثلى لاستخدام ff4j مع لغات أخرى، خاصة واجهات JavaScript الأمامية. (يمكنك أيضاً الاستفادة من FeatureStoreHttp لتجنب اتصال الخدمات المصغرة مباشرة بقاعدة البيانات.)
الخصائص (CMDB) خزّن ليس فقط حالات الميزات ولكن أيضاً أي قيمة خاصية.. أنشئ خصائص يمكنك تغييرها في وقت التشغيل. وهي مدمجة مع معظم الأطر المستخدمة مثل Spring و Archaius و commons-config أو Consul.
ذاكرة التخزين المؤقت (الموزعة) قد يضع تقييم المسندات ضغطاً على قاعدة البيانات (نسبة وصول عالية). يوفر ff4j مخازن مؤقتة محلية وموزعة للمساعدة. (تعديل الميزة يُفرغ ذاكرة التخزين المؤقت أيضاً). بالاستفادة من JSR-107، يدعم معظم حلول التخزين المؤقت.
يمكن العثور على مزيد من المعلومات على ff4j.org أو الوثائق المرجعية في الويكي.
الصفحة الرئيسية
الميزات
المراقبة
هذا المشروع موجود بفضل كل الأشخاص الذين يساهمون فيه. [ساهم].
شكراً لجميع داعمينا! 🙏 [كن داعماً]
ادعم هذا المشروع بأن تصبح راعياً. سيظهر شعارك هنا مع رابط إلى موقعك الإلكتروني. [كن راعياً]
واجهة سطر الأوامر لأتمتة الأمور أو لأن منافذ الويب قد تكون محجوبة (أنت تعلم، الإنتاج...) يمكنك العمل عبر SSH باستخدام واجهة سطر الأوامر (CLI) الخاصة بنا، الـ Shell #devOps. ستتفاعل مباشرة مع وحدات التخزين.
JMX و MBeans يمكن تنفيذ مجموعة محدودة من العمليات عبر JMX. يعرض ff4j بعض MBeans لقراءة المقاييس أو تبديل الميزات من أدوات خارجية (Nagios...). ليست كل التطبيقات مبنية على الويب (الدفعات (batches)، الصدفات (shell)، المستقلة (standalone)...)