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

إطلاق العنان لومبوك: رفع كفاءة جافا مع Getters، Setters، البنائين، البنائين، وأكثر من ذلك

تم النشر بتاريخ 2024-07-30
تصفح:242

Lombok Unleashed: Elevating Java Efficiency with Getters, Setters, Constructors, Builders, and More

مقدمة لمشروع لومبوك

Project Lombok هي مكتبة Java شائعة تهدف إلى تقليل التعليمات البرمجية النمطية وتعزيز إنتاجية المبرمجين عن طريق توفير الكثير من الوقت وطاقتهم من خلال توفير التعليقات التوضيحية لإنشاء تعليمات برمجية Java شائعة تلقائيًا أثناء وقت الترجمة

ما هو مشروع لومبوك؟

يعالج مشروع Lombok الإسهاب في لغة Java من خلال تقديم التعليقات التوضيحية التي تلغي الحاجة إلى كتابة بنيات التعليمات البرمجية المتكررة يدويًا مثل أساليب getters وsetters وconstructors وequal وhashCode وtoString. من خلال إضافة تعليقات توضيحية إلى الحقول أو الفئات باستخدام تعليقات لومبوك التوضيحية، يمكن للمبرمجين توجيه المترجم لإنشاء هذه الأساليب تلقائيًا، مما يقلل من كمية التعليمات البرمجية المعيارية ويجعل فئات Java أكثر إحكاما وقابلية للقراءة.

لماذا نستخدم مشروع لومبوك؟

يوفر استخدام Project Lombok في Java العديد من الفوائد المقنعة التي تساهم في تحسين الإنتاجية وجودة التعليمات البرمجية وقابلية الصيانة.
فيما يلي بعض الأسباب لاختيار مشروع لومبوك.
إنه يقلل من "الرمز المعياري".
كما أنه يعمل على تحسين إمكانية إعادة استخدام الرموز وقابليتها للقراءة.
إنه سهل التنفيذ للغاية وليس به أي تعقيد.
يتكامل بسهولة مع "IDEs".

كيفية تنفيذ Lombok في Java في مشروع Maven

تعتمد معظم مشاريعنا على Maven. لذا، علينا فقط إضافة تبعيات "Project Lombok" إلى ملف "Pom.xml" الموجود في مشروعنا.

انتقل إلى مستودع maven وانسخ مستودع Lombok Maven من هناك، وأضف أحدث تبعيات lombok في "Pom.xml" الخاص بك واحفظه، ثم قم بتحديث المشروع.

Getters، ميزة Setters لمشروع Lombok في Java

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

دعونا نرى الكود يفهم هذا النهج من خلال إنشاء getter وSetter بمساعدة "كائنات البيانات" و"مصنع البيانات":

كائن البيانات بدون لومبوك

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

لذا، بدلاً من ذلك، نفضل استخدام نمط لومبوك. إليك كيفية تنفيذه في Java :

ميزات منشئ مشروع لومبوك في جافا

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

يعمل Lombok على تبسيط هذه العملية باستخدام التعليقات التوضيحية @NoArgsConstructor و@AllArgsConstructor و@RequiredArgsConstructor.

البناة بدون لومبوك

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

ميزات وخصائص لومبوك المختلفة

  1. إنشاء سلسلة
  • في Java، toString() هي طريقة محددة في فئة java.lang.Object، والتي تخدم غرض إرجاع تمثيل سلسلة لكائن ما. يتم توريث أسلوب toString() من قبل جميع الفئات في Java، ويؤدي تطبيقه الافتراضي في فئة الكائن إلى إرجاع سلسلة تحتوي على اسم الفئة متبوعًا بالرمز "at" (@) والتمثيل الست عشري لرمز تجزئة الكائن.
  • ومع ذلك، قد لا يكون التنفيذ الافتراضي لـ toString() المقدم بواسطة Object دائمًا ذا معنى أو مفيدًا لفئات معينة. لذلك، من الشائع للمطورين تجاوز طريقة toString() في فئاتهم الخاصة لتوفير تمثيل سلسلة مخصص يصف حالة الكائن أو خصائصه بشكل أفضل.
  • وفقًا لمثالنا، قد تتجاوز فئة ملف التعريف toString() لإرجاع سلسلة تحتوي على الاسم الأول واسم العائلة والتعيين ومعلومات العمر. يسمح تجاوز toString() بطباعة معلومات الكائن أو تسجيلها بسهولة بتنسيق يمكن قراءته بواسطة الإنسان، وهو ما يمكن أن يكون مفيدًا لتصحيح الأخطاء أو التسجيل أو عرض المعلومات للمستخدمين.
  • بدون استخدام التعليقات التوضيحية لـ ToString Lombok، يتعين علينا تنفيذ طريقة toString() يدويًا داخل فئة ملف التعريف. نقوم بربط حقول الاسم الأول واسم العائلة والتعيين والعمر لإنشاء تمثيل السلسلة المرغوب فيه. يحقق هذا التنفيذ اليدوي نفس نتيجة التعليق التوضيحي @ToString الخاص بـ Lombok.

