Groovy دروس البرنامج النصي للمبتدئين
⚡ ملخص ذكي
Groovy لغة البرمجة النصية هي لغة كائنية التوجه لـ Java منصة تُترجم إلى بايت كود JVM. وهي تضيف أنواعًا ديناميكيةping، والإغلاقات، والصيغة المختصرة لـ Javaوهو يمد الطاقة Jenkins خطوط الأنابيب ، Gradle يبني، و SoapUI تأكيدات.

ما هو Groovy البرنامج النصي؟
Apache Groovy هو برنامج موجه للكائنات، Java لغة برمجة متوافقة مع بناء الجملة مصممة لـ Java المنصة. تتميز هذه اللغة الديناميكية بالعديد من الخصائص المشابهة لـ Pythonروبي، سمول توك، وبيرل. Groovy يتم تجميع الكود المصدري في Java رمز البايت، لذا فهو يعمل على أي منصة حيث يكون Java تم تثبيت الجهاز الظاهري. Groovy كما أنه يقوم بالكثير من العمل خلف الكواليس، مما يجعله يبدو أكثر مرونة وديناميكية من مجرد Java.
A Groovy سيناريو هو ببساطة .groovy ملف يحتوي على عبارات Groovy يتم تغليفها في فئة مُولّدة قبل تشغيلها. لهذا السبب يمكنك تنفيذ ملف من سطر واحد دون كتابة فئة أو main الأسلوب. Groovy وبالتالي يمكن استخدامها كلغة برمجة نصية لـ Java المنصة مع الاستمرار في توفير إمكانيات المؤسسات Javaيضيف هذا البرنامج ميزات إنتاجية مثل دعم لغات البرمجة الخاصة بالمجال (DSL)، والإغلاقات، وأنواع البيانات الديناميكية الاختيارية.pingعلى عكس بعض اللغات الأخرى، فقد صُممت لتكون مصاحبة لـ Java، وليس بديلاً عنه.
💡 نصيحة: Groovy 5.0 هو الإصدار المستقر الحالي ويستهدف JDK 11 وما فوق. Groovy لا يزال الإصدار 4.0 متاحًا لمشاريع JDK 8، و Groovy لا يزال الإصدار 6.0 في مرحلة تجريبية (ألفا) لـ JDK 17. تحقق دائمًا من جدول متطلبات النظام على صفحة التنزيل الرسمية قبل اختيار الإصدار.
لماذا Groovy?
إليك أهم الأسباب التي تدفعك لاستخدام وتعلم Groovy:
- Groovy هي لغة مرنة وديناميكية.
- يتكامل بسلاسة مع جميع الأنظمة الحالية Java الكائنات والمكتبات.
- يبدو الأمر سهلاً وطبيعياً لـ Java المطورين.
- الكود أكثر إيجازًا وأكثر دلالة من الكود المكافئ Java رمز.
- يمكنك استخدامه بالقدر الذي تريده في الداخل Java التطبيقات.
- يعمل على المعيار Java آلة افتراضيةلذلك لا يلزم وجود وقت تشغيل منفصل.
Groovy تاريخنا
- 2003: بدأه جيمس سtracهان وبوب ماكWhirثالثا.
- 2004: تم تقديمه إلى Java عملية المجتمع كـ JSR 241، والتي تم سحبها لاحقًا.
- 2005: أُعيد إلى tracكتاب من تأليف جيريمي راينر وغيوم لافورج.
- 2007: Groovy 1.0 صدر.
- 2012: Groovy 2.0 صدر.
- 2014: Groovy تم إصدار الإصدار 2.3 مع دعم رسمي لـ JDK 8.
- 2015: Groovy أصبح مشروعًا رفيع المستوى في مؤسسة أباتشي للبرمجيات Foundation.
- 2022: Groovy تم إصدار الإصدار 4.0، مع نقل إحداثيات Maven إلى
org.apache.groovy. - 2025: Groovy تم إصدار الإصدار 5.0 لـ JDK 11 وما فوق.
ميزات Groovy
- القوائم، والخرائط، والنطاقات، والصيغ النمطية.
- الأساليب المتعددة (إرسال الأساليب في وقت التشغيل) والبرمجة الوصفية.
- Groovy عادةً ما يتم تخزين الفئات والبرامج النصية في
.groovyالملفات. - تحتوي البرامج النصية Groovy البيانات دون أي إعلان فئة.
- يمكن أن تحتوي البرامج النصية أيضًا على تعريفات أسلوب خارج تعريفات الفئة.
- Groovy يمكن تجميع الكود ودمجه بالكامل مع نظام تقليدي Java التطبيق.
- دعم على مستوى اللغة للخرائط والقوائم والتعبيرات النمطية.
- دعم الإغلاقات، والأنواع الديناميكيةping، وبروتوكول الكائن الفائق.
- دعم لكل من النوع الثابت والديناميكيpingبالإضافة إلى إرهاق المشغل.
- التحقق من النوع الثابت الاختياري من خلال
@TypeCheckedو@CompileStaticشروحه.
كيفية تثبيت Groovy
الخطوة 1) تأكد لديك Java تثبيت.
الخطوة 2) انتقل إلى البرنامج المساعد في التأليف https://groovy.apache.org/download.html وانقر فوق Windows رابط التثبيت.
ملحوظة: يمكنك أيضًا التثبيت Groovy من ملف Zip الثنائي، عبر مدير حزم مثل SDKMAN! أو Homebrew أو Scoop أو Chocolatey، أو كملحق لـ Java IDE. في هذا Groovy سنلتزم بالإرشادات التالية: Windows المثبت.
الخطوة 3) قم بتشغيل برنامج التثبيت الذي تم تنزيله. حدد اللغة وانقر فوق "موافق".
الخطوة 4) في شاشة الترحيب، انقر فوق التالي.
الخطوة 5) أوافق على شروط الترخيص.
الخطوة 6) حدد المكونات التي تريد تثبيتها وانقر فوق التالي.
الخطوة 7) حدد مجلد التثبيت وانقر فوق التالي.
الخطوة 8) اختر مجلد قائمة ابدأ وانقر على التالي.
الخطوة 9) بعد اكتمال التثبيت، اترك المسارات على إعداداتها الافتراضية وانقر على "التالي".
الخطوة 10) قم بتأكيد خيارات ربط الملفات وانقر على التالي.
الخطوة 11) في قائمة ابدأ، ابحث عن Groovy وحدة التحكم لتأكيد التثبيت.
⚠️ تحذير: استخدم Windows برنامج التثبيت هو منتج ساهم فيه المجتمع، وليس إصدارًا رسميًا من Apache. إذا كانت مؤسستك تتطلب تنزيلات Apache الموقعة، فاستخدم توزيعة Zip الثنائية وتحقق من صحتها. .asc التوقيع و .sha256 بدلاً من ذلك، استخدم المجموع الاختباري.
Groovy مرحبا العالم مثال
لنفترض أنك تريد طباعة السلسلة البسيطة "Hello World" في Javaسيبدو الكود على هذا النحو.
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
الإخراج:
Hello World
الكود أعلاه صالح في كليهما Java و Groovy، لان Groovy يقبل تقريبًا جميع Java بناء الجملة. الميزة مع Groovy يكمن الأمر في أنه يمكنك الاستغناء عن تعريف الفئة، والطريقة العامة، واستدعاء الطباعة المؤهل بالكامل، وتحقيق نفس الناتج بسطر واحد.
println "Hello World"
الإخراج:
Hello World
- لا حاجة للفاصلة المنقوطة.
- لا حاجة إلى فصل دراسي أو
mainالأسلوب. System.out.printlnيتم تقليله إلىprintln.
Groovy المتغيرات
In Java، الربط الثابت إلزامي، مما يعني أنه يجب تحديد نوع المتغير مسبقًا.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
الإخراج:
104
في المثال أعلاه، يتم تحديد نوع المتغير مسبقًا باستخدام الكلمة المفتاحية intإذا كنت ستعلن عن عدد عشري، فستستخدم الكلمة المفتاحية float or double.
إذا حاولت تعيين قيمة نصية إلى int (قم بإلغاء التعليق على السطر 5)، وستحصل على خطأ التجميع التالي.
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
فى المقابل، Groovy يدعم النوع الديناميكيpingيتم تعريف المتغيرات باستخدام الكلمة المفتاحية defولا يلزم تحديد نوع المتغير مسبقًا. يقوم وقت التشغيل بتحديد نوع المتغير، ويمكنك حتى تغيير هذا النوع لاحقًا.
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
الإخراج:
class java.lang.Integer class java.lang.String
In Groovy يمكنك أيضاً إنشاء سلاسل نصية متعددة الأسطر. فقط تأكد من وضع السلسلة بين علامتي اقتباس ثلاثيتين.
def x = """Groovy at Guru99""" println x
الإخراج:
Groovy at Guru99
ملاحظة: لا يزال بإمكانك استخدام أنواع صريحة مثل byte, short, intو long in Groovyلكن بمجرد تحديد النوع بشكل صريح، لا يمكنك تغييره ديناميكيًا.
int x = 104 println x x = "Guru99"
الإخراج:
104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
at jdoodle.run(jdoodle.groovy:3)
Command exited with non-zero status 1
Groovy Operaالاختصاصات
المعامل هو رمز يخبر المترجم بتنفيذ عملية حسابية أو منطقية محددة. Groovy يدعم خمس مجموعات من المشغلين.
- العمليات الحسابية: أضف (+)، اطرحtract (-), الضرب (*), القسمة (/), باقي القسمة (%), الزيادة (++), النقصان (–).
- العوامل العلاقية: يساوي (==)، لا يساوي (!=)، أصغر من (<)، أصغر من أو يساوي (<=)، أكبر من (>)، أكبر من أو يساوي (>=).
- العوامل المنطقية: و (&&)، أو (||)، وليس (!).
- عوامل تشغيل Bitwise: و (&)، أو (|)، أو الحصرية (^)، والمكمل (~).
- عوامل التعيين: قم بتعيين (=) والصيغ المركبة (+=)، (-=)، (*=)، (/=)، (%=).
Groovy يضيف بعض العوامل التي Java لا يحتوي على ذلك، كما أنه يزيل الكثير من التعليمات البرمجية المتكررة للتحقق من القيم الفارغة.
| المُشغل | الوصف |
|---|---|
| ?. | التنقل الآمن. يُرجع قيمة فارغة بدلاً من طرح استثناء NullPointerException عندما يكون الجانب الأيسر فارغًا. |
| ?: | عامل إلفيس. يُعيد الجانب الأيسر إذا كانت قيمته صحيحة، وإلا يُعيد الجانب الأيمن. |
| <=> | عامل تشغيل المركبة الفضائية. يُفوّض إلى compareTo وهو مفيد داخل عمليات الفرز المغلقة. |
| ==~ | مطابقة التعبير النمطي. تُرجع القيمة "صحيح" فقط عندما تتطابق السلسلة بأكملها مع النمط. |
Groovy الحلقات
In Java، يمكنك تعريف حلقة العد على النحو التالي.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
الإخراج:
0 1 2 3 4 5
يمكنك تحقيق نفس الناتج في Groovy مع الالجائزة upto الطريقة التي تشمل كلا الحدين.
0.upto(5) { println "$it" }
الإخراج:
0 1 2 3 4 5
هنا it يمثل هذا المعامل الضمني للدالة المغلقة، ويحمل قيمة التكرار الحالي. انظر إلى الكود التالي.
2.upto(4) { println "$it" }
الإخراج:
2 3 4
يمكنك أيضا استخدام times طريقة. تبدأ دائمًا من 0 وتتوقف قبل الرقم الذي تستدعيها عليه بواحد، لذا فأنت بحاجة إلى 6 لطباعة الأرقام من 0 إلى 5.
6.times { println "$it" }
الإخراج:
0 1 2 3 4 5
لنفترض الآن أنك تريد طباعة الأرقام 0 و2 و4 باستخدام Java لحلقة.
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
الإخراج:
0 2 4
يمكنك استخدام step طريقة للحصول على نفس النتيجة. الوسيط الثاني هو مقدار الزيادة، والوسيط الأول هو حد أعلى حصري.
0.step(5, 2) { println "$it" }
الإخراج:
0 2 4
Groovy اتخاذ القرار
Groovy يعيد استخدام Java العبارات الشرطية وتضيف مرونة أكبر بكثير switchيلخص الجدول أدناه الخيارات المتاحة.
| ملخص الحساب | الوصف |
|---|---|
| إذا البيان | كما في Javaيتم تنفيذ جسم عبارة if عندما يكون الشرط صحيحًا. |
| عبارة if/else | يتم تقييم الشرط الموجود في عبارة if أولاً. إذا كان الشرط صحيحاً، تُنفَّذ التعليمات الموجودة في كتلة if ويتم تخطي كتلة else. أما إذا كان الشرط خاطئاً، فتُنفَّذ التعليمات الموجودة في كتلة else بدلاً من ذلك. |
| عبارة شرطية متداخلة | يُستخدم هذا عندما تحتاج إلى اختبار شرط إضافي داخل كتلة if. |
| بيان التبديل | تصبح سلسلة عبارات if-else المتداخلة غير قابلة للقراءة عند وجود العديد من الشروط. أما عبارة switch فتجعل نفس المنطق أسهل للقراءة. Groovy، يمكن أن يكون تصنيف الحالة قيمة أو فئة أو نطاقًا أو تعبيرًا عاديًا أو إغلاقًا. |
| عبارة التبديل المتداخلة | Groovy كما يسمح بوضع عبارة switch واحدة داخل عبارة أخرى. |
Groovy قائمة
تتيح لك بنية القائمة تخزين مجموعة من عناصر البيانات. Groovyتحتوي القائمة على سلسلة من مراجع الكائنات وتحافظ على موضع كل عنصر في تلك السلسلة. تُكتب القائمة الحرفية كسلسلة من الكائنات مفصولة بفواصل ومحاطة بأقواس مربعة.
أحد أمثلة Groovy القوائم:
- قائمة من السلاسل النصية:
['Angular', 'Nodejs'] - قائمة بمراجع الكائنات المختلطة:
['Groovy', 2, 4, 2.6] - قائمة من القيم العددية الصحيحة:
[16, 17, 18, 19] - قائمة فارغة:
[]
تتوفر طرق القائمة التالية في Groovy.
| الأسلوب | الوصف |
|---|---|
| إضافة () | يُضيف قيمة جديدة إلى نهاية القائمة. |
| يتضمن() | تُرجع القيمة "صحيح" إذا كانت القائمة تحتوي على قيمة معينة. |
| احصل على() | يُعيد العنصر الموجود في الموضع المحدد. |
| فارغ() | تُرجع القيمة "صحيح" إذا كانت القائمة لا تحتوي على أي عناصر. |
| ناقص() | يقوم بإنشاء قائمة جديدة تتكون من عناصر القائمة الأصلية، باستثناء تلك المحددة في المجموعة المعطاة. |
| زائد() | يقوم بإنشاء قائمة جديدة تتكون من عناصر القائمة الأصلية بالإضافة إلى العناصر الموجودة في المجموعة المعطاة. |
| pop () | يزيل العنصر الأخير من القائمة ويعيده. |
| إزالة() | يزيل العنصر الموجود في الموضع المحدد. |
| عكس () | يقوم بإنشاء قائمة جديدة تعكس عناصر القائمة الأصلية. |
| بحجم() | يُعيد عدد العناصر في القائمة. |
| فرز() | يُعيد نسخة مُرتبة من القائمة. |
النظر في ما يلي Groovy مثال على نص برمجي.
def y = ["Guru99", "is", "أفضل", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
الإخراج:
[Guru99, is, أفضل, for, Groovy] true أفضل Learning
يطبع السطر الأول القائمة الأصلية المكونة من خمسة عناصر، لأن add() لم يتم تشغيله بعد. get(2) يعود "تي" منذ Groovy تبدأ فهارس القوائم من الصفر، و pop() يُرجع "التعلم" لأن هذا العنصر أُضيف أخيرًا.
Groovy برنامج Maps
A Groovy الخريطة عبارة عن مجموعة من أزواج المفاتيح والقيم. لا تحتاج المفاتيح إلى علامات اقتباس عندما تكون معرفات بسيطة، مما يجعل نصوص الخريطة مختصرة للغاية.
أحد أمثلة Groovy خرائط:
[tutorial: 'Java', language: 'Groovy']هي عبارة عن مجموعة من زوجين من المفاتيح والقيم.[:]يمثل خريطة فارغة.
فيما يلي قائمة بطرق الخرائط المتاحة في Groovy.
| الأسلوب | الوصف |
|---|---|
| يحتوي علىمفتاح () | يتحقق مما إذا كانت الخريطة تحتوي على المفتاح المحدد. |
| احصل على() | يبحث عن المفتاح في الخريطة ويعيد القيمة المطابقة. إذا لم يتم العثور على أي مدخل، فإنه يعيد قيمة فارغة (null). |
| مجموعة المفاتيح () | يُعيد مجموعة المفاتيح الموجودة في الخريطة. |
| وضع() | يربط القيمة المحددة بالمفتاح المُعطى. إذا كانت الخريطة تحتوي بالفعل على خريطةping بالنسبة لهذا المفتاح، يتم استبدال القيمة القديمة. |
| بحجم() | يُعيد عدد خرائط المفتاح والقيمةpings. |
| القيم () | يُعيد عرضًا لمجموعة من القيم. |
Groovy مثال:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
الإخراج:
Jen
Groovy إغلاق
A Groovy الإغلاق هو كتلة من التعليمات البرمجية مُغلّفة ككائن. يتصرف مثل طريقة أو دالة، ولكن يمكن تخزينه في متغير وتمريره مثل أي قيمة أخرى.
مثال على إغلاق بسيط:
def myClosure = { println "My First Closure" } myClosure()
الإخراج:
My First Closure
يمكن للدالة المغلقة قبول المعاملات. يتم فصل قائمة المعرفات بفواصل، مع وجود سهم (->) يشير إلى نهاية قائمة المعاملات.
def myClosure = { a, b, c -> y = a + b + c println y } myClosure(1, 2, 3)
الإخراج:
6
يمكن للدالة المغلقة أيضًا أن تُرجع قيمة.
def myClosure = { a, b, c -> return (a + b + c) } println(myClosure(1, 2, 3))
الإخراج:
6
عندما لا تقوم بتحديد قائمة المعلمات، Groovy يُوفر مُعاملًا ضمنيًا واحدًا يُسمى itيمكن أيضًا تمرير الدوال المغلقة إلى دوال مغلقة أخرى، وهذا هو بالضبط ما تفعله طرق التجميع مثل each, collectو findAll عمل.
Groovy الأدوات
سنلقي نظرة على ثلاث أدوات مهمة تأتي مع المنتج. Groovy توزيع:
- groovysh: ينفذ التعليمات البرمجية بشكل تفاعلي من سطر الأوامر.
- groovyConsole: نافذة رسومية لتنفيذ التعليمات البرمجية التفاعلية.
- رائع: ينفذ Groovy ملفات البرامج النصية، بنفس الطريقة التي تقوم بها بتشغيل برنامج بيرل أو Python النصي.
Groovysh
- واجهة سطر الأوامر.
- يساعدك على التنفيذ Groovy البرمجة التفاعلية.
- يتيح لك إدخال عبارات مفردة أو نصوص برمجية كاملة.
تُظهر لقطة الشاشة أدناه قيام برنامج groovysh بتقييم التعبيرات سطرًا سطرًا.
Groovy كنسولات
- واجهة Swing تعمل كواجهة بسيطة Groovy محرر التطوير.
- يتيح لك كتابة وتشغيل Groovy البرمجة التفاعلية.
- يساعدك على التحميل والتشغيل Groovy ملفات البرامج النصية.
في خانة رمز الخصم، أدخل TABBYDAY. Groovy في وحدة التحكم أدناه، يتم كتابة البرنامج النصي في الجزء العلوي وتظهر النتيجة في الجزء السفلي.
Groovy
استخدم groovy الأمر هو المعالج الذي يقوم بتشغيل Groovy البرامج والنصوص البرمجية. يقوم بتجميع الكود المصدري إلى بايت كود في الذاكرة وتنفيذه في خطوة واحدة، لذا لا حاجة لمرحلة بناء منفصلة. كما يمكن استخدامه لاختبار البرامج البسيطة. Groovy التعبيرات مباشرة من الطرفية، كما هو موضح أدناه.
في Groovy يُستخدم في مشاريع حقيقية
معظم المطورين يلتقون Groovy ليس كلغة مستقلة، بل كطبقة برمجة نصية داخل أداة يستخدمونها بالفعل. معرفة مكان ظهورها يجعل وضع الصيغة المذكورة أعلاه أسهل بكثير.
| أداة | كيفية Groovy ويستخدم |
|---|---|
| Jenkins | تُكتب خطوط الأنابيب التصريحية والبرمجية بلغة Groovy لغة المجال الخاصة (DSL)، والمكتبات المشتركة واضحة Groovy الطبقات. |
| Gradle | الكلاسيكية build.gradle الملف هو Groovy النص البرمجي، ولهذا السبب تتم قراءته بشكل أكثر إيجازًا من النص البرمجي العادي. مخضرم دواء بوصفة طبية أو نملة ملف البناء. |
| SoapUI | Groovy تُشغّل خطوات البرنامج النصي وتأكيدات البرنامج النصي بيانات الطلب الديناميكية وعمليات التحقق من الاستجابة المخصصة. |
| سبوك | A Groovy إطار اختبار يستخدم على نطاق واسع كتل "المعطيات-عندما-ثم" وجداول البيانات الخاصة به لاختبارات وحدة JVM. |
| Elasticsearch و Grails | يقوم Grails ببناء تطبيقات ويب كاملة على Groovyوتقبل العديد من أدوات البيانات Groovy للبرمجة المخصصة. |
In اختبار الأتمتة هذا الأمر مهم للفرق مرتين: قد تكون مهمة التكامل المستمر التي تشغل مجموعة الاختبارات والاختبارات نفسها كلاهما Groovyلذا، تغطي لغة واحدة منطق الربط بين خطوط الأنابيب ومنطق التأكيدات.
Groovy مباراة. Java
| Groovy | Java |
|---|---|
| مُعدِّل الوصول الافتراضي هو عام، لذا فإن الطريقة التي لا تحتوي على مُعدِّل يمكن الوصول إليها خارج فئتها وحزمتها. | مُعدِّل الوصول الافتراضي هو "خاص بالحزمة"، لذا فإن الحقول والأساليب والفئات التي لا تحتوي على مُعدِّل تكون مرئية فقط داخل حزمتها. |
| يتم إنشاء دوال الوصول والتعيين تلقائيًا لخصائص الفئة. | عليك تعريف دوال الوصول والتعديل للحقول بنفسك. |
| Groovy يسمح باستبدال المتغيرات داخل السلاسل النصية المحاطة بعلامات اقتباس مزدوجة. | Java لا يدعم استيفاء السلاسل النصية. |
| معلومات النوع اختيارية. | معلومات النوع إلزامية. |
| لا يشترط أن تنتهي العبارات بفاصلة منقوطة. | كل عبارة تنتهي بفاصلة منقوطة. |
| Groovy يقوم البرنامج تلقائيًا بتغليف كل نص برمجي في فئة نص برمجي مُنشأة. | أنت بحاجة إلى دالة رئيسية لجعل الفئة قابلة للتنفيذ. |
كل شيء عام وديناميكي بشكل افتراضي، ولكن @CompileStatic يستعيد Java- مستوى السرعة والتحقق. |
يتم تجميع كل شيء بشكل ثابت والتحقق منه في وقت الإنشاء. |
أساطير حول Groovy
| أسطورة | واقع |
|---|---|
| Groovy لا يمكن استخدامه إلا في كتابة البرامج النصية. | إنه ممتاز لكتابة البرامج النصية، ولكنه يقوم أيضًا بالترجمة إلى فئات عادية يمكنك تضمينها داخل أي تطبيق JVM. |
| Groovy يتمحور كل شيء حول الإغلاقات، لذا فهي مجرد لغة برمجة وظيفية. | Groovy تستعير أفكارًا من لغات البرمجة الوظيفية مثل Lisp و Clojure، لكنها تظل لغة كائنية التوجه في جوهرها. |
| Groovy لا يُنصح باستخدامه إلا في تطوير البرمجيات القائم على الاختبار. | Groovy يُعدّ مناسبًا تمامًا لـ TDD مع Spock، لكن هذا بالتأكيد ليس السبب الوحيد لاستخدامه. |
| تحتاج فقط Groovy إذا كنت ترغب في استخدام Grails. | Grails هو إطار عمل قوي لتطوير مواقع الويب، ولكن Gradle, Jenkins، وسبوك جميعهم يستخدمون Groovy بدونها. |
سلبيات الاستخدام Groovy
- جي في إم و Groovy وقت بدء تشغيل البرنامج النصي بطيء، مما يحد من استخدامه في كتابة البرامج النصية السريعة على مستوى نظام التشغيل.
- Groovy لا يتم اعتمادها على نطاق واسع خارج المجتمعات التي تركز على JVM.
- من غير المريح استخدامه Groovy بدون بيئة تطوير متكاملة تفهم خصائصها الديناميكية.
- يمكن أن يؤدي الإرسال الديناميكي إلى Groovy الكود أبطأ من الكود المكافئ Java لا تقم بتطبيق التعليمات البرمجية إلا إذا قمت بتطبيقها
@CompileStatic. - Groovy قد تحتاج البرامج إلى ذاكرة أكبر من البرامج العادية Java البرامج.
- معرفة عن Java وهو شرط أساسي فعلياً.
بمجرد أن تشعر بالراحة مع Groovy فيما يخص بناء الجملة، فإن الخطوة الطبيعية التالية هي النظام البيئي المحيط بها. عزز الأساسيات من خلال Java البرنامج التعليميثم انظر كيف Groovy تُشغّل البرامج النصية عمليات البناء والنشر في Jenkinsقارن أدوات البناء مع مخضرم و أباتشي النملةواستكشف كيف Groovy تتناسب التأكيدات مع Selenium ومجموعات اختبار واجهة برمجة التطبيقات (API).













