02 سبتمبر 2017

برامج إدارة التحكم بالنسخ البرمجية

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

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

ومن اشهر هذه البرامج (لاحظ أني اتكلم عن التحكم بالكود وليس المشروع ككل)
  1. Git
  2. Subversion
  3. TFVC
وتصنف برامج التحكم بالنسخ عن طريق آلية التخزين إلى قسمين رئيسيين
  • برامج الحفظ المركزي :والمقصود به أن تحفظ الأكواد ويتحكم بإدارتها من سيرفر رئيسي وهي مناسبة للتحكم بعمل المبرمجين ضمن المنظمة وهي غالبا مكلفة وتحتوي على مميزات أكثر تتيح ادارة المشروع البرمجي بأكمله مثل TFVC.
  • برامج الحفظ الغير مركزية: وهي غالبا مفتوحة المصدر وتعطي للمبرمج حرية اكبر في التعديل على كود دون الرجوع لأحد مثل Git.
 تحياتي