اختبار أيلتس IELTS              التسجيل لدورات الترقية العلمية والترفيع              دليل ارشادي للتسجيل على اختبار (IELTS):              اسماء المشاركين في دورة الترقيات العلمية              التسجيل لدورات الترقية العلمية والترفيع

 تفاصيل الخبر

السيطرة على المراجع - السيطرة على الكود المصدري

2022-04-28

السيطرة على المراجع - السيطرة على الكود المصدري


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

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

لماذا نحتاجها:

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

1-    حفظ سجل كامل لكل التغيرات الحاصلة على جميع الملفات. يقوم النظام بتخزين إصدارات الملفات عند كل تغيير يتم إجراؤه. الإصدار ليس نسخة كاملة من اللف، ولكنه مجرد ما التغير الحاصل منذ الإصدار الأخير. يقوم VSC بإنشاء إصدار جديد من المستند في كل مرة يقوم المطور بإجراء تغييرات عليه.

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

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

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

5-    أتمتة عملية تطوير البرمجيات باستخدام DevOps. تستخدم أنظمة السيطرة على المراجع كأحد أدوات DevOps وذلك من اجل اتمتة دورة حياة تطوير البرامج. حيث وجود مستودع موثوق به يحتوي على اخر التحديثات يجعل عملية إدارة عملية تطوير البرامج اسهل واقل تعقيدا تقليل من الحاجة الى من التفاعل البشري.

هيكلية العمل

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

1-مستودع محلي: في السابق، تم الاحتفاظ بمستودع محليًا ضمن الحاسبة الواحدة ويمكن فقط للمالك التفاعل معه. هذا النوع يحد من تعاون او العمل المشترك بين اعضاء الفريق.

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

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

4- المستودع الموزع: حيث يكون لكل مستخدم/مطور مستودع محلي خاص به يتم تحديثه باستمرار ويتزامن في الغالب مع مستودع مركزي عبر الإنترنت يتم مشاركته مع الآخرين.

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

التحكم المركزي في الإصدار

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

1- إذا حصلت مشكلة ما تمنع المطورين من الوصول الى الخادم فان المطورين لن يكونوا فدرين على حفظ التغييرات والعمل على جانب اخر من المشروع.

2- سيضيع كل شيء في حالة تلف المستودع المركزي.

3- بسبب وجود نسخة واحدة، يجب أن يكون هناك قيود على من المسموح له بإجراء التغيير او الوصول اليها. هذا التقييد سيؤدي إلى تقليل عدد المشاركات من قبل المطورين.

 

التحكم في الإصدار الموزع

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

- المرونة والتي تأتي من سهولة العمل بشكل مستقل، ولكن في بيئة تعاونية،

- خدمات الاستضافة عبر الإنترنت، مثل GitHub، التي تتيح الوصول عن بُعد للفرق في جميع أنحاء العالم،

- المتاحية، سيكون المستودع متاحًا دائمًا عبر الإنترنت، حتى لو كان المحلي تالفًا،

- لا يتطلب الوصول إلى خادم مركزي لإجراء التغيير،

- يمكن إجراء التفرع والدمج بسهولة من دون أي خسارة.

 

مفهوم التفرع والدمج

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

في الشكل أعلاه، يمكنك رؤية إنشاء فرع جديد بالاعتماد على (C2) وتم إجراء تعديلات لإنشاء C3 و C5 على الفرع الجديد. ومع ذلك، لم تتم إضافة التغيير الجديد إلى الفرع الرئيسي. بعد C5 تم دمج الفرع الجديد مع الفرع الرئيسي لإنشاء C6 . بعد الدمج، يتم إضافة التعديلات التي تم إجراؤها على الفرع الجديد إلى الفرع الرئيسي.

Git

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

عمل تلك الأداة مشابه لعمل الأنظمة الموزعة. في كل مرة يقوم المطور بإجراء تغيير, يقوم Git إما بتخزين مرجع للملف القديم إذا لم يتغير أو يأخذ نسخة جديدة للملف الذي تم تغييره. تتم هذه العملية بواسطة Git محليًا على كمبيوتر المطورين (متوافق مع Linux و Windows و macOS) ، ولكن يمكن ربطه بمستودع بعيد (GitHub ، BitBucket ، ...). لتتبع التغييرات التي تم إجراؤها على الملفات، يستخدم Git  خوارزمية ال SHA-1 لأخذ  (checksum) لمحتوى الملفات. يساعد هذا Git في اكتشاف ما إذا كان هناك أي تغيير تم إجراؤه على الملفات دون الحاجة إلى مقارنتها بشكل شامل.

فقدان البيانات ليس بالأمر السهل عند استخدام Git. بعد إجراء التغييرات، يخزن Git الإصدار الجديد من الملفات دون تعديل الإصدار القديم ويخزن المعلومات في قاعدة بيانات. لهذا السبب، يوصي المطورين المحترفين اجراء (commit) متكرر بعد الانتهاء من تنفيذ مهمة معينة. للتحقق من حالة المستودع المحلي ، يوفر لأit ثلاث حالات وصف:

- Modified: هذا يعني أن المحتوى الحالي للملف لا يتطابق مع المحتوى الموجود في المستودع بسبب بعض التغييرات التي تم إجراؤها.

- Staged: الملف الذي تم تعديله والتحقق منه أصبح جاهزًا لل commit. هو قائمة بالملفات التي سيتم اجراء commit عليها.

- Committed: يعني أن التغيير قد تمت إضافته إلى المستودع وتم تخزين المعلومات في قاعدة البيانات.

بدءًا مع Git

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

 المزيد من الاخبار

 تامين البيانات باستخدام التوليد الديناميكي العشوائي لمفتاحي التشفير الاولي والثانوي بالاعتماد على خوارزمية التشفير المتقدم لانظمة ادارة البيانات AES

 تشفير الصور الملونة بمفتاح تم إنشاؤه باستخدام Magic Square

 تأثير حجم الشبكة والكثافة على اختيار نصف قطر المنطقة في بروتوكول توجيه المنطقة (ZRP)

 تحديد الدليل الرقمي في البيانات الغير متجانسة باستخدام تقنيات التجميع

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

 حل مشكلة توجيه المركبات مع اإلطار الزمني إعتمادا على الحوسبة الكمية التطويرية

 توليد اختبارات محفزة للاستثناءات من خلال تحديد دوال الكفاءة المتكيفة

 تأثير الرغبات المختلفة لاصحاب الدور السكنية لنظام الكتروني يقوم بتحسين استهلاك الطاقة

التصويت

ما هو رائيك بمستوى الاستفادة من موقع الجامعة الالكتروني؟

 ضعيف
 جيد
 جيد جدا

مجموع التصويتات 510

الاساتذة والاداريين


المركز
اللقب
الاسم


خريجي الكلية

المركز
الشهادة
السنة
النوع
الجنس
الاسم


طلبة الكلية

المركز
المرحلة
الشهادة
النوع
الجنس
الاسم