وسام البهنسي

مدونة مبرمج معماري

العمل الجماعي باستخدام أدوات التشارك

بسم الله الرحمن الرحيم،

 

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

 

هناك ثلاثة أساليب مرّت علي خلال تجوالي وعملي في مثل هذه المشاريع. سأتحدث عن كل منها مبرزاً محاسنها ومساوئها:

 

الأسلوب الأول

اعتماد المنتدى كطريقة لتبادل الملفات بشكل كامل. فلنفرض أن الفريق مؤلف من ثلاثة مبرمجين: جابر، عماد، وصالح. في هذا الأسلوب يبدأ جابر بالعمل، ثم يرسل كامل ملفات المشروع إلى المنتدى. ثم يلتقط عماد التعديلات ويكمل عليها، ثم يرفع التعديلات الجديدة إلى المنتدى، ليلتقطها صالح ويزيد عليها من عنده… وهكذا.

 

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

 

 

الأسلوب الثاني

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

 

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

 

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

 

مخطط مشاركة الملفات من خلال منتدى مع مشرف 

 

هذا هو الأسلوب الذي اتبعـَتـْه الشبكة العربية لمطوري الألعاب في مشروع لعبة وادي الملوك.

 

 

الأسلوب الثالث

اعتماد أداة تشارُك لإدارة التعديلات ونشرها دون الحاجة لمشرف. كمثال، البرنامج Visual SourceSafe، أو بديله الأحدث Visual Studio Team System من مايكروسوفت. و Perforce و AlienBrain و SVN و Mercurial. كلها تقوم عملياً بدور مشابه. باختصار، هي تضع نفسها بدلاً من المشرف في الأسلوب السابق.

 

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

 

المخطط أدناه مثال على مشروع جماعي باستخدام هذا الأسلوب. المخطط يفترض استخدام نظام Mercurial مع موقع كود بليكس لمشاركة الملفات (اضغط على الصورة لتكبيرها).

 

مخطط مشاركة الملفات من خلال أداة تشارك

 

هذا الأسلوب مستخدم في مشروع لعبة عبر السدم في الشبكة العربية لمطوري الألعاب. حيث تم اعتماد خدمات موقع كود بليكس مع نظام ميركوريال لتسهيل التشارك بالكود وملفات المشروع الأخرى كملفات الـ 3D والإكساءات والأصوات وغيرها.

 

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

التعليقات (2) -

  • وسيم

    20/06/2010 04:52:13 م | الرد

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

  • الجزائر

    26/08/2010 06:03:27 م | الرد

    بارك الله فيك يا أستاذي على المعلومات المفيدة
    مخطط مميز وطرق مميزة في التواصل وتبادل الخبرات وإكمال المشاريع

    لكن ربما الشات أو برنامج محادثة كـ Skype
    أو Facebook
    قد يكون أفضل بكثير من المنتدى في التواصل

أضف تعليقاً

Loading