بدايةً أود أن أشكر جامعة الملك خالد وجميع أفراد الإدارة العامة لتقنية المعلومات على تنظيم هذا الحدث الرائع والأول من نوعه في المملكة العربية السعودية، والذي نتمنى أن يستمر بشكل دوري في المملكة. أحببت أن أشارك ملخص مادوّنته خلال هذا اليوم الحافل بالمعلومات والفوائد دروبال كامب جامعة الملك خالد بأبها KKU Drupal Camp.
ملخص عام
تم التركيز في لقاء Drupal Camp على التوعية بأهمية المصادر المفتوحة وبأنها قادرة على المنافسة من خلال ذكر تجارب جامعة الملك خالد في هذا المجال. كما تم في جلسات أخرى شرح لمميزات Drupal ونقل بعض التجارب في التعامل مع Drupal مثل تجربة بناء Module خاص وتجربة بناء تطبيقات تتعامل مع Drupal وبناء متجر إلكتروني بالاعتماد على أحد توزيعات Drupal.
- الجلسة الافتتاحية
تحدث فيها د. عبدالله الوليدي (عميد عمادة التعليم الالكتروني والتعلم عن بعد بجامعة الملك خالد) و د. سالم العلياني (المشرف العام لتقنية المعلومات بجامعة الملك خالد CIO) عن أهمية المصادر المفتوحة وإمكانيات Drupal حسب تجربتهم لتشغيل التطبيقات واستيعاب عدد مستخدمين كبير حسب ماهو موضح في الصورة الموضحة أدناه. كما تحدث د. سالم عن أن هذا الـ Camp سيكون بداية لأنشطة مستمرة تدعم مجتمع Drupal. وقمت بتدوين بعض الاقتباسات من هذه الجلسة وكان أبرزها “د. عبدالله الوليدي: أهم الأمور عند تبني المصادر المفتوحة هو وجود الدعم من مجتمع المطورين للنظام الذي سيتم تبنيه”.
ثم بعد هذه الجلسة تم تقسيم الجلسات على قاعتين منفصلتين يتم عرض جلسة مختلفة في كل قاعة بالتوازي.
- تحليل النظام وإدارة المشاريع
تحدث فيها م. وائل سعيد عن تجربتهم في العمل بطريقة Agile لإدارة المشاريع وقاموا بالعمل على عدد من الأنظمة المساعدة مثل (JIRA) كما تحدث عن وضرورة وجود Scrum Master ومهمته يقوم بكتابة وتوزيع المهام بين الفريق. وترتيب المهام وربطها بما يسمى Story. كما قام م. أحمد الكيلاني بذكر طريقة الـ Waterfall ووضح بأنها مفيدة للمشاريع القصيرة والواضحة تماماً.
وقد شاركت بسؤالين في هذه الجلسة:
١- هل Scrum Master الذي يقوم بتنظيم المهام بين الفريق يقوم بأعمال أخرى غير تنظيم المهام بين الفريق؟ وكانت الإجابة بأنه متفرغ تماماً لإدارة ومتابعة جميع مهام الفريق وتوزيع المهام بينهم ولايقوم بأعمال تطويرية ولا كتابة Code.
٢- حسب تجربتي مع JIRA لاحظت وجود Story و Epic وكما يبدو لي أن لهما نفس المفهوم من ناحية احتواء عدد من المهام، فما هو الفرق الحقيقي بينهما؟ .. وكانت الإجابة بأن Story لايمكن أن تجزأ على أكثر من Sprint .. بينما الـ Epic قابلة للتجزئة على أكثر من Sprint والـ Epic تعتبر هدف أبعد وأكبر من الـ Story.
- تبني استخدام البرمجيات مفتوحة المصدر في السعودية
وقام بتقديمها م. عبدالله من برنامج يسّر، ووضح بأن يسّر تقدم الدعم والإرشاد للجهات الحكومية وتدعم استخدام البرمجيات مفتوحة المصدر. وأن لدى البرنامج مبادرة لعمل مؤتمر سنوي للمصادر المفتوحة يتم فيه طرح التجارب والخبرات.
وكانت هناك بعض المداخلات أبرزها ماذا تتوقع يسّر من الجهات الحكومية؟ وكانت الإجابة بأنها تطمح كما تطمح له القيادة العليا لهذا البلد بالاستقلالية التامة في أنظمتها لجميع الجهات عن الشركات الخارجية والمنتجات المغلقة بالاعتماد الكلي على الأنظمة المفتوحة المصدر.
وقد شاركت بمداخلة في هذه الجلسة: - شكرت فيها برنامج يسّر على وضع نظام Drupal ضمن قائمة البدائل التي قام برنامج يسّر بنشرها عن البرمجيات المفتوحة، وتمنيت لو يكون ضمن مبادرات البرنامج رعاية المطورين لبناء ونشر إضافات للأنظمة المفتوحة المصدر تخدم الاحتياج المحلي ليكون هناك خيارات وجهود موحدة لبناء إضافات على المشاريع المفتوحة المصدر يستفيد منها الجميع محلياً.
- تطوير وحدات Drupal 8
كانت عبارة عن جلسة حية ومتقدمة لتطوير Module شرح لنا فيها م. يسري طريقة تعامل Drupal عند تشغيل النظام Bootstraping وترتيب الإجراءات التي تتم متتالية قبل عرض الصفحة كماهو موضح في الصورة أدناه. كما قام م. يسري بتوضيح اعتماد Drupal 8 على الـ Annotations عند كتابة Function وكتابة وصف وتعريف لجميع الـ Parameters فهذه طريقة Symfony Framework في تجبر المطور على كتابة وصف وتعريف. كما قمت بتطبيق عمل موديول لغرض التجربة فقط مع م. يسري.
- تطوير تطبيقات الهواتف الذكية باستخدام Drupal 8 و ionic framework
قام م. عبدالرحمن ابراهيم بعرض تجربة برمجة تطبيق بالاعتماد على التقنيات التالية AngularJS و Apache Cordova باستخدام Ionic Framework وبأنه يلبي الحاجة إلى عمل تطبيق بطريقة سريعة.
وبعد الجلسة حصل لنا نقاش مطول تطرقنا فيه إلى تحديات Hybrid Applications وتسائلت عن تجربتهم مع أداء القوائم الطويلة Too many records in list view وذكرت تجربتي في برمجة تطبيق GoKSU عند وجود العديد من النتائج في List بأن ذلك يجعل تصفح التطبيق بطيء مما اضطرنا إلى تقليص عدد النتائج إلى أقل من 30 نتيجة وعمل Pagination. وقد ذكر م. عبدالرحمن بأن المشروع الذي عملوا عليه كان فقط تجريبي ولايحتوي على نتائج كثيرة. وقد ذكر خاصية تسمى Reserved يتم عملها لجلب بيانات الـ Call الغير ضرورية والتي يكون هناك حاجة لإستدعاؤها مرة واحدة فقط عند استخدام التطبيق.
- تحويل دروبال إلى التاريخ الهجري
تحدث فيها م. رائد الخريجي عن تجربة جامعة الملك سعود في تطوير Module يعرض التاريخ الهجري كتاريخ معتمد لمحتويات الموقع، ويتكامل باحترافية مع الـ Views، وله لوحة تحكم تعطي خيارات موسعة لإدارة تطبيق التاريخ الهجري في الموقع. ووضح بأن بداية هذا الـ Module كانت بسبب أن التاريخ الهجري دائماً مايكون متطلب في العديد من المواقع التابعة للجامعة وقد كان يتم عمل ذلك بواسطة استخدام Function تحويل التاريخ بشكل مباشر عند العرض إلى الهجري ويتم نقل هذه الـ Function إلى مشاريع أخرى بشكل يدوي، ثم بدأت فكرة هذا الموديول لتسهيل عملية إعادة الاستخدام ولمشاركة مجتمع Drupal المحلي الاحتياج القائم لوجود دعم للتاريخ الهجري. وقد قام م. يسري بالمداخلة بأن جامعة الملك خالد أيضاً قامت بتطوير Module للتاريخ الهجري بمواصفات شبيهه وشجع على ضرورة توحيد الجهود للوصول إلى نتيجة أفضل، كما اقترح دعم طريقة حساب التاريخ بالاعتماد على الـ API المقدم من تقويم أم القرى ورحب بذلك م. عبدالله باملهس وأبدى اهتمام بتطبيق ذلك. كما دعى م. عبدالله إلى أنه يأمل أن يكون هناك مشاركة من المجتمع لتطوير هذا الـ Module إما بطريقة رفع Patches أو بإقتراح الأفكار من خلال قسم الـ Issues التابع للـ Module.
- Drupal للمتاجر الإلكترونية
تحدث فيها م. عبدالعزيز الصفدي عن Drupal Commerce وقام بعمل تجربة حية لبناء موقع وسهولة تركيب الإضافات المساعدة للمتجر التي تتم بسلاسة من خلال نظام Drupal 8.
- نقاشات جانبية
جلسة نقاشات جانبية قمت بها مع م. يسري مطور Drupal والمهندس المسؤول عن البنية التحتية في جامعة الملك خالد، وتم خلال هذه الجلسة مناقشة العديد من المنهجيات المتبعة لتطبيق أفضل الطرق الممكنة لتشغيل Drupal وأوضح م. يسري بأن لديه قناعة بأن الشركات عموماً لديها استراتيجيات تقترحها للعمل على Drupal وهي من منظور Business بحت، وأن مجتمع المطورين لديه استراتيجيات يعمل بها بغض النظر عن ماتنصح به الشركات وخصوصاً الـ Stack الذي تنصح به الشركات عادة مايكون مختلف عن ماينصح به الخبراء من المجتمع، حيث أن الشركات تعتمد التقنيات المجربة والموثقة وتعمل على حل مشاكلها وتحدياتها وتدعمها، بينما المجتمع يعمل على الوصول لأفضل النتائج باستخدام التقنيات الحديثة. وجرى خلال النقاش التطرق لأهمية العمل على Zend Cache كبديل لـ APC لتسريع عملية معالجة أكواد الـ PHP .. وتسائلت عن ما إذا كان opCache المتطلب في Drupal 8 ضمن هذه القائمة وأوضح المهندس بأنه أفضل من APC بمراحل!
بالإضافة إلى الجلسات التالية التي للأسف لم أتمكن من حضورها بسبب أنها كانت في نفس وقت جلسات أخرى أو وقت نقاشات جانبية قمنا بها بعد الجلسات:
نظرة عامة على دروبال
بناء موقع باستخدام دروبال 8
قوالب دروبال
واجهة المستخدم وتجربة المستخدم والتصميم
مؤشرات الأداء الرئيسية والتحليلات
استخدام مبدأ DRY في دورة حياة مواقع Drupal
في الختام أجدد شكري وتقديري لجميع من ساهم في تحقيق هذه الفعالية ولجميع من تواصلت معهم بشكل مباشر خلال اللقاء ومنهم الدكتور سالم العلياني و م. يسري و م. وائل و م. عبدالرحمن و م. أحمد وأشكرهم جزيل الشكر على تعاونهم.
هنا الـ Hashtag الخاص بدروبال كامب جامعة الملك خالد للمزيد من الصور والمعلومات Twitter #kkudrupalcamp