"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تمديد Quarkus: متى وكيف تكتب ملحقاتك الخاصة

تمديد Quarkus: متى وكيف تكتب ملحقاتك الخاصة

تم النشر بتاريخ 2024-11-16
تصفح:386

Extending Quarkus: When and How to Write Your Own Extensions

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

متى يتم إنشاء ملحق Quarkus

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

  2. تحسين الأداء: تم تصميم امتدادات Quarkus لتتوافق مع تجميع Quarkus الأصلي، مما يؤدي إلى بدء تشغيل التطبيقات بسرعة ولها الحد الأدنى من آثار الذاكرة. من خلال إنشاء ملحق، يمكنك الاستفادة من قدرات تحسين وقت البناء الخاصة بـ Quarkus لفحص التبعيات وإنشاء التكوين مبكرًا، وبالتالي تجنب تأخير بدء التشغيل.

  3. تحسين تجربة المطور: يمكن أن تعمل الإضافات على تحسين تجربة المطور بشكل كبير. إنها تتيح إعادة التحميل المباشر، وامتدادات واجهة سطر الأوامر (CLI)، والقوالب، والمزيد، مما يؤدي إلى تبسيط عملية التطوير. إذا كنت ترغب في توفير بيئة تطوير سلسة وفعالة لفريقك، فيمكن أن تساعد الإضافات في تحقيق هذا الهدف.

  4. تقوية واجهة برمجة التطبيقات: إذا كنت تقوم بإنشاء واجهات برمجة تطبيقات أو مكتبات مخصصة للاستخدام من قبل مطوري Quarkus الآخرين، فإن الامتدادات توفر طريقة ممتازة لتقوية واجهات برمجة التطبيقات الخاصة بك والتأكد من أنها تعمل بسلاسة داخل نظام Quarkus البيئي .

ومع ذلك، قد لا تكون الإضافات دائمًا هي الطريقة الأفضل. بالنسبة للاحتياجات الأبسط، مثل مشاركة التعليمات البرمجية المساعدة ومنطق اللصق بين المكونات، قد يكون ملف JAR الأساسي كافيًا دون تحمل تكاليف إنشاء ملحق. إذا كان التكامل الخاص بك خاصًا بالتطبيق ومن غير المحتمل إعادة استخدامه في مكان آخر، فقد يكون JAR الأساسي حلاً أكثر وضوحًا. علاوة على ذلك، إذا كنت بحاجة إلى التحكم الكامل في الإصدارات التابعة ولا تريد الالتزام بـ BOM (قائمة المواد) الخاصة بـ Quarkus لإدارة التبعية، فقد يكون JAR خيارًا أفضل. أخيرًا، إذا كانت التعليمات البرمجية الخاصة بك بحاجة إلى العمل عبر أطر عمل JVM متعددة، مثل Spring وMicronaut، فقد يكون تجنب الاقتران المحكم بـ Quarkus هو الأفضل.

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

يعد أسلوب Quarkus الفريد في نقل العمل لبناء الوقت، بدلاً من وقت التشغيل، هو جوهر أوقات بدء التشغيل السريعة وبصمة الذاكرة المنخفضة. وتمتد هذه الفلسفة إلى امتدادات Quarkus، التي يمكنها الاستفادة من تحسينات وقت البناء هذه. حتى لو لم تكن مهتمًا في المقام الأول بأوقات التشغيل السريعة، فإن فوائد إنشاء الملحقات الخاصة بك تمتد إلى تبسيط التكوينات، وتوسيع Quarkus CLI، والتكامل مع وضع Dev الخاص بـ Quarkus.

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

إنشاء امتداد Quarkus

عندما تقرر أن إنشاء امتداد Quarkus هو النهج الصحيح، فمن الضروري فهم المكونات الهيكلية للامتداد:

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

تشريح امتداد الكواركوس

فكر في السيناريو الذي تريد فيه إنشاء ملحق تخزين مؤقت مخصص لـ Quarkus. سيسمح هذا الامتداد للمطورين بدمج وظائف التخزين المؤقت بسهولة في تطبيقات Quarkus الخاصة بهم.

  1. قسم وقت التشغيل:

    • في هذا القسم، يمكنك تنفيذ وظيفة التخزين المؤقت الأساسية باستخدام كود Java. قد يتضمن ذلك طرقًا للتخزين المؤقت للبيانات، واسترداد البيانات المخزنة مؤقتًا، وإدارة انتهاء صلاحية ذاكرة التخزين المؤقت.
    • على سبيل المثال، قد يكون لديك فئة CustomCacheService مع أساليب مثل put(key, value)، وget(key)، وevect(key) للتعامل مع عمليات التخزين المؤقت.
  2. قسم النشر:

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

    • يوفر ملف الواصف (custom-cache-extension.yaml) بيانات وصفية حول ملحقك. ويتضمن معلومات مثل اسم الامتداد وإصداره وتوافقه مع Quarkus ومعلمات التكوين.
    • على سبيل المثال، قد يحدد الواصف الخاص بك أن الامتداد يسمى "custom-cache-extension"، وهو متوافق مع Quarkus 2.0، ويتطلب معلمة تكوين مهلة ذاكرة التخزين المؤقت.
  4. التوثيق:

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

باتباع هذه البنية، يصبح ملحق التخزين المؤقت المخصص الخاص بك أداة قيمة لمطوري Quarkus. يمكنهم بسهولة دمج التخزين المؤقت في تطبيقاتهم، وتحسين الأداء وتحسين استخدام الموارد.

وحدة وقت التشغيل:

class CustomCacheService {

    // Core caching functionality using Java code
    public void put(String key, Object value) {
      // Cache data implementation
    }

    public Object get(String key) {
      // Retrieve cached data implementation
    }

    public void evict(String key) {
      // Evict cached data implementation
    }
}

وحدة النشر:

class CustomCacheProcessor {
    @BuildStep
    FeatureBuildItem feature() {
        // This declares the custom cache extension as a feature
        return new FeatureBuildItem("custom-cache");
    }
}

ملف الواصف: custom-cache-extension.yaml

extension:
name: custom-cache-extension
metadata:
    short-name: "resteasy-reactive"
    keywords:
    - "jaxrs"
    - "web"
    - "rest"
    categories:
    - "web"
    - "reactive"
    status: "stable"
    guide: "https://quarkus.io/guides/resteasy-reactive"

خاتمة

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

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/yanev/extending-quarkus-when-and-how-to-write-your-own-extensions-1a0k?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3