أخر مشروع لنا (فريق مكون من 4 مبرمجين) كانت تطبيقاََ يشتغل على لوحة أندرويد يمكن العامل في شركة التسويق من تصوير المنتجات المعروضة لحرفائه في مختلف نقاط البيع و رفعها على السرفر و هو مكون من ثلاثة أجزاء رئيسية :

الواجهة الخلفية

و هي عبارة عن طبقتين طبقة ال Persistence لجميع جداول قاعدة البيانات (37 جدول) و طبقة تعطي الدخول الى قاعدة البيانات عن طريق HTTP و هي Full Restful..

الواجهة الأمامية

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

تطبيق الجهاز اللوحي

و هو عبارة عن تطبيق يستعمله عملة شركة التسويق لتصوير المنتجات و طريقة عرضها و كميتها في المخازن في مختلف المحلات و المولات

دخل هذا المشروع حيز الاستغلال يوم 1 أغسطس (منذ شهر) و تكلفته الجملية حوالي 7000 دولار أمريكي و بما أنه أول مشروع أشارك فيه بهذا الحجم (50 مستعمل يدخلون يوميا و يشتغلون بطريقة مكثفة) فقد أردت نشر تجربتي و ماذا تعلمت و تتلخص في النقاط التالية :

  • يجب أن تكون هناك صداقة بين الفريق لتجاوز الضغط و الصعوبات المختلفة.

  • يجب أن تولى لل Tests الأولية المطلقة و بجميع أنواعها و طرقها و حالاتها (unit tests, Integration tests, Non regression Tests) و الحمد لله منذ التسليم النهائي لم يحصل أي خلل تقني أو وظيفي.

  • لا تكتب سطراََ برمجيا واحداََ قبل أن تتفق مع العميل على جميع التفاصيل و تجعل جميع أجزاء المشروع ووظائفه في مستند مفصل يكون مرجعا لك.

  • GIT وسيلة رائعة و لكن يجب العمل بال Branches و التنسيق المطلق بين أعضاء الفريق في pull و merge وcommit و push.

  • ابقاء السورس في مستودع مركزي موحد و التصرف الجيد فيه كي لا يخرج عن السيطرة (بين ما كتبناه و المكتبات المستعملة مشروعنا يتجاوز المليون سطر).

  • تصورنا نظرياََ أن بعض الجداول في قاعدة البيانات مع مرور السنوات قد تتجاوز ال 15 مليون سطر و بالتالي فان العمل بالطرق العادية في الاستعلام و البحث (For loops, ArrayLists, Array) هو نوع من العبث و بالتالي لجأنا الى ال Hashtables و Hashmaps بنينا عليها جزءََا كبيراََ من المشروع (تخفض في complexity من n الى 1 ) .

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