سؤال

نحن نحاول تحديد كيفية تنفيذ إطار عمل بسيط للمكونات الإضافية لخدمة نقوم بتنفيذها والتي تتيح "توصيل" أنواع مختلفة من الآلات الحاسبة.

بعد قراءة أ رقم من المشاركات حول أطر عمل Java plugin، يبدو أن الخيارات الأكثر شيوعًا هي:

يبدو أن OSGI أكثر مما نحتاجه.

"التدحرج الخاص بك" أمر جيد ولكن سيكون من الجيد إعادة استخدام مكتبة مشتركة.

لذلك وصلنا إلى JPF وJSPF.لا يبدو أن JPF قيد التطوير النشط بعد الآن.

يبدو JSPF بسيطًا جدًا وهو كل ما نحتاجه حقًا.ومع ذلك لم أسمع الكثير عن ذلك.لقد رأيت واحدة فقط بريد على StackOverflow حول هذا الموضوع.هل لدى أي شخص آخر أي خبرة مع JSPF؟أو أي تعليقات أخرى على اختيار التصميم هذا؟


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

هل كانت مفيدة؟

المحلول

إذا كنت تخطط للحصول على "نقاط تمديد" واحدة فقط (أو عدد قليل فقط) غير معقدة للغاية، فربما يكون SPI محددًا جيدًا وجزءًا من التكوين كافيًا.لا حاجة لاستخدام إطار البرنامج المساعد.

أعني بجزء من التكوين بعض الآليات للعثور على المكونات الإضافية الخاصة بك.على سبيل المثال شيء من هذا القبيل META-INF/services/ أو ببساطة قم بإدراج المكونات الإضافية الخاصة بك في ملف التكوين.

مزيد من التفاصيل (عند الطلب):

سبي = واجهة مقدم الخدمة, ، "المعادل لواجهة برمجة التطبيقات (API) من جانب المُنفذ".لمعرفة المزيد حاول البحث عن الفرق بين API وSPI.ومع ذلك، في هذا السياق، يعد هذا مجرد مصطلح خيالي للواجهة التي يتم تنفيذها بواسطة المكونات الإضافية (على سبيل المثال.يحدد العقد الخاص بالمكونات الإضافية الخاصة بك).

مقالة جميلة وقصيرة"إنشاء واجهة مزود الخدمة" بقلم إيثان نيكولاس يصف كيفية إنشاء SPI الخاص بك بطريقة مماثلة كما يتم في عدة أجزاء من منصة Java نفسها.

META-INF/services/ يمكن اعتباره نهجًا أكثر عمومية لإنشاء SPIs.يمكن العثور على مزيد من المعلومات في القسم المعني من مواصفات ملف JAR.

نصائح أخرى

(تنصل:أنا مؤلف JSPF، لذا من الأفضل أن تأخذ تعليقي بحذر؛-)

السبب الرئيسي الذي جعلني أبدأ مع JSPF هو أنني واجهت نفس المشكلة التي تواجهها الآن:كنت أبحث عن حل بسيط لجعل مشروع أطروحتي 1) قابلاً للتوسيع و2) منحه بنية تعليمات برمجية واضحة إلى حد ما.

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

نحن نحاول تحديد كيفية تنفيذ إطار مكون إضافي بسيط للخدمة التي ننفذها والتي تتيح أنواعًا مختلفة من الآلات الحاسبة أن تكون "موصوفة".

أعتقد أنه يمكنك إعطاء JSPF فرصة ومعرفة مدى وصولك خلال ساعة أو ساعتين.

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

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

لذا، للإجابة على سؤالك بإيجاز (وبطريقة متحيزة بالتأكيد)، سأستخدم

OSGi للمشاريع والفرق

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

جي بي إف للمشاريع والفرق

  • متوسطة الحجم (؟، بصراحة لست متأكدًا من حجم المشروع/الفريق الذي يستهدفونه)
  • والتي تحتاج إلى تسهيلات أكثر تنظيمًا لتنظيم التعليمات البرمجية الخاصة بها، مثل تكوينات XML وإدارة دورة حياة المكونات الإضافية التفصيلية والمكونات الإضافية القابلة للتوسيع ...

JSPF للمشاريع والفرق

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

أتمنى أن تجد إطار عمل البرنامج الإضافي الأكثر ملاءمة للسيناريو الخاص بك.ومهما حاولت، سأكون سعيدًا لسماع نتائجك.

إذا كنت بحاجة إلى حل بسيط حقًا، فجربه جين البرنامج المساعد.إنه إطار عمل إضافي بسيط لـ Java وPHP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top