سؤال

يفعل مشروع لومبوك تقديم أي فائدة مقارنة بقوالب التعليمات البرمجية / توليد الرمز في Eclipse؟ هل هناك أي جوانب سلبية (بصرف النظر عن بما في ذلك .jar)؟

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

المحلول

تتمثل إحدى ميزة Lombok في أنه بمجرد شرح فصل دراسي مع تعليق @Data ، لا تحتاج أبدًا إلى تجديد الكود عند إجراء تغييرات. على سبيل المثال ، إذا قمت بإضافة حقل جديد ، فسيقوم Data تلقائيًا بتضمين هذا الحقل في أساليب المساواة ، و Hashcode و ToString. ستحتاج إلى إجراء هذا التغيير يدويًا عند استخدام أساليب Eclipse التي تم إنشاؤها. في بعض الوقت ، قد تفضل التحكم اليدوي ولكن بالنسبة لمعظم الحالات ، لا أتوقع.

نصائح أخرى

ميزة Lombok هي أن الكود ليس موجودًا بالفعل - أي فصول أكثر قابلية للقراءة ولا تشوش.

مزايا:

  • سهل الاستخدام للغاية
  • الفصول الدراسية أكثر نظافة ("لا يوجد رمز غلاية") ، وخاصة "الفصول الداخلية التي تشبه البنية" تتقلص إلى الحد الأدنى: العارية:

    @Data private class AttrValue { private String attribute; private MyType value; }

    سيؤدي ذلك إلى إنشاء كل من getters و setters ، و tostring () ، والتجزئة الصحيحة () / equals () بما في ذلك كلا المتغيرين. البديل مع @Value يخلق بنية غير قابلة للتغيير (لا يوجد مستودعات ، جميع الحقول النهائية).

  • لا حاجة لإنشاء/إزالة التعليمات البرمجية عند تغيير الحقول (getters ، المستقدون ، tostring ، التجزئة ، متساوية)
  • لا يوجد تداخل مع الأساليب المشفرة يدويًا: فقط أضفك تملك جهازًا محددًا إلى الفصل عند الحاجة. يتخطى لومبوك هذا ويولد كل شيء آخر

سلبيات:

  • لا يوجد اسم إعادة إنشاء ، حتى الآن: إعادة تسمية value أعلاه لن (بعد) إعادة تسمية getValue() و setValue()
  • قد يبطئ Ecplise قليلاً
  • toString الإخراج ليس لطيفًا مثل ، على سبيل المثال ، TostringBuilder من Apache Commons

قلة قليلة تتبادر إلى الذهن:

  • يعتمد على التعليق التوضيحي ، لذلك لا يوجد شيء جيد للمشروع القديم الذي لا يزال في ما قبل java5 (Delombok استطيع المساعدة). في الواقع ، يتطلب استخدام برنامج التحويل البرمجي Javac V1.6.
  • لا يزال لديه قيود بخصوص العديد من البنائين

لا ينبغي التغاضي عن مشكلة التبعية ، لكنك استبعدتها من سؤالك.

تقدم Eclipse EMF بعض الميزات التي لا تدعمها Lombock بعد:

  • ميكانيكي الإخطار القويون للحصول على إبلاغ بالتغييرات في مثيلاتك
  • API عام دون انعكاس Java. الوصول وتعديل الحالات دون إشارة قوية إلى النوع
  • Command Und API التحرير
  • المراجع المتقاطعة بين النماذج: قم بإنشاء وتحميل أشجار النماذج و EMF يتولى التحميل عن طريق إنشاء وكيل للمرجع المتقاطع. هذا يحفظ الذاكرة وزيادة الأداء في أشجار المجال الضخمة
  • وأكثر بكثير...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top