بدون استخدام ميزة ToString Annotations

  • يُنشئ التعليق التوضيحي @ToString طريقة toString() للفئة، مما يوفر تمثيل سلسلة لحقولها. لا حاجة لكتابة واحدة بأنفسنا والمحافظة عليها بينما نقوم بإثراء نموذج البيانات لدينا.
  • باستخدام هذا التعليق التوضيحي، سيؤدي استدعاء toString() على مثيل ملف التعريف إلى إرجاع سلسلة تحتوي على قيم حقولها.
  • يمكن أن تكون التعليقات التوضيحية @Exclude مفيدة لكل التعليقات التوضيحية المختلفة مثل Getters وSetters وToString وEqualAndHashCode وما إلى ذلك. دعنا نفهم ذلك جنبًا إلى جنب مع مثال التعليقات التوضيحية @ToString.
  • من خلال إضافة تعليق توضيحي إلى حقل التعيين باستخدام @ToString(exclude = {"designation"})
  • يستبعد Lombok تضمينه في طريقة toString () التي تم إنشاؤها بواسطةToString. يمكن أن يكون هذا مفيدًا إذا كنت تريد تجنب عرض حقول معينة في تمثيل السلسلة لكائن ما.

2. إنشاء EqualAndHashCode

  • في Java، يساوي () و hashCode () طريقتان شائعتان الاستخدام لتنفيذ المساواة في الكائنات وإنشاء كود التجزئة، على التوالي.
  • طريقة يساوي () : يتم استخدام طريقة يساوي () لمقارنة كائنين للمساواة. افتراضيًا، تقوم طريقة يساوي () التي توفرها فئة الكائن بمقارنة مراجع الكائنات، مما يعني أنها تُرجع صحيحًا فقط إذا كان الكائنان اللذان تتم مقارنتهما هما نفس المثيل في الذاكرة. ومع ذلك، غالبًا ما يكون من الضروري تجاوز طريقة يساوي () في الفئات المخصصة لتحديد فكرة ذات معنى للمساواة بناءً على سمات الكائن.
  • طريقة hashCode(): يتم استخدام طريقة hashCode() لإنشاء قيمة رمز التجزئة لكائن ما. رمز التجزئة هو قيمة عددية تمثل حالة الكائن ويتم استخدامه عادةً في بنيات البيانات المستندة إلى التجزئة مثل جداول التجزئة. تعد طريقة hashCode() مهمة لأنها تسمح بتخزين الكائنات واسترجاعها بكفاءة في مجموعات قائمة على التجزئة.
  • في مثالنا، قمنا يدويًا بتنفيذ وتجاوز طريقة يساوي () لمقارنة حقول كائنين في الملف الشخصي لتحقيق المساواة، وطريقة hashCode () لإنشاء رمز تجزئة بناءً على الحقول.
  • نستخدم طريقة Objects.equals() من فئة java.util.Objects لمقارنة حقول المساواة، وطريقة Objects.hash() لإنشاء رمز التجزئة.

بدون استخدام ميزة التعليقات التوضيحية EqualAndHashCode

  • يُنشئ التعليق التوضيحي @EqualsAndHashCode أساليب يساوي () و hashCode () بناءً على حقول الفصل.
  • باستخدام هذا التعليق التوضيحي، يقوم Lombok بإنشاء أساليب يساوي () و hashCode () باستخدام جميع حقول الفئة.
  • وهذا يلغي الحاجة إلى التنفيذ اليدوي لهذه الأساليب، مما يقلل من التعليمات البرمجية المعيارية ويحسن إمكانية صيانة التعليمات البرمجية.

3. التعليقات التوضيحية للبيانات
بدون استخدام التعليقات التوضيحية @data، يتعين علينا تنفيذ ميزات الحروف والمحددات والمنشئين يدويًا في التعليمات البرمجية الخاصة بنا.

  • بدون استخدام خاصية البيانات التوضيحية

  • يعد التعليق التوضيحيdata اختصارًا مناسبًا يجمع @Getter و@setter و@NoArgsConstructor و@AllArgsConstructor و@RequiredArgsConstructor و@ToString و@EqualsAndHashCode والعديد من التعليقات التوضيحية الأخرى.

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

  1. نمط البناء
  • بالعودة إلى مثال الملف الشخصي الخاص بنا، يتطلب إنشاء مثيل جديد استخدام مُنشئ يحتوي على عدد كبير من الوسائط الأربعة، وهي مهمة تصبح غير عملية عندما نقدم سمات إضافية للفئة.
  • لحسن الحظ، توفر Lombok حلاً قويًا من خلال ميزة @builder الخاصة بها، والتي تسهل استخدام Builder Pattern لإنشاء مثيلات جديدة. دعونا ندمج هذه الميزة في فئة الملف الشخصي لدينا.

