في الآونة الأخيرة .. كثير من التغريدات تكلمت عن أنظمة الـ Version Control وعلى رأسهم نظام الـ Git
لكن أغلب هذه التغريدات تناولت الموضوع من جانبه التطبيقي والخاص بالمبرمجين فقط .. لكن كعادتنا .. رح نتكلم اليوم من مستوى أعلى شوي .. مستوى مهندس البرمجيات
#هندسة_البرمجيات #git #vcs https://t.co/sCuT5GSAYA
الـ Architecture اللي تعتمد عليه هذه الأنظمة عموماً مشتق من مبدأ الـ Observer Pattern واللي اعتمدنا عليه في إنشاء فكرة الـ Event-Sourcing واللي تعتبر حجر الأساس في بناء أنظمة الـ Version Control .. الموضوع مرتبط بشكل كبير وتكلمنا عنه من قبل في هذه السلسلة
https://t.co/o5dIAqV5iv
ما أتوقع نحتاج نذكر القيمة اللي أضافتها هذه الأنظمة على آلية سير العملية البرمجية وكيف أتاحت الفرصة لوجود مصطلح البرمجة عن بعد أو الـ remote programming إنه ينتشر ويصير أسهل من قبل .. أنظمة الـ VCS تعدت فوائدها لتشمل الـ Business بشكل عام .. قللت علينا الوقت والتكاليف بشكل كبير https://t.co/B6hpCx3ZL2
لكن خلونا نرجع لورا شويتين ? .. ونشوف التطور التقني اللي حصل على هذه الأنظمة من بدايتها إلى وقتنا الحالي .. واللي نقدر نلخصها في 4 فترات رئيسية .. بدأنا بطريقة يدوية بحيث نجمع فيها الملفات المختلفة من جميع المطورين وبعدها نحاول ندمجها مع بعض بحيث نضمن ما يكون في أي Conflicts
في داعي نتكلم على صعوبة هذه المهمة ؟ على فكرة .. كانت هذه المهمة مخصصة لأشخاص .. هذه هي وظيفتهم فقط .. جمع كل الملفات .. أدمجها مع بعض وحل مشاكل الـ conflicts .. وبعدها إرجع تأكد إنه كل الـ unit tests اللي كانت ناجحة قبل الدمج ناجحة بعده .. أقل ما يقال عنها طريقة بدائية جداً