حلقة نقاشية بين الشركاء حول تحديث النماذج

شاهد Joel Kallman، نائب الرئيس لتطوير البرامج، مع عدد من الخبراء من مجتمع APEX الدولي، يناقشون تحديث نماذج أوراكل (Oracle Forms). تعرف على الجوانب الإيجابية للموضوع، وعلى ما يكتنفه من تحديات، تتعلق باستخدام Oracle APEX في تحديث تطبيقات نماذج أوراكل. يتم طرح قصص نجاح واقعية، وتحديات ونصائح في حلقة النقاش.

المشاركون

Joel Kallman (المضيف)
نائب الرئيس لتطوير البرامج، شركة أوراكل في كولومبوس بولاية أوهايو، الولايات المتحدة الأمريكية

Dario Bilić
مدير وعضو مجلس إدارة BiLog في زغرب بكرواتيا

Simon Greenwood
مدير إدارة خدمات التطوير، Explorer UK Ltd. في ليدز بالمملكة المتحدة

Sergei Martens
شريك إداري، Smart4APEX في تيلبرغ، بهولندا

Francis Mignault
كبير مسئولي التكنولوجيا وعضو مؤسس Insum Solutions في مونتريال بكندا

تم هذا التسجيل كجزء من نشاط APEX Office Hours: https://apex.oracle.com/officehours

نقاط النقاش الرئيسية

السؤال 1

هل يمكنك تقديم عرض عام مختصر لأحد المشروعات التي أتممتها (أو لمشروع قيد التنفيذ)؟ (11:55)

Dario:

  • بنك أوروبي محلي كبير
  • 500 من نماذج أوراكل (Oracle Forms)، 600 من تقارير أوراكل
  • مشروع تجريبي باستخدام APEX, Java مع Angular, .NET, الترقية إلى Forms 12c
  • استنادًا إلى المشروع التجريبي Oracle APEX

Simon:

  • مورد برامج مستقل في قطاع الطاقة لإدارة العدادات الذكية للغاز وعدادات الكهرباء
  • يستخدمه 4 / 6 من أكبر موردي الطاقة في المملكة المتحدة
  • نقل المئات من النماذج
  • أسباب التحديث =
    • الحاجة لعرض بشأن خدمة SaaS لتقديم البرامج (في المستعرض فقط)
    • تصميم عصري سريع الاستجابة للأجهزة اللوحية وليس فقط المكتبية.
    • تكلفة بدء أقل
    • الحاجة إلى خيار السحابة مستقبلاً – وليس خدمة السحابة في نماذج أوراكل (Oracle Forms)
    • إمكانية التوسع في أوروبا مما يستلزم دعم تعدد اللغات
    • يتوفر لدى مطوري النماذج المهارات الأساسية لتعلم التطوير على APEX

Sergei:

  • شركة محطة خزانات تعمل في مجال البترول والغاز
  • تحديث نماذج أوراكل (Oracle Forms) تهييئًا للنمو المتوقع مستقبلاً، وإعادة التصميم بما يلائم احتياجات العمل بصورة أفضل
  • حدثت بعض المتاعب في البداية مع ADF وساد الاعتقاد بأن APEX ستكون أسرع
  • تطوير تطبيق للمهام الحساسة من جانب فريقين يتألف كل منهما من عشرة أفراد

Francis:

  • واحدة من كبرى الشركات الأمريكية للخطوط البحرية، ونظام إدارة المهام على متن السفن (صعود الركاب، والرحلات الشاطئية، وخدمات النزلاء، والعمليات الإدارية المساعدة، والتقارير)
  • العديد من المشروعات على مدار سنوات كثيرة
  • تحديث 300 نموذج والكثير من التقارير
  • أسباب التحديث =
    • مشكلات الأداء
    • تحسين واجهة المستخدم
    • إمكانية الاستفادة مما تم استثماره في PL/SQL

السؤال 2

ما تقول عن المنهج الذي تتبعه للتحديث على APEX؟ أهو إعادة الكتابة؟ الترحيل الجزئي؟ تكوين تطبيقات جديدة ملاصقة لتطبيقات نماذج أوراكل (Oracle Forms) الموجودة حاليًا؟ (20:50)

Simon:

  • يجب أخذ كل الخيارات في الاعتبار، والانتقاء من بينها تبعًا للظروف
  • عادة، إعادة الكتابة بالكامل للاستفادة من التكاليف المنخفضة للترخيص، إلخ
  • يمكن المحاكاة في التنفيذ حتى أدق التفاصيل ولكن ينبغي تجنب ذلك – حيث تكون النماذج على هيئة عميل / خادم
  • إنشاء تطبيق "ويب" حديث باستخدام APEX
  • لا يوجد "حل سحري" للترحيل من النماذج إلى أي شيء آخر – لا بد من إعادة التطوير
  • إعادة استخدام أكبر قدر ممكن من التعليمات البرمجية

Sergei:

  • البدء بترحيل على هيئة واحد إلى واحد (أو أكثر) حتى يتقن المطورون استخدام APEX
  • نقل منطق المشغلات إلى منطق قاعدة البيانات
  • اختيار أكثر الوظائف سهولة في التنفيذ حتى يشعر أصحاب العمل بالرضا
  • النظر في ترحيل "مجموعات مستخدمين" بحيث لا يضطرون للعمل في بيئة النماذج وAPEX معًا

Francis:

  • يصعب تبرير إجراء "تحول كبير" يتم بمقتضاه إنجاز كل شيء في مشروع واحد
  • استخدام إعادة الكتابة جزئيًا، لتوسيع نطاق التطبيقات الحالية - حسب الوحدة النمطية
  • التعرف أولاً على APEX وبدء استخدامها مع الجداول الحالية

السؤال 3

ماذا كانت بعض أكبر التحديات التي واجهتك في هذا النوع من المشروعات؟ (29:40)

Sergei:

  • تغيير عقلية مطوري النماذج من تكديس الصفحة بأكبر قدر ممكن إلى إنجاز تصميم ملائم للويب
  • في المشروعات الكبيرة، هناك تحدٍ في وضع معايير واجهة المستخدم والاتساق
  • التغير غير المتوقع في النطاق – إلحاح أصحاب الأعمال في طلب وظائف جديدة طوال الوقت

Simon:

  • اعتياد مطوري النماذج على وجود اتصالات قاعدة بيانات ثابتة وبالتالي استخدام جداول مؤقتة – في APEX you أنت بحاجة لاستخدام مجموعات APEX
  • تحرير صفوف متعددة في الصفحات
  • عمليات التدقيق باستخدام مشغلات الكتل والعناصر بدلاً من التدقيق عن تقديم الصفحة في APEX
  • حدوث مشكلات أثناء محاولة استنساخ 100% من معالجة النماذج (على مستوى صفحات متعددة على سبيل المثال)

السؤال 4

ماذا كانت أكبر فائدة متحققة للعميل؟ هل شعر العميل بالرضا عن النتيجة؟

Dario:

  • تكاليف استخدام APEX مدفوعة بالفعل (عن طريق تراخيص قاعدة البيانات) فسيتم توفر المال عند الابتعاد عن النماذج
  • القدرة على إعادة تدريب مطوري النماذج على استخدام APEX – مما يحقق وفورات ملحوظة
  • الانتقال الفوري إلى تكنولوجيا الويب – التوزيع عن طريق الويب (مركزي) بدلاً من الحاجة للإرسال إلى آلاف المستخدمين النهائيين
  • الانتفاع بقدرات التنقل وخدمات REST باستخدام APEX
  • يثير تحديث التطبيقات إعجاب المستخدمين في شتى مجالات العمل

Francis:

  • الاستفادة من الاستثمارات الحالية في أوراكل – الترخيص، نموذج البيانات، الإطار التكنولوجي نفسه
  • سهولة تدريب مطور النماذج على APEX مقارنة بتكنولوجيات الويب الأخرى
  • الانتقال إلى تكنولوجيا القرن الحادي والعشرين - تطبيقات محمولة، عصرية، سريعة الاستجابة