الحزمة org.example.dataobjects;

استيراد لومبوك.*;

@Getter
@setter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@ToString(exclude = {"designation"})
@EqualsAndHashCode
@باني
@بيانات
ملف تعريف الفئة العامة {
الاسم الأول لسلسلة خاصة؛
اسم العائلة لسلسلة خاصة؛
تعيين سلسلة خاصة؛
عمر خاص؛

الفراغ الثابت العام (String[] args) {

// إنشاء مثيل لملف التعريف باستخدام المنشئ
الملف الشخصي = Profile.builder()
.الاسم الأول("الجزء")
.lastName("كاثروتيا")
.designation("مهندس أتمتة ضمان الجودة")
.age(23)
.يبني()؛

ديلومبوك

  • Delombok هي أداة مقدمة من Project Lombok تعمل على عكس تأثيرات تعليقات Lombok التوضيحية، وبشكل أساسي "delombokifying" التعليمات البرمجية الخاصة بك. يسمح لك بتحويل كود مصدر Java الذي يحتوي على تعليقات Lombok التوضيحية إلى كود Java عادي عن طريق توسيع التعليقات التوضيحية واستبدالها بالكود المعياري المقابل الذي سيتم إنشاؤه.
  • الغرض الأساسي من Delombok هو تسهيل التوافق وقابلية التشغيل البيني مع البيئات أو الأدوات التي لا تدعم تعليقات Lombok التوضيحية مباشرة. على سبيل المثال، إذا كنت بحاجة إلى مشاركة التعليمات البرمجية الخاصة بك مع المطورين الذين لم يقوموا بتثبيت Lombok في بيئة التطوير الخاصة بهم، أو إذا كنت تريد تحليل التعليمات البرمجية المشروحة بـ Lombok أو إعادة تصميمها باستخدام أدوات لا تفهم تعليقات Lombok التوضيحية، فيمكنك استخدام Delombok للتحويل الكود في نموذج مفهوم وقابل للاستخدام في تلك السياقات.
  • يمكن استدعاء Delombok عبر سطر الأوامر أو دمجه في أدوات البناء مثل Maven أو Gradle. عند تشغيل Delombok على التعليمات البرمجية المصدر الخاصة بك، فإنه يعالج ملفات Java، ويوسع تعليقات Lombok التوضيحية، وينشئ ملفات Java جديدة بدون أي تعليقات توضيحية Lombok. الكود الناتج يعادل وظيفيًا الكود الأصلي ولكن دون أي اعتماد على لومبوك.
  • بشكل عام، Delombok هي أداة مفيدة مقدمة من Project Lombok تعمل على تحسين قابلية التشغيل البيني وقابلية الصيانة لقواعد التعليمات البرمجية باستخدام تعليقات Lombok التوضيحية، مما يسمح للمطورين بالاستفادة من فوائد Lombok مع الاستمرار في ضمان التوافق مع مجموعة واسعة من بيئات وأدوات التطوير.
  • ]

خاتمة

بينما يسلط هذا المنشور الضوء على الميزات التي وجدتها أكثر فائدة، يقدم Lombok عددًا كبيرًا من الوظائف والتخصيصات الإضافية.
تعد وثائق لومبوك موردا لا يقدر بثمن، حيث تقدم تفسيرات وأمثلة متعمقة لكل تعليق توضيحي. إذا كنت مهتمًا بهذا المنشور، فأنا أحثك ​​على التعمق في وثائق لومبوك للكشف عن المزيد من الاحتمالات.
علاوة على ذلك، يقدم موقع المشروع أدلة شاملة حول دمج لومبوك عبر بيئات البرمجة المختلفة. سواء كنت تستخدم Eclipse أو NetBeans أو IntelliJ أو غيرها، كن مطمئنًا إلى أن Lombok يتكامل بسلاسة مع سير عملك. باعتباري شخصًا يقوم بالتبديل بشكل متكرر بين بيئات التطوير المتكاملة (IDEs)، يمكنني أن أشهد على تنوع وموثوقية لومبوك عبر جميع الأنظمة الأساسية.
بشكل عام، يقدم Project Lombok مجموعة شاملة من الميزات التي تعمل على تبسيط تطوير Java وتقليل إسهاب التعليمات البرمجية وتعزيز أفضل الممارسات.
يقدم Project Lombok مجموعة شاملة من الميزات التي تعمل على تبسيط اختبار Java وتقليل إسهاب التعليمات البرمجية وتعزيز أفضل الممارسات. من خلال دمج بناة لومبوك وبناة لومبوك، يمكن للمختبرين تبسيط التعليمات البرمجية الخاصة بهم وتحسين إمكانية الصيانة.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/jignect_technologies/lombok-unleashed-elevating-java-efficiency-with-getters-setters-constructors-builders-and-more-mfm?1 إذا كان هناك أي انتهاك، من فضلك اتصل بـ [email protected]
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3