Computer Science  

العودة   Computer Science > منتدى المقالات العلمية والتقنية والابحاث العامة

« آخـــر الـــمـــشـــاركــــات »

         .... نصيحتك اليومية .... [ الكاتب : ذلتهم عيوني - آخر الردود : محےـمد سعےـيد - عدد الردود : 39 - ]       »     ...........سجل حضورك اليومي............. [ الكاتب : @يوميات@رجل@مهزوم@ - آخر الردود : محےـمد سعےـيد - عدد الردود : 387 - ]       »     بخصوص دورات سيسكو [ الكاتب : Br@veHe@rt - آخر الردود : عـــازفة الكـيـبـورد - عدد الردود : 72 - ]       »     سجل حضورك يومياً بالصلاة على النبي محمد ... [ الكاتب : Hacker2 - آخر الردود : ذلتهم عيوني - عدد الردود : 3462 - ]       »     هل من جديد ؟؟ [ الكاتب : data - آخر الردود : ذلتهم عيوني - عدد الردود : 2 - ]       »     تحميل Skype 4.2.0.169 Final على اكثر من ... [ الكاتب : جلال الدين محمد - آخر الردود : محےـمد سعےـيد - عدد الردود : 1 - ]       »     خطة لحرق القران الكريم [ الكاتب : إشراق - آخر الردود : محےـمد سعےـيد - عدد الردود : 4 - ]       »     سجل اسمك بذكر الله [ الكاتب : judymas - آخر الردود : محےـمد سعےـيد - عدد الردود : 101 - ]       »     عيد سعيد [ الكاتب : data - آخر الردود : محےـمد سعےـيد - عدد الردود : 3 - ]       »     أسئلة [ الكاتب : MA-hac - آخر الردود : طاهر - عدد الردود : 269 - ]       »    

 
 
أدوات الموضوع انواع عرض الموضوع
قديم 01-19-2009, 01:55 PM   #1
VECTO®MAN
The Seeker of Wisdom
 
الصورة الرمزية VECTO®MAN
 






Post كيفية البرمجة بطريقة البرمجة المزدوجة


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





كيفية البرمجة بطريقة البرمجة المزدوجة

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