السؤال 5

كثيرًا ما نتحدث عن ضرورة الحفاظ على استثماراتك في منطق الأعمال الإدارية المساعدة، في كل من SQL وPL/SQL. فهل هذه فكرة مغلوطة؟ ما حجم التعليمات البرمجية في العمليات الإدارية المساعدة التي يلزم تعديلها كي تصلح في الواقع للعمل مع APEX؟ (41:50)

Francis:

  • إذا كان المنطق موجودًا في قاعدة البيانات (وليس داخل النماذج) فيمكن استغلال قرابة كل التعليمات البرمجية
  • إذا كانت في النماذج (أو من إنشاء المصمم) فسيكون من الصعب استعراضها واستخراج منطق العمل
  • يمكن استخدام ميزة ترحيل نماذج APEX المضمنة في APEX لإضافة تعليق توضيحي إلى المنطق
  • المحاكاة لأقصى حد في APEX لمنهج التطوير في النماذج = إعادة استخدام أكثر سهولة

Dario:

  • معظم التعليمات البرمجية موجودة داخل النماذج – تلزم محاولة نقلها كلها إلى قاعدة البيانات
  • إذا كانت التعليمات البرمجية موجودة في قاعدة البيانات بالفعل فستكون إعادة استخدامه شديدة السهولة.

السؤال 6

أيمكنك وصف العملية التي تتبعها في تقييم مدى ملاءمة عنصر ما للتحديث في APEX؟ هل يمكنك تقديم مثال لعنصر ما لن تستخدم APEX لتحديثه في تطبيق بالنماذج؟ (46:30)

Simon:

  • هناك أشياء غير مناسبة لإطار عمل الويب، مثل web_util (والتي تقوم بعمليات سطح المكتب)
  • تحديد حجم التعليمات البرمجية الموجودة في مشكلات النماذج لمعرفة حجم الجهد المطلوب
  • مراجعة الأقسام التي ما زالت قيد الاستخدام (ما لا يتم استخدامه = لا يتم تحديثه)

Dario:

  • APEX تستند إلى الويب وليس إلى بنية عميل / خادم ذات أوجه قصور معينة
  • يتوفر في النماذج مزيد من التحكم على جانب العميل، وهذا ليس من خصائص "الويب"
  • يمكن استخدام الأدوات الإضافية وتقنيات أخرى لتحقيق المتطلبات على جانب العميل

السؤال 7

كيف يمكن تدريب شخص ما لتمكينه من استخدام APEX، خاصة إذا كانت خلفيته في التطوير هي النماذج؟ تلك منصة على الويب، والويب مختلفة كما تعلمون. (50:55)

Sergei:

  • تم تدريب مطوري نماذج خلال 3 مراحل على مستوى الشركة
    • المبتدئ – أساسيات APEX؛ ثم السماح للمطورين بتجربة ما تعلموه لاكتساب المزيد من المعرفة
    • متوسط – مرحلة العرض، مرحة العميل، مرحلة المعالجة
    • متقدم – أفضل الممارسات والمعايير القياسية؛ الاتساق
  • فور انغماسهم في عملية التطوير، اطرح عليهم JS وCSS
  • من الأفضل وجود مطور ويب ذي خبرة في JS، CSS، HTML

Dario:

  • من الأفضل أن يضم الفريق خبيرًا في تكنولوجيات الويب لاستيعاب تكنولوجيات الويب المستحدثة
  • استهداف ورش العمل التي تستخدم النماذج وبحاجة إلى تحديث
  • إطلاعهم على ما يتوفر في مجتمع APEX من إمكانات (twitter، apex.world)
  • تشجيعهم على طرح الأسئلة (بل والقيام بالبحث على محرك Google)
  • إنشاء أدوات إضافية للميزات الشائعة المطلوبة على مستوى صفحات / تطبيقات متعددة
  • الاطلاع على أطر العمل الخارجية مثل FOEX

Francis:

  • تدريب مطوري النماذج على كيفية العمل على الويب وتغيير "عقليتهم" في هذا الشأن هو الجانب الأهم
  • اجعلهم يجربون استخدامها وينشئوا بعض التطبيقات
  • شاركهم العمل ونبههم إلى ما هو مسموح وما هو ممنوع
  • التعرف على كيفية تصحيح أخطاء / تتبع التطبيقات
  • يلزم كذلك توفير تدريب للمستخدمين النهائيين – حيث ستكون الشاشات والعمليات على قدر من الاختلاف

السؤال 8

كم يستغرق وصول مطوري النماذج لمستوى الكفاءة المطلوب في التطوير للويب وفي APEX؟ هل كان بمقدورهم القيام بأعمال التطوير دون عون؟ (1:01:45)

Dario:

  • 42 دقيقة
  • بعد تلقي التدريب، يجب الوصول إلى مرحلة الإنتاجية خلال أسابيع، مع توفر دعم
  • بعد شهر أو اثنين، يجب الوصول إلى مرحلة الإنتاجية دون كثير من الدعم

Simon:

  • القدرة على العمل خلال أيام قليلة، أما الكفاءة فخلال بضعة أسابيع
  • تكنولوجيات الويب الأخرى مثل JavaScript أو jQuery فيستغرق إتقانها وقتًا أطول قد يمتد لأشهر طويلة
  • لا بد للمطورين من التشبع بمنصة APEX، وهو ما يقتضي بعض الوقت والخبرة

السؤال 9

هل بوسع العملاء القيام بعملية الترحيل هذه دون مساعدة؟ إن منتدى ساعات الدعم Office Hours هذا يضم شركاءنا الكثيرين، وإن كنت من متابعي هذا النقاش فربما يدور بذهني "رباه، أنا بحاجة لمن يساعدني لإنجاز هذا العمل". فما قولكم؟

Francis:

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

Sergei:

  • التطبيقات الصغيرة لا تمثل مشكلة
  • يتطلب العمل في التطبيقات الكبيرة اتباع أفضل الممارسات (التحكم في الإصدارات، البيئات، الأدوات الإضافية …) مما يتوفر لدى الشركاء
  • من المهم تمامًا الحصول على مساعدة خلال الأشهر القليلة الأولى

السؤال 10

بالنسبة لشخص يشاهد هذا النقاش، ويفكر في تحديث بعض تطبيقاته المعتمدة على النماذج باستخدام APEX، ألديكم نصائح محددة؟ (1:08:40)

Dario:

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

Simon:

  • تنزيل أحدث إصدار من APEX
  • الاشتراك في apex.oracle.com
  • سوف يتقن مطورو النماذج كيفية العمل على APEX سريعًا
  • مراجعة التطبيقات الحالية للتأكد أن الصفحات ما زالت قيد الاستخدام
  • ليس هناك "حل سحري" للترحيل – يتعلق الأمر بصورة أساسية بإعادة التصميم
  • اطلع على الورقة الإشاردية المتعلق بالنماذج: “Java Client Roadmap” (خطة عمل لعميل جافا) لتقييم الوضع مستقبلاً
    { https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf}

Sergei:

  • البدء بنطاق محدود – اختيار مشروع صغير يحقق نتائج سريعة
  • فحص وظائف إعداد التقارير، مثل التقارير التفاعلية والشبكات التفاعلية، إلخ

Francis:

  • البدء في استخدام APEX على الفور – على سبيل التجربة
  • التخطيط لواجهة المستخدم، التخطيط للأمان (التصديق والاعتماد) والتخطيط للتنقل
  • التطوير مرحليًا وليس "دفعة واحدة"
  • الالتزام بالبساطة – الحد من جوانب الإبهار الشكلي
  • عدم محاولة إعادة إنتاج النماذج
  • إدارة التغيير – يلزم توفير تدريب للمستخدمين والمطورين والمحللين ومسئولي قواعد البيانات
  • المشاركة في مجتمع APEX