سبرينغ رو
Spring Roo هي أداة برمجية مفتوحة المصدر تستخدم مبادئ الاتفاقيات بدلاً من التكوين لتوفير تطوير سريع لتطبيقات برامج المؤسسات القائمة على Java . [ 1 ]
تم إيقاف المشروع وتوقف تطويره النشط. [ 2 ]
الدافع والتاريخ
تتمثل مهمة Spring Roo في "تحسين إنتاجية مطوري Java بشكل جذري دون المساس بسلامة الهندسة أو المرونة" . [ 3 ]
عُرضت هذه التقنية لأول مرة خلال الكلمة الافتتاحية في مؤتمر SpringOne Europe للمطورين بتاريخ 27 أبريل 2009، مع إصدار تجريبي أولي نُشر في الوقت نفسه. وخلال الكلمة الافتتاحية، تم بناء تطبيق مباشر على خشبة المسرح ليستخدمه الحضور للتصويت على الاسم المفضل للمشروع (الذي كان يُعرف آنذاك بالاسم الرمزي "Roo" ضمن SpringSource ). [ 4 ] وفي النهاية، تم اختيار اسم "Spring Roo" على بدائل أخرى مثل Spring Boost وSpring Spark وSpring HyperDrive وSpring Dart. [ 5 ]
توالت الإصدارات اللاحقة، [ 6 ] [ 7 ] وكان آخرها إصدار Roo 1.0.0.RELEASE ( المتاح للجميع ) في ديسمبر 2009. وفي أكتوبر 2010، صدر Spring Roo 1.1.0.RELEASE. انتقل الإصدار 1.1.0 إلى بنية OSGi الأساسية مع نموذج اكتشاف الإضافات المرتبط بها، بالإضافة إلى دعم إضافي للهندسة العكسية التدريجية لقواعد البيانات، وتقليل تعقيد صفحات Spring MVC، وGoogle Web Toolkit، وGoogle App Engine، وApache Solr، وJSON، وميزات أخرى أصغر مثل الأتمتة القابلة للتسلسل. [ 8 ]
في عام 2014، تولت DISID قيادة إطار العمل مفتوح المصدر Spring Roo بعد اتفاقية شراكة مع Pivotal.
أعلنت DSID و VMware عن إيقاف Spring Roo ونهاية التطوير النشط في عام 2019 وتم أرشفة المستودع في عام 2022. [ 2 ]
التوافق مع المعايير والتكنولوجيا
يسهل التثبيت الافتراضي لـ Roo إنشاء تطبيقات تتوافق مع المعايير والتقنيات الرئيسية التالية: [ 9 ]
- أباتشي أكتيف إم كيو (كتطبيق مضمن لنظام إدارة جافا سكريبت )
- أباتشي مافن (الإصدار 3.2 أو أعلى)
- أباتشي تومكات (دعم التنفيذ المضمن)
- AspectJ (يستخدم في AOP بالإضافة إلى mixins لتحقيق فصل الاهتمامات )
- أدوات تطوير AspectJ (إضافة Eclipse)
- Bootstrap (الإصدار 3.3.6 أو أعلى)
- الحوسبة السحابية (عبر SpringSource Cloud Foundry و Google App Engine و VMforce)
- بيئة تطوير إكليبس (التنفيذ المتزامن وإنشاء بيانات تعريف المشروع)
- EclipseLink (كتطبيق JPA )
- Hibernate (كتطبيق JPA )
- التحقق من صحة Java Bean (JSR 303) (بما في ذلك Hibernate Validator)
- واجهة برمجة تطبيقات جافا لخدمات الويب XML (للخدمات والعملاء على حد سواء)
- خدمة رسائل جافا (منتجي ومستهلكي الرسائل)
- واجهة برمجة تطبيقات استمرارية جافا (تطبيقات متعددة)
- واجهة برمجة تطبيقات المعاملات في جافا (عبر تجريد معاملات سبرينغ )
- جافا (الإصدار 5 أو 6 أو 7). يتم دعم جافا 7 منذ Roo 1.2.4. [ 10 ]
- JQuery (الإصدار 1.11 أو أعلى)
- JSON (دعم REST)
- JUnit (اختبارات آلية لمشاريع المستخدم)
- Log4j (التثبيت والتكوين)
- OSGi (أداة Roo مبنية على OSGi)
- نقل الدولة التمثيلي (REST)
- Spring Boot (الإصدار 1.4 أو أعلى)
- Spring Data JPA (الإصدار 1.10 أو أعلى)
- إطار عمل Spring (الإصدار 4 أو أعلى)
- Spring Security (الإصدار 4 أو أعلى)
- Spring Web Flow (التثبيت وتعريف التدفق)
- مجموعة أدوات SpringSource (تحتوي STS على واجهة Roo مدمجة وأدوات مساعدة لأوامر Roo)
- ثيميليف (الإصدار 3 أو أعلى)
يمكن توسيع القائمة المذكورة أعلاه من خلال إضافات Roo الإضافية، والتي توفر طريقة Roo للتوسع .
واجهة المستخدم
واجهة المستخدم الرئيسية لبرنامج Spring Roo هي واجهة سطر أوامر . توفر هذه الواجهة كلاً من واجهة سطر الأوامر وآلية لاستضافة الإضافات (التي تُسمى "الإضافات" في Roo). يتمثل أحد الأهداف الرئيسية لتصميم Roo في ضمان استمرار المستخدم في العمل بطريقة طبيعية، ما يعني عادةً استخدام بيئة التطوير المتكاملة (IDE) أو محرر النصوص المفضل لديه لإنجاز معظم المهام. ولذلك، غالبًا ما يتم تحميل Roo في نافذة منفصلة عن بيئة التطوير المتكاملة أو محرر النصوص، ويراقب نظام الملفات بحثًا عن أي تغييرات يُجريها المستخدم خارج Roo. كما يتم إجراء فحص لمشروع المستخدم عند بدء التشغيل لتحديد أي تغييرات قد تكون طرأت أثناء عدم تشغيل Roo.
تدعم واجهة المستخدم الرسومية ميزات استخدام شاملة، بما في ذلك إكمال سطر الأوامر (أي الضغط على مفتاح TAB)، والمساعدة عبر الإنترنت ، والتلميحات (وهي شكل من أشكال المساعدة السياقية )، والوعي السياقي (الذي يوفر استنتاجًا تلقائيًا للنوايا المحتملة بناءً على النشاط الأخير). يتيح ذلك للمستخدم إنشاء مشروع برمجي جديد عبر واجهة Roo الرسومية، أو استخدام Roo على مشروع موجود. فيما يلي مثال على الأوامر التي يستخدمها Roo لإنشاء تطبيق جديد، بالإضافة إلى هدف تشغيل إضافة Spring Boot Maven لتجميع التطبيق وتشغيله باستخدام خادم HTTP مضمن.
$ mkdir hello $ cd hello $ roo.sh roo> إعداد المشروع --حزمة المستوى الأعلى com.foo roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY roo> entity jpa --class ~.domain.Timer roo> field string --fieldName message --notNull roo> repository jpa --all roo> service --all roo> إعداد MVC للويب roo> web mvc view setup --type THYMELEAF roo> web mvc controller --all --responseType THYMELEAF roo> web mvc controller --all --pathPrefix /api roo> quit $ mvn spring-boot:run لم يكن من الضروري كتابة الأوامر المذكورة أعلاه بالكامل، بل كان يتم إكمالها باستخدام مفتاح TAB. بالإضافة إلى ذلك، كان من الممكن استخدام أمر "hint" للحصول على المساعدة في أي وقت.
بنيان
يعمل Roo عن طريق إنشاء تعريفات AspectJ بين الأنواع (المعروفة أيضًا باسم mixins أو introductions). يحقق هذا فصلًا للمهام ، حيث أن الكود الذي يديره Roo موجود في وحدة تجميع مختلفة عن الكود الذي يكتبه المستخدم. هذا يعني أن Roo يستطيع تعديل تعريفات AspectJ بين الأنواع تدريجيًا حسب الحاجة مع الحفاظ على جميع الملفات الأخرى سليمة. [ 11 ] [ 12 ] [ 13 ]
يستخدم Spring Roo الإضافات لتوفير جميع الوظائف داخل نظام تشغيل OSGi وعلى سطحه، وذلك استنادًا إلى Apache Felix .
التمايز
يختلف Spring Roo عن أدوات تطوير التطبيقات السريعة الأخرى التي تعتمد على الاتفاقيات بدلاً من التكوين على النحو التالي: [ 14 ]
- إنتاجية منصة جافا : يوفر Roo حلاً لزيادة إنتاجية مطوري جافا. لا يتطلب من المستخدم البرمجة بأي لغة أخرى غير جافا . كما أنه يستخدم معايير وتقنيات تطبيقات جافا المؤسسية الشائعة (كما هو مذكور أعلاه) لتعظيم الاستفادة من معارف ومهارات وخبرات المطورين الحالية.
- سهولة الاستخدام : صُممت واجهة Roo لتوفير بيئة سهلة الاستخدام وقابلة للاكتشاف، مما يقلل من متطلبات التدريب. تبدأ جميع تعليقات Roo بـ @Roo لتسهيل ميزة الإكمال التلقائي للأوامر في بيئات التطوير المتكاملة ( IDEs). يمكن للمستخدمين استخدام بيئة التطوير المتكاملة الخاصة بهم لإجراء جميع العمليات دون الحاجة إلى معرفة ما إذا كان Roo قيد التشغيل. كما يدعم Roo أيضًا تحرير الملفات حتى في حال عدم تشغيله.
- لا يتطلب Roo وقت تشغيل: فهو لا يوفر واجهة برمجة تطبيقات (API) لوقت التشغيل ، ولا يتطلب مكونات تشغيل محددة. وهذا يضمن عدم استهلاك موارد وحدة المعالجة المركزية ( CPU) أو الذاكرة أو مساحة التخزين الخاصة بـ Roo أثناء التشغيل. تم تحسين كود Roo ليناسب النشر السحابي ذي البصمة الصغيرة وحالات الاستخدام ذات قابلية التوسع العالية .
- تجنب التقييد : يمكن إزالة Roo بسرعة من مشروع المستخدم، مما يُفيد في الحماية من التقييد بالمورد . هذا ممكن لعدم وجود مكون وقت تشغيل لإزالته، ولأن تعليقات @Roo تُحفظ في المصدر فقط (مما يضمن عدم حفظها في ملفات *.class المُجمّعة) [ 15 ] ، ويمكن تضمين تعريفات AspectJ بين الأنواع في وحدات تجميع *.java القياسية. [ 16 ] [ 17 ]
- قابلية التوسع : يهدف فصل Roo بين البنية التحتية الأساسية والإضافات الأساسية إلى السماح للأطراف الثالثة بتوسيع Roo بسهولة. [ 18 ] [ 19 ]
انظر أيضاً
- الكؤوس المقدسة (إطار العمل)
- جريفون (إطار عمل) – إطار عمل سطح المكتب مستوحى من جريلز
- إطار عمل اللعب
مراجع
- ↑ "InfoWorld: الرئيس التنفيذي لشركة SpringSource يروج لـ Roo، وهو تحسين جديد للغة Java" بقلم بول كريل؛ بتاريخ 2009-06-01.
- 1 2 "ملف README الخاص بمستودع كود Spring Roo" . spring-attic / spring-roo . تم الاطلاع عليه بتاريخ 2025-04-08 .
- ↑ "وثائق مرجعية لـ Spring Roo" ، قسم بيان المهمة؛ تم الاسترجاع في 21-2-2010.
- ↑ "مقاطع فيديو تقنية: مستقبل ابتكار جافا" مؤرشف في 2009-10-09 في Wayback Machine بواسطة رود جونسون (الرئيس التنفيذي لشركة SpringSource)؛ تم استرجاعه في 2009-10-17.
- ↑ "وثائق مرجعية لـ Spring Roo" ، قسم التاريخ؛ تم الاسترجاع في 21-2-2010.
- ↑ "InfoQ: إصدار Spring Roo 1.0 M1" بقلم سريني بينشيكالا؛ بتاريخ 2009-5-31.
- ↑ "تتبع المشكلات في Jira لإصدارات مشروع Spring Roo" ؛ تم الاسترجاع في 21-2-2010.
- ↑ "قفزة كبيرة للأمام: تم إصدار Spring Roo 1.1.0!" مؤرشف في 28-10-2010 في Wayback Machine ، بقلم بن أليكس (رئيس Spring Roo في SpringSource)؛ تم الاسترجاع في 27-10-2010.
- ↑ "TechCast: Spring Roo podcast" مؤرشف بتاريخ 23-02-2010 في Wayback Machine بواسطة كين ريمبل؛ تم استرجاعه بتاريخ 21-02-2010.
- ↑ "إصدار Spring Roo 1.2.4 متاح الآن" بتاريخ 2013-10-17.
- ↑ "InfoQ: مقدمة إلى Spring Roo 1.0.0 عرض فيديو" ، بقلم بن أليكس (رئيس فريق Spring Roo في SpringSource)؛ تم الاطلاع عليه بتاريخ 21-2-2010.
- ^ “مؤتمر JAX Italia 2009: Spring Roo” بقلم ماسيميليانو ديسي؛ تم الاسترجاع 2010/2/21.
- ↑ "مجموعة مستخدمي جافا في فيلادلفيا: سبرينغ رو" بقلم كين ريمبل؛ تم الاطلاع عليه بتاريخ 21-2-2010.
- ↑ "الصفحة الرئيسية لـ Spring Roo" ؛ تم الاسترجاع في 21-2-2010.
- ↑ "Sun Java 5 JavaDocs for RetentionPolicy.SOURCE" بواسطة Sun Microsystems؛ تم الاسترجاع في 2009-10-17.
- ↑ "إعادة هيكلة Push-In لـ AJDT" بقلم أندرو أيزنبرغ (قائد مشروع AJDT في SpringSource)؛ تم الاطلاع عليه بتاريخ 17-10-2009.
- ↑ "Eclipse AJDT intertypes and Push-In refactoring" مؤرشف في 2010-01-17 في Wayback Machine بواسطة Dhruba Bandopadhyay؛ بتاريخ 2009-12-31.
- ↑ "مؤتمر JavaDay IV لمجموعة مستخدمي Java الإيطالية: Spring Roo Internals" بقلم ماسيميليانو ديسي؛ تم الاطلاع عليه بتاريخ 21-2-2010.
- ↑ "الربيع، ورو، والهواء الطلق أيضًا: ما قدمه الهواء الطلق للربيع ولماذا" بقلم جيف بوتس؛ بتاريخ 2009-12-16.
روابط خارجية
- مكتبات حاسوب مجانية
- برنامج مجاني مكتوب بلغة جافا
- أدوات تطوير جافا
- منصة جافا للمؤسسات
- أطر عمل الويب
- برنامج يستخدم ترخيص أباتشي