الخطوات
  1. اختارا مهمة معرفة بشكل جيد قبل أن تجلسا ، يجب أن تكونا قادرين على إنهاء هذه المهمة خلال ساعة أو ساعتين ، على سبيل المثال " إضافة تاريخ الصيانة إلى شفرة قاعدة بيانات الشاحنات " .
  2. اتفقا على هدف صغير واحد في كل مرة : شيء يمكن إنجازه في دقائق قليلة ، إن صياغة المشكلة في عبارات مفهومة يساعدك على التركيز و يشجع الطرف الأخرى على المشاركة ، و هي تضمن أن كلاكما يعرف ماذا يفترض أن تفعلان الآن .
  3. اعتمد على شريكك و قدم له المساعدة:
    • إذا كنت أنت القائد، أي الذي يقوم بالطباعة على لوحة المفاتيح، فأكمل المهمة الصغيرة الحالية بأكبر سرعة ممكنة ، تجاهل المشاكل الأكبر ، وثق بالمراقب لأن يكون طوق النجاة بالنسبة لك في حال الخطأ.
    • إذا كنت المراقب ، فقم بقراءة ومتابعة الشيفرة أثناء كتابتها. عملك هو التدقيق فيما يكتبه القائد ، فيجب أن تبقى متنبها للأخطاء والثغرات البرمجية المتوقعة في كل قسم من الشيفرة، لا تدع شيئا يفوتك ، فكر في العلل الممكنة ، و في المشاكل الكبيرة ، و في كيفية تبسيط و تحسين التصميم ، نبه القائد على الأخطاء ، و الشفرات التي تجدها غير قابلة للقراءة ، وإذا وجدت فكرة لحل المشاكل الكبيرة أو لتحسين التصميم ، انتظر حتى تنتهي المهمة الصغيرة الحالية ثم اعرض أفكارك ، لا تشتت القائد أثناء أدائه للمهمة الحالية ، على سبيل المثال إذا رأيت أن الشفرة الحالية ستفشل عند إدخال معطيات فارغة null ، اكتب في ورقة " أضف وحدة اختبار للمدخلات الفارغة " .
    • إذا كنت المراقب، ابتعد عن الاهتمام الزائد بالشيفرة ، القائد يجب أن يفكر في كيفية تحقيق الهدف الحالي فهو ليس مجرد آلة طباعة ، و يجب عليك كمراقب أن تستغل حقيقة أنك مفرغ من التفاصيل كي تفكر بمستوى أعلى ، فقولك " هذا يبدو جيدا ، والآن ما رأيك أن تكتب شفرة لمعالجة حالة لما يكون المؤشر الممرر فارغا ؟ " أفضل من "حسنا ، الآن اكتب '....if (s == NULL) { return'".
  4. تحدث كثيرا، تحدث عن ماذا تفعلان الآن ، اطلب تنفيذ فكرة ، اطلب طريقة أحسن لحل المسألة الحالية ، اطرح أفكار بديلة ، أشر إلى مدخلات لا تغطيها الشفرة الحالية ، اقترح أسماء أوضح للمتغيرات و الدوال ، اقترح طرق لتنفيذ الشفرة في خطوات أصغر ، اخبر القائد عن الواجهات البرمجية المطلوبة .. إلخ. طبعا لا بد أن تكون مستمع أيضا ، فعندما يجتمع شخصين بشكل جيد فإنهما يتشاركان الحديث بدون توقف ، و هذه بعض الأشياء العامة لتقولها في البرمجة المزدوجة :
    • هل تعتقد أن هذا الاختبار صحيح ؟
    • هل يبدو هذا صحيح لك ؟
    • ما التالي ؟
    • ثق بي ( عندما يكون كتابة شفرة صغيرة أسهل من الكلام ) .
  5. ابقيا على تزامن قدر المستطاع ، عندما تعملا معا ، ستجد نفسك في بعض الأحيان غير متزامن مع شريكك: غير واثق ماذا يفعل شريكك أو تصبح المهمة الحالية غير واضحة بالنسبة لك ، هذا شيء عادي و عندما يحصل زامن نفسك من جديد مع شريكك ، إن سر نجاح البرمجة المزدوجة هو العودة للتزامن بشكل بشكل سريع (في غضون ثواني أو دقيقة من ملاحظة أنك غير متزامن مع شريكك ) ، إذا أمضيت خمسة دقائق أو أكثر بدون تزامن فربما تصبح تكتب الشفرة بشكل منفرد مما يجعلك تخسر فائدة البرمجة المزدوجة .
    • قدر الإمكان قل ماذا تنوي أن تفعل قبل أن تشرع فيه ، و الأفضل أن تسأل شريكك ، على سبيل المثال " هل نكتب الآن اختبار المؤشرات الفارغة ؟ " ، في بعض الأحيان تحتاج أن تكتب شفرة كي تفهم أفكارك بشكل أفضل و هذا لا بأس به ، بعد ذلك قل لشريكك " أحتاج أن أكتب هذه كي أرى هل هذه فكرة جيد أم لا " بهذا يكون لدى شريكك فكرة واضحه عما تفعل ، لا تنسى من الأفضل أن تجعل مثل هذه الاكتشافات في أقل من دقيقة .
    • عندما يسألك شريكك هل توافق على فكل شي مثل " هل نكتب الآن اختبار حالة المدخلات الفارغة ؟ " أنا أعتقد أنه يمكن حذف هذه الدالة الآن ، هل توافق على ذلك ؟ " ، أجب بنعم أو لا مباشرة بشكل واضح .
    • لا بأس أن تمرر لوحة المفاتيح بين القائد و الملاحظ بشكل متكرر ، على سبيل المثال كتابة شيء أسهل بكثير من أن تحاول شرحه بالكلمات ، فلذا دع الملاحظ يأخذ لوحة المفاتيح و يكتب ما يريد ، ثم يرجعها لك أو حتى يصبح هو القائد و أنت الملاحظ على حسب الظروف .
  6. خذا لحظة للاحتفال بعد أكمال المهام أو التغلب على المشاكل ، على سبيل المثال تبادلا التهاني كل مرة تنجح شفرتكما من اجتياز اختبار .
  7. تبادلا الأدوار باستمرار ، على الأقل كل نصف ساعة ، هذا سيساعدكما على الإندماج و التركيز على مستوى التفاصيل أو الصورة الأكبر ، إن الاستمرار في دور واحد سينهكك و يقتل التركيز خصوصا إذا كان الدور هو المراقب .
فكرة/أفكار مفيدة
  • تصرف بشكل مهذب جدا ، فعندما يشير شريكك إلى خطأ ، قل له " شكرا " ، و عندما تلاحظ خطأ ، نبهه بلطف لتجنب الإساءة إلى كرامته ، الأخطاء و تصحيحها هي جزء طبيعي من البرمجة ، ولا تمثل أي دليل على ضعف قدرات الشخص ، كمراقب اترك القائد ينهي كتابة السطر ثم أشر إلى الخطأ ، الكثير من الأشخاص يجدون الإشارة إلى الأخطاء أثناء الكتابة أمرا مزعجا ، و يكونوا أكثر تساعدا عند تصحيحهم بعد الانتهاء من الكتابة .
  • اكتب وحدة الاختبار اولا,قبل الشروع في كتابة الشفرة ( إذا كانت الشفرة يمكن اختبارها) ، وحدة الاختبار تساعد على تعريف الهدف الصغير التالي بطريقة كلاكما تفهمانها لأنكما تستطيعان رؤية الشفرة ، بعد ذلك سيكون الهدف التالي هو " اجتياز هذا الاختبار " ، إن تعلم طريقة التطوير المدفوعة بالاختبارات أمر صعب في البداية ، ولكن العمل مع شخص متعود على هذا النوع من التطوير بطريقة البرمجة المزدوجة سوف يساعد على اكتساب الخبرة بسرعة جيدة.
  • الفرق بين تجربة ناجحة وأخرى فاشلة في البرمجة المزدوجة هو تركيز الانتباه. انظر إلى الشاشة عندما يكتب القائد شيء ، عندما يتكلم شريكك أصغ له ، لا تتناول حبوب الإفطار ، لا تتطلع على بريدك ، لا تلقي نظرة على DIGG ، لا تترك التفاصيل تفوتك ، و عندما تركز انتباهك و تتكلم و تستمع سوف تندمج في العمل و ستستمتع بأسلوب البرمجة المزدوجة ، ولكن عندما تفشل أو تفشلا في تركيز انتباهكما فستفقدان ميزة البرمجة المزدوجة و ستجدان أنفسكما تعملان كلا على انفراد.
  • اعملا على طاولة تسهل عملية تبادل لوحة المفاتيح و تبادل الأدوار ، و أفضل شيء هو الطاولة المستطيلة البسيطة.
  • إذا كنتما مغرقان في الناحية التقنية ، حاولا استخدام لوحاتا مفاتيح و فأرتان. "التحويل" بين الأدوار سيصبح أسهل بكثير.
  • الحواسيب المحمولة هي أقل مناسبة للبرمجة المزدوجة بسبب صغر الحجم و صعوبة الرؤية من الزاوية ، ولكن في وسعكما استخدمهن ، لتغلب على مسألة الرؤية يمكن أن يجلس المراقب خلف القائد بدلا عن أن يكون بجانبه .
  • لا تتجادلا على المسائل معمارية الشفرة أو المسائل الأقل أهمية مثل كم يفترض أن يكون الهامش قبل الأقواس ، يجب أن تحدد هذه الأشياء قبل أن تقترنان .
  • يجب على الشخص الذي يملك معرف أقل بالنظام أو اللغة أن يقوم بأغلب أعمال الكتابة ، حتى يبقى مركزا في المشروع ، الشخص يتعلم أكثر بواسطة أصابعة عن عيناه.
تحذيرات
  • إذا كانت تجربة البرمجة المزدوجة بين شخصين أحدهما خبير و الآخر مبتدئ ، فلابد من الخبير أن يستعد جيدا لاتخاذ دور المرشد و الموجه لشريكه، وإلا لن يكون هناك تناغم بينهما خلال العمل




ترجمة للمقال:How to Pair Program
بواسطة:
عبدالله محمد (Googlian)
زايد السعيدي



توقيع : VECTO®MAN
يا غربة الروح في دنيا من الحجرِ
و الثلج و القار و الفولاذ و الضجرِ
يا غربة الروح لا شمس فأئتلقُ
فيها و لا أفقُ
يطير فيه خيالي ساعة السحر
......
يا غربة الروح في دنيا من الحجرِ
مسدودة كل آفاقي بأبنيةٍ
سود و كانت سمائي يلهث البصرُ



VECTO®MAN غير متواجد حالياً   رد مع اقتباس
 

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
أسئلة إمتحان البرمجة المرئية سما منتدى علوم الحاسوب 13 02-20-2009 08:21 PM
افضل طريقة لربط قاعدة البيانات بلغة البرمجة #c Echo Of Hush منتدى علوم الحاسوب 8 01-05-2009 08:29 PM
تعلم البرمجة في عشرة أعوام !!! VECTO®MAN منتدى المقالات العلمية والتقنية والابحاث العامة 2 01-03-2009 01:14 PM
تعلم الانجليزية بطريقة سهلة admin منتدى تعلم اللغة الانجليزية 2 01-01-2009 09:33 PM
محاضرات الدكتور غالب الجعفري في مادة البرمجة الكائنية (باوربوينت) Sub-Zero منتدى علوم الحاسوب 7 12-29-2008 08:26 PM


الساعة الآن 11:37 AM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd موقع