SlideShare a Scribd company logo
‫تعريف ببعض أدوات مبرمج ‪PHP‬‬
‫في عالم البرمجيات الحرة المفتوحة المصدر‬
               ‫م. خالد الشمعة‬
‫نقاط هذا العرض التقديمي‬
                            ‫مشروع ‪ PHP‬واللغة العربية‬    ‫•‬
            ‫نظام ‪ CVS‬لحفظ وإدارة الشيفرة المصدرية‬       ‫•‬
    ‫نظام ‪ PHPUnits‬لمتمتة عمليات الفحص والتختبار‬         ‫•‬
 ‫نظام ‪ PHPDocumentor‬لمتمتة عملية متوثيق الشيفرة‬         ‫•‬
                                             ‫المصدرية‬
                                      ‫تخلصة ومتوصيات‬    ‫•‬
‫مشروع ‪ PHP‬واللغة العربية‬
‫• مكتبة مفتوحئة المصئدر متتضمن مجموعئة من الوظائئف الخاصة‬
‫باللغئة العربيئة منهئا علئى سئبيل المثال ل الحصئر: البحئث بدللة‬
‫ساق الكلمة والتلخيص اللي ومتحويل ما بين التأريخين الهجري‬
‫والميلدي والترجمة اللفظية ما بين الكلمات العربية والنجليزية.‬
             ‫لللطلع على المزيد: ‪http://www.ar-php.org‬‬

  ‫• 7002-6002 البناء البرمجي والنشر على ‪phpclasses.org‬‬

          ‫• 8002 :‪PHP5، sourceforge.org‬متحسين الداء ،‬
                         ‫‪PEAR‬‬
‫شروط النضمام إلى ‪PEAR‬‬
‫• ضرورة حفظ وإدارة الشيفرة المصدرية على مخدم ‪ CVS‬متاح‬
                 ‫على شبكة الويب )‪(Sourceforge.net‬‬

‫• ضرورة إلحاق برنامج يقوم باتختبار كافة مزايا وتخدمات المكتبة‬
                              ‫بشكل آلي مؤمتمت )‪(PHPUnit‬‬

     ‫• ضرورة متوفير متوثيق معياري للشيفرة المصدرية الخاصة‬
             ‫بالمكتبة المراد إضافتها )‪(phpDocumentor‬‬
‫مخدم ‪CVS‬‬
‫ما هو نظام ‪CVS‬؟‬
‫• نظام الصئئدارات المتزامنئئة ‪ CVS‬لحفظ الشيفرة‬
‫المصئدرية هئو نظام مجانئي مفتوح المصئدر قائئم على‬
                             ‫هيكلية المخدم / الزبون.‬

‫• يستخدم هذا النظام آلية الدمج للتعديلت التي يجريها عدة‬
‫مطوريئن، بعكئس نموذج القفئل الذي يسئمح لمطور واحد‬
                   ‫فقط بإجراء التعديلت في كل مرة.‬
‫نظام ‪ CVS‬والمشاريع المفتوحة المصدر‬
‫• إن كنت مبرمجا متطمح للمساهمة يوما ما في أي مشروع‬
‫برمجئي مفتوح المصئدر، لبئد لئك مئن أئن متتقئن لطريقة‬
‫التعامئل مئع مخدم ‪ CVS‬لتكون قادرا علئى استخراج‬
‫الشيفرة المصئدرية والحصئول عليهئا، فتقوم بعئد ذلك‬
‫بإضافة متعديلمتك إليها، ومن ثم إيداع متلك التعديلت التي‬
‫أضفتهئا مجددا فئي مكنئز الشيفرة المصئدرية الصلية‬
‫للمشروع، لتصئئبح جزءئئا منئئه ومتكون بالتالئئي متاحة‬
                                              ‫للتخرين.‬
‫أين يمكن استخدام نظام ‪CVS‬؟‬
‫• مئن ناحيئة المبدأ فإئن أئي مشروع مؤلئف مئن عدة ملفات يمكنه‬
‫السئتفادة مئن تخدمات نظام ‪ CVS‬مثئل: متطويئر الئبرمجيات أو‬
                             ‫مواقع الويب أو مشاريع التوثيق.‬

       ‫• متطبق مزايا نظام ‪ CVS‬على الملفات النصية فقط مثل:‬
                                     ‫• ملفات ‪HTML‬‬
                  ‫• ملفات ‪(RTF (Rich Text Format‬‬
       ‫• ملفات الشيفرة المصدرية مثل ‪ PHP‬أو ‪ C‬أو ‪Java‬‬
                                 ‫• ملفات ‪ XML‬و ‪SQL‬‬
‫كيف يعمل نظام ‪CVS‬؟ )1(‬
                         ‫يوجد مكنز ‪ repository‬على مخدم ما.‬          ‫•‬
‫يستخرج ‪ checkout‬كل من المطورين نسخة عمل ‪working‬‬                     ‫•‬
                                    ‫‪ copy‬على أنظمتهم المحلية.‬
‫يقوم المطورون بإجراء التعديلت على نسخة العمل المحلية التي‬           ‫•‬
                                      ‫متخصهم بطريقتهم المعتادة.‬
‫عند إنتهاء العمل على التعديل الذي يقومون به، عليهم أول إجراء‬        ‫•‬
‫عمليئة متحديئث ‪ update‬لنسئخة العمئل لديهئم لتدمئج فيها متعديلت‬
‫المطورين التخرين التي متم إيداعها في المكنز تخلل فترة العمل‬
                                                     ‫على التعديل.‬
‫كيف يعمل نظام ‪CVS‬؟ )2(‬
‫• بعئد إمتمام التعديلت وإنجاز عمليئة التحديث بنجاح يقوم المطور‬
‫بإيداع ‪ commit‬التعديلت التي قام بها في المكنز ليتم دمجها في‬
                                     ‫النسخة الصلية للمشروع.‬

‫• إن قام مطورين بتعديل ذات السطر البرمجي بشكل مستقل، حينها‬
‫ستفشل عملية اليداع، ويتلقى المطور التخير الذي يحاول اليداع‬
‫ملحظئة متفيئد بحدوث حالئة متعارض ‪ ،conflict‬ويتوجئب عليه‬
‫حينهئا حئل هذا التعارض بشكئل يدوي قبئل أئن يكون قادرا على‬
                                     ‫إيداع متعديلمته من جديد.‬
‫ما هي فوائد استخدام نظام ‪CVS‬؟ )1(‬
‫• يسئمح لعدة مطوريئن بالعمئل بشكئل مسئتقل علئى ذات مجموعة‬
      ‫الملفات، ليتم لحقا دمج متعديلمتهم في المكنز المركزي.‬

‫• يسئمح لئك بتتبئع مئن قام بإجراء التعديلت، و أيئن هئي متلك‬
‫التعديلت، و متى متم إجراؤها. كما يمكنك معرفة لماذا أجريت‬
‫متلك التعديلت إن إلتزم المطورون بإضافة متعليقات مفيدة مع كل‬
                                   ‫عملية إيداع يقومون بها.‬

‫• دليئل قوي فئي المحكمئة لثبات متطويئر البرمجيئة من تخلل‬
                                ‫عرض مراحل متطويرها.‬
‫ما هي فوائد استخدام نظام ‪CVS‬؟ )2(‬
‫• يقوم هذا النظام بحفظ الملفات ضمن مكنز مركزي، مع متوفير‬
‫نسئخ احتيالطيئة موزعئة علئى أنظمئة المطوريئن المحليئة )نسخ‬
                  ‫العمل التي سبق أن استخرجوها من المكنز(.‬

‫• متمكيئن فرق العمئل المنتشرة جغرافيئا مئن العمئل على ذات‬
       ‫المشروع )كما هي حال المشاريع المفتوحة المصدر(.‬

‫• حفئظ كافئة الصئدارات بدءئا مئن متاريئخ اسئتخدام النظام، على‬
‫عكس أسلوب النسخ الحتيالطي حيث نتخلص عادة من النسخ‬
                                             ‫القديمة بعد فترة.‬
‫ما هي فوائد استخدام نظام ‪CVS‬؟ )3(‬
‫• إمكانية متوليد متقرير يوضح مراحل متطور المشروع عبر الزمن‬
                          ‫لستقراء فعالية عملية التطوير.‬

‫• متوفير إمكانية التراجع عن أي من التعديلت التي متمت تخلل أي‬
‫فترة زمنيئة بسئهولة و اسئترجاع حالئة الملفات كمئا كانئت قبل‬
                                               ‫متاريخ معين.‬

‫• القتصئاد فئي اسئتخدام عرض نطاق المتصئال الشبكئي المتوفر‬
‫ومساحة التخزين على المخدم من تخلل حفظ التعديلت نسبة‬
                                ‫إلى الصدار السابق فقط.‬
‫ما ل يقوم به نظام ‪!CVS‬‬
‫• ل يعتئئبر نظام ‪ CVS‬وسئئيلة للمتصئئال بيئئن أعضاء الفريق‬
                       ‫البرمجي، وليس بديل للعمل الجماعي.‬

‫• ل يعتبر نظام ‪ CVS‬نظاما تخاصا بتتبع التخطاء ومتابعة عملية‬
                                               ‫إصلحها.‬

‫• ل يوفئئر نظام ‪ CVS‬أئئي أدوات لفحئئص الشيفرة البرمجية‬
                                           ‫وإتختبارها.‬
‫إطار عمل ‪PHPUnit‬‬
‫لتمتة الفحص والتختبار‬
‫ضرورة عمليات الفحص والختبار‬
‫• إن كل من مارس البرمجة يعلم متماما أن الوقوع في التخطاء هو‬
                                             ‫أمر ل مفر منه.‬
‫• علئى المئبرمج المحترف أئن يخطئط مسئبقا لتفحص التخطاء‬
‫والمواظبة على اتختبار ما يكتبه من شيفرات برمجية سعيا وراء‬
‫اصطياد مبكر للتخطاء مما يعزز من فرص اكتشافها ويقلل من‬
                                              ‫كلفة إصلحها.‬
 ‫• متعتئئبر عمليات التختبار متلئئك واحدا مئئن الركان الساسية‬
‫لعمليات مراقبئة وضبئط الجودة التئي ل غنئى عنهئا فئي عالم‬
                                                  ‫الحتراف.‬
‫ما هو برنامج ‪PHPUnit‬؟‬
‫• إلطار عمئل بسئيط وسئهل السئتخدام يسئاعد المئبرمج على بناء‬
  ‫ومتنفيذ عمليات الفحص والتختبار المؤمتمتة للوحدات البرمجية.‬

‫• إن برنامج ‪ PHPUnit‬هو فرد من عائلة مكتبة ‪ ،PEAR‬فإن‬
‫لئم يكئن متوفئر علئى المخدم الذي متسئتخدمه، يمكنئك متنصيبه‬
  ‫ببسالطة من تخلل متنفيذ التعليمتين التاليتين في سطر الوامر:‬

‫‪pear channel-discover pear.phpunit.de‬‬
‫‪pear install phpunit/PHPUnit‬‬
‫‪PHPUnit‬والمشاريع المفتوحة المصدر‬
‫• إئن إلحاق شيفرات التختبارات المؤمتمتئة بأئي برمجية حرة‬
‫مفتوحة المصدر متمكن المستخدم من التحقق من صحة عمل متلك‬
‫البرمجيئة علئى منصئته ويمنحئه مزيدا مئن الثقئة بهئا كون فريق‬
‫العمل المعني بتطويرها يتبع إجراءات ضمان الجودة المتعارف‬
                                                      ‫عليها.‬

‫• إن فائدة متوفر مثل هذه التختبارات المؤمتمتة يساعد أيضا كل‬
‫مئن يحاول متعديئل أئو متطويئر برمجيئة مئا علئى التأكئد مئن أن‬
‫التغييرات التئي قام بهئا لئم متتسئبب فئي ظهور أئي تخلئل فئي بقية‬
                                                ‫أرجاء البرمجية.‬
‫كيف يعمل ‪PHPUnit‬؟ )1(‬
‫• قد متبدو عملية متصميم وبناء التختبارات المؤمتمتة مستهلكة للوقت،‬
 ‫لكن هذا النطباع تخالطئ، فبناء اتختبار جديد باستخدام إلطار عمل‬
‫‪ PHPUnit‬ل يستغرق أكثر من بضع عشرات من الدقائق، كما‬
                             ‫أن متنفيذ التختبار ذامته يتم في ثوان.‬
‫كيف يعمل‬
‫‪PHPUnit‬؟ )2(‬
‫كيف يعمل ‪PHPUnit‬؟ )3(‬
‫برنامج ‪phpDocumentor‬‬
 ‫لتوثيق الشيفرة المصدرية‬
‫ما هو برنامج ‪phpDocumentor‬؟‬
‫• يعد التوثيق المتكامل والوافي واحدا من أهم سمات الحترافية في‬
‫العمل البرمجي، لكنه من جهة أتخرى يصنف على أنه واحد من‬
‫المهام التي متصيب معظم المبرمجين بالملل كونه يستهلك الكثير‬
‫من الوقت الذي يصرف بعيدا عن محبوبتهم البرمجة، لذا وجب‬
‫على المبرمج المحترف أن يجد حل وسطا ما بين شغف البرمجة‬
                                                ‫ورصانة التوثيق.‬
‫• يهدف ‪ phpDocumentor‬إلئى مسئاعدة المئبرمجين علئى متوليد‬
‫متوثيق معياري بشكل شبه آلي إنطلقا مما يكتبونه من ملحظات‬
‫ومتعليقات بيئن ثنايئا شيفرامتهئم المصئدرية شريطئة إمتباعهئم لطريقة‬
                       ‫معينة في كتابة متلك الملحظات والتعليقات‬
(1) ‫؟‬phpDocumentor ‫كيف يعمل‬
‫كيف يعمل‬
phpDocumentor
    ((2
(3) ‫؟‬phpDocumentor ‫كيف يعمل‬
phpdoc -o HTML:Smarty:PHP -d ArPHP -t Docs

phpdoc -o CHM:default:default -d ArPHP -t Docs

phpdoc -o PDF:default:default -d ArPHP -t Docs

f Filename-

ti Title-
‫مثال عن التوثيق الناتج‬
‫خلصة وتوصيات‬
‫• إئن التعريئف بالدوات المسئاعدة فئي كئل من عمليات إدارة‬
 ‫الشيفرة المصئئدرية وأمتمتئئة التختبارات ومتوثيق الشيفرة‬
‫المصئدرية هئي مسئألة ل متقئل أهميئة عئن إمتقان لغئة البرمجة‬
                                             ‫المستخدمة ذامتها.‬
‫• إئئن الحتراف ومتطلبات العمئئل الجماعئئي والمسئئاهمة في‬
‫البرمجيات الحرة المفتوحة المصدر متتطلب مهارات ل متنحصر‬
                        ‫بمجرد صقل موهبة التحليل والبرمجة.‬
‫• لذا أرى أئن متضاف مثئل هذه الدوات إلئى السئياق المتبئع في‬
           ‫المناهج التعليمية التي متؤهل كوادرنا من المبرمجين.‬
‫شكرا لحضوركم‬
www.ar-php.org

More Related Content

Viewers also liked (20)

PPTX
How to Shop for and Get the Best Home Loan Rates in 2014
Eric Kandell
 
PPTX
Energiebesparing met prestatiecontracten
Netherlands Enterprise Agency (RVO.nl)
 
DOC
Noticias tel mayo 2011
Francisco Apablaza
 
PPTX
FUSIONERA MakerFaire Taipei 2015 Masakazu Takasu ( Interactive Design from te...
Nico-Tech Shenzhen/ニコ技深圳コミュニティ
 
PPTX
The VA Hybrid Loan and the CMT Index
Eric Kandell
 
PDF
The Rise of the Real Mom
Jody Thomas
 
PDF
Cloud Computing: the last step in IT commoditisation
ISPABelgium
 
PPT
Terra do espaco
Rosana Hermann
 
PPTX
Energy Performance of Buildings Directive en EPBD recast
Netherlands Enterprise Agency (RVO.nl)
 
ODP
RSpecのここがすごい!
mitim
 
PPTX
Deloitte - Assistive Ict Workshop Presentation
svdpeijl
 
PDF
Informatica client
Ravi Kumar Lanke
 
PPT
McKersie Wealth Management
jmckersie
 
PPTX
Get Your Business Found on Google! (Bahasa Indonesia)
jkairupan
 
PPT
Food Waste And Hunger
student
 
PPT
Malmberg en Beeld en Geluid 070411
Netherlands Institute for Sound and Vision
 
PPTX
3sixtycom credentials feb2014
Christos Akratopoulos
 
PPTX
Scholars and knowledge in the 21st century
Roxanne Missingham
 
PPT
duurzaam gebouwbeheer met de Milieubarometer
Netherlands Enterprise Agency (RVO.nl)
 
How to Shop for and Get the Best Home Loan Rates in 2014
Eric Kandell
 
Energiebesparing met prestatiecontracten
Netherlands Enterprise Agency (RVO.nl)
 
Noticias tel mayo 2011
Francisco Apablaza
 
FUSIONERA MakerFaire Taipei 2015 Masakazu Takasu ( Interactive Design from te...
Nico-Tech Shenzhen/ニコ技深圳コミュニティ
 
The VA Hybrid Loan and the CMT Index
Eric Kandell
 
The Rise of the Real Mom
Jody Thomas
 
Cloud Computing: the last step in IT commoditisation
ISPABelgium
 
Terra do espaco
Rosana Hermann
 
Energy Performance of Buildings Directive en EPBD recast
Netherlands Enterprise Agency (RVO.nl)
 
RSpecのここがすごい!
mitim
 
Deloitte - Assistive Ict Workshop Presentation
svdpeijl
 
Informatica client
Ravi Kumar Lanke
 
McKersie Wealth Management
jmckersie
 
Get Your Business Found on Google! (Bahasa Indonesia)
jkairupan
 
Food Waste And Hunger
student
 
Malmberg en Beeld en Geluid 070411
Netherlands Institute for Sound and Vision
 
3sixtycom credentials feb2014
Christos Akratopoulos
 
Scholars and knowledge in the 21st century
Roxanne Missingham
 
duurzaam gebouwbeheer met de Milieubarometer
Netherlands Enterprise Agency (RVO.nl)
 

Similar to PHP Developer Tools - Arabic (20)

PPTX
النظم مفتوحة المصدر -- محمد الزلباني
Library Experts
 
PDF
مقدمة عن بايثون / جانقو
lunarhalo
 
PPTX
أنظمة إدارة المحتوى
Ehab Saad Ahmad
 
PPTX
SonarQube_Presentation_Arabic.ppptx aaaa
x5n8rq9j6t
 
PDF
C++python الفرق بين البايثون والسي بلس بلس
Abdulaziz2019
 
PDF
أدوات مفتوحة المصدر لـ DevOps.pdf
Bahaa Al Zubaidi
 
PPTX
نظام كوها المتكامل لإدارة المكتبات
mohamed Elzalabany
 
PPTX
Lecture 5 Internet and computer certificate.pptx
idreesdb1
 
PPTX
ومميزاته ESXI عرض تقديمي يتم التحدث فيه عن
khalifahezzaldeen502
 
PPT
عرض الوحدة الرابعة مقدمة في البرمجة
wafa210
 
PDF
بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
lunarhalo
 
PDF
OTechs IT Package Training Course
Osman Suliman
 
PPT
إدارة النص Amman ttالمصدري
Omar Qadan
 
PPTX
cmsهام.pptx
AtefMarzouk1
 
PPT
نظم التشغيل.ppt
AymenAyari10
 
PPTX
Process activities.pptx
MustafaAliBilalAbdel
 
PDF
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
Mohamed E. Saleh
 
PDF
Software engineering final
Hamauniversity
 
PDF
Software engineering final
Hamauniversity
 
PDF
Software engineering final
Hamauniversity
 
النظم مفتوحة المصدر -- محمد الزلباني
Library Experts
 
مقدمة عن بايثون / جانقو
lunarhalo
 
أنظمة إدارة المحتوى
Ehab Saad Ahmad
 
SonarQube_Presentation_Arabic.ppptx aaaa
x5n8rq9j6t
 
C++python الفرق بين البايثون والسي بلس بلس
Abdulaziz2019
 
أدوات مفتوحة المصدر لـ DevOps.pdf
Bahaa Al Zubaidi
 
نظام كوها المتكامل لإدارة المكتبات
mohamed Elzalabany
 
Lecture 5 Internet and computer certificate.pptx
idreesdb1
 
ومميزاته ESXI عرض تقديمي يتم التحدث فيه عن
khalifahezzaldeen502
 
عرض الوحدة الرابعة مقدمة في البرمجة
wafa210
 
بناء تطبيقات ويب 2.0. دروس مستفادة و نصائح موجهة
lunarhalo
 
OTechs IT Package Training Course
Osman Suliman
 
إدارة النص Amman ttالمصدري
Omar Qadan
 
cmsهام.pptx
AtefMarzouk1
 
نظم التشغيل.ppt
AymenAyari10
 
Process activities.pptx
MustafaAliBilalAbdel
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
Mohamed E. Saleh
 
Software engineering final
Hamauniversity
 
Software engineering final
Hamauniversity
 
Software engineering final
Hamauniversity
 
Ad

More from Khaled Al-Shamaa (7)

PPTX
PHP and Arabic Language Project
Khaled Al-Shamaa
 
PPTX
R Language Introduction
Khaled Al-Shamaa
 
PPTX
Advanced Excel, Day 5
Khaled Al-Shamaa
 
PPTX
Advanced Excel, Day 4
Khaled Al-Shamaa
 
PPTX
Advanced Excel, Day 3
Khaled Al-Shamaa
 
PPTX
Advanced Excel, Day 2
Khaled Al-Shamaa
 
PPTX
Advanced Excel, Day 1
Khaled Al-Shamaa
 
PHP and Arabic Language Project
Khaled Al-Shamaa
 
R Language Introduction
Khaled Al-Shamaa
 
Advanced Excel, Day 5
Khaled Al-Shamaa
 
Advanced Excel, Day 4
Khaled Al-Shamaa
 
Advanced Excel, Day 3
Khaled Al-Shamaa
 
Advanced Excel, Day 2
Khaled Al-Shamaa
 
Advanced Excel, Day 1
Khaled Al-Shamaa
 
Ad

PHP Developer Tools - Arabic

  • 1. ‫تعريف ببعض أدوات مبرمج ‪PHP‬‬ ‫في عالم البرمجيات الحرة المفتوحة المصدر‬ ‫م. خالد الشمعة‬
  • 2. ‫نقاط هذا العرض التقديمي‬ ‫مشروع ‪ PHP‬واللغة العربية‬ ‫•‬ ‫نظام ‪ CVS‬لحفظ وإدارة الشيفرة المصدرية‬ ‫•‬ ‫نظام ‪ PHPUnits‬لمتمتة عمليات الفحص والتختبار‬ ‫•‬ ‫نظام ‪ PHPDocumentor‬لمتمتة عملية متوثيق الشيفرة‬ ‫•‬ ‫المصدرية‬ ‫تخلصة ومتوصيات‬ ‫•‬
  • 3. ‫مشروع ‪ PHP‬واللغة العربية‬ ‫• مكتبة مفتوحئة المصئدر متتضمن مجموعئة من الوظائئف الخاصة‬ ‫باللغئة العربيئة منهئا علئى سئبيل المثال ل الحصئر: البحئث بدللة‬ ‫ساق الكلمة والتلخيص اللي ومتحويل ما بين التأريخين الهجري‬ ‫والميلدي والترجمة اللفظية ما بين الكلمات العربية والنجليزية.‬ ‫لللطلع على المزيد: ‪http://www.ar-php.org‬‬ ‫• 7002-6002 البناء البرمجي والنشر على ‪phpclasses.org‬‬ ‫• 8002 :‪PHP5، sourceforge.org‬متحسين الداء ،‬ ‫‪PEAR‬‬
  • 4. ‫شروط النضمام إلى ‪PEAR‬‬ ‫• ضرورة حفظ وإدارة الشيفرة المصدرية على مخدم ‪ CVS‬متاح‬ ‫على شبكة الويب )‪(Sourceforge.net‬‬ ‫• ضرورة إلحاق برنامج يقوم باتختبار كافة مزايا وتخدمات المكتبة‬ ‫بشكل آلي مؤمتمت )‪(PHPUnit‬‬ ‫• ضرورة متوفير متوثيق معياري للشيفرة المصدرية الخاصة‬ ‫بالمكتبة المراد إضافتها )‪(phpDocumentor‬‬
  • 6. ‫ما هو نظام ‪CVS‬؟‬ ‫• نظام الصئئدارات المتزامنئئة ‪ CVS‬لحفظ الشيفرة‬ ‫المصئدرية هئو نظام مجانئي مفتوح المصئدر قائئم على‬ ‫هيكلية المخدم / الزبون.‬ ‫• يستخدم هذا النظام آلية الدمج للتعديلت التي يجريها عدة‬ ‫مطوريئن، بعكئس نموذج القفئل الذي يسئمح لمطور واحد‬ ‫فقط بإجراء التعديلت في كل مرة.‬
  • 7. ‫نظام ‪ CVS‬والمشاريع المفتوحة المصدر‬ ‫• إن كنت مبرمجا متطمح للمساهمة يوما ما في أي مشروع‬ ‫برمجئي مفتوح المصئدر، لبئد لئك مئن أئن متتقئن لطريقة‬ ‫التعامئل مئع مخدم ‪ CVS‬لتكون قادرا علئى استخراج‬ ‫الشيفرة المصئدرية والحصئول عليهئا، فتقوم بعئد ذلك‬ ‫بإضافة متعديلمتك إليها، ومن ثم إيداع متلك التعديلت التي‬ ‫أضفتهئا مجددا فئي مكنئز الشيفرة المصئدرية الصلية‬ ‫للمشروع، لتصئئبح جزءئئا منئئه ومتكون بالتالئئي متاحة‬ ‫للتخرين.‬
  • 8. ‫أين يمكن استخدام نظام ‪CVS‬؟‬ ‫• مئن ناحيئة المبدأ فإئن أئي مشروع مؤلئف مئن عدة ملفات يمكنه‬ ‫السئتفادة مئن تخدمات نظام ‪ CVS‬مثئل: متطويئر الئبرمجيات أو‬ ‫مواقع الويب أو مشاريع التوثيق.‬ ‫• متطبق مزايا نظام ‪ CVS‬على الملفات النصية فقط مثل:‬ ‫• ملفات ‪HTML‬‬ ‫• ملفات ‪(RTF (Rich Text Format‬‬ ‫• ملفات الشيفرة المصدرية مثل ‪ PHP‬أو ‪ C‬أو ‪Java‬‬ ‫• ملفات ‪ XML‬و ‪SQL‬‬
  • 9. ‫كيف يعمل نظام ‪CVS‬؟ )1(‬ ‫يوجد مكنز ‪ repository‬على مخدم ما.‬ ‫•‬ ‫يستخرج ‪ checkout‬كل من المطورين نسخة عمل ‪working‬‬ ‫•‬ ‫‪ copy‬على أنظمتهم المحلية.‬ ‫يقوم المطورون بإجراء التعديلت على نسخة العمل المحلية التي‬ ‫•‬ ‫متخصهم بطريقتهم المعتادة.‬ ‫عند إنتهاء العمل على التعديل الذي يقومون به، عليهم أول إجراء‬ ‫•‬ ‫عمليئة متحديئث ‪ update‬لنسئخة العمئل لديهئم لتدمئج فيها متعديلت‬ ‫المطورين التخرين التي متم إيداعها في المكنز تخلل فترة العمل‬ ‫على التعديل.‬
  • 10. ‫كيف يعمل نظام ‪CVS‬؟ )2(‬ ‫• بعئد إمتمام التعديلت وإنجاز عمليئة التحديث بنجاح يقوم المطور‬ ‫بإيداع ‪ commit‬التعديلت التي قام بها في المكنز ليتم دمجها في‬ ‫النسخة الصلية للمشروع.‬ ‫• إن قام مطورين بتعديل ذات السطر البرمجي بشكل مستقل، حينها‬ ‫ستفشل عملية اليداع، ويتلقى المطور التخير الذي يحاول اليداع‬ ‫ملحظئة متفيئد بحدوث حالئة متعارض ‪ ،conflict‬ويتوجئب عليه‬ ‫حينهئا حئل هذا التعارض بشكئل يدوي قبئل أئن يكون قادرا على‬ ‫إيداع متعديلمته من جديد.‬
  • 11. ‫ما هي فوائد استخدام نظام ‪CVS‬؟ )1(‬ ‫• يسئمح لعدة مطوريئن بالعمئل بشكئل مسئتقل علئى ذات مجموعة‬ ‫الملفات، ليتم لحقا دمج متعديلمتهم في المكنز المركزي.‬ ‫• يسئمح لئك بتتبئع مئن قام بإجراء التعديلت، و أيئن هئي متلك‬ ‫التعديلت، و متى متم إجراؤها. كما يمكنك معرفة لماذا أجريت‬ ‫متلك التعديلت إن إلتزم المطورون بإضافة متعليقات مفيدة مع كل‬ ‫عملية إيداع يقومون بها.‬ ‫• دليئل قوي فئي المحكمئة لثبات متطويئر البرمجيئة من تخلل‬ ‫عرض مراحل متطويرها.‬
  • 12. ‫ما هي فوائد استخدام نظام ‪CVS‬؟ )2(‬ ‫• يقوم هذا النظام بحفظ الملفات ضمن مكنز مركزي، مع متوفير‬ ‫نسئخ احتيالطيئة موزعئة علئى أنظمئة المطوريئن المحليئة )نسخ‬ ‫العمل التي سبق أن استخرجوها من المكنز(.‬ ‫• متمكيئن فرق العمئل المنتشرة جغرافيئا مئن العمئل على ذات‬ ‫المشروع )كما هي حال المشاريع المفتوحة المصدر(.‬ ‫• حفئظ كافئة الصئدارات بدءئا مئن متاريئخ اسئتخدام النظام، على‬ ‫عكس أسلوب النسخ الحتيالطي حيث نتخلص عادة من النسخ‬ ‫القديمة بعد فترة.‬
  • 13. ‫ما هي فوائد استخدام نظام ‪CVS‬؟ )3(‬ ‫• إمكانية متوليد متقرير يوضح مراحل متطور المشروع عبر الزمن‬ ‫لستقراء فعالية عملية التطوير.‬ ‫• متوفير إمكانية التراجع عن أي من التعديلت التي متمت تخلل أي‬ ‫فترة زمنيئة بسئهولة و اسئترجاع حالئة الملفات كمئا كانئت قبل‬ ‫متاريخ معين.‬ ‫• القتصئاد فئي اسئتخدام عرض نطاق المتصئال الشبكئي المتوفر‬ ‫ومساحة التخزين على المخدم من تخلل حفظ التعديلت نسبة‬ ‫إلى الصدار السابق فقط.‬
  • 14. ‫ما ل يقوم به نظام ‪!CVS‬‬ ‫• ل يعتئئبر نظام ‪ CVS‬وسئئيلة للمتصئئال بيئئن أعضاء الفريق‬ ‫البرمجي، وليس بديل للعمل الجماعي.‬ ‫• ل يعتبر نظام ‪ CVS‬نظاما تخاصا بتتبع التخطاء ومتابعة عملية‬ ‫إصلحها.‬ ‫• ل يوفئئر نظام ‪ CVS‬أئئي أدوات لفحئئص الشيفرة البرمجية‬ ‫وإتختبارها.‬
  • 15. ‫إطار عمل ‪PHPUnit‬‬ ‫لتمتة الفحص والتختبار‬
  • 16. ‫ضرورة عمليات الفحص والختبار‬ ‫• إن كل من مارس البرمجة يعلم متماما أن الوقوع في التخطاء هو‬ ‫أمر ل مفر منه.‬ ‫• علئى المئبرمج المحترف أئن يخطئط مسئبقا لتفحص التخطاء‬ ‫والمواظبة على اتختبار ما يكتبه من شيفرات برمجية سعيا وراء‬ ‫اصطياد مبكر للتخطاء مما يعزز من فرص اكتشافها ويقلل من‬ ‫كلفة إصلحها.‬ ‫• متعتئئبر عمليات التختبار متلئئك واحدا مئئن الركان الساسية‬ ‫لعمليات مراقبئة وضبئط الجودة التئي ل غنئى عنهئا فئي عالم‬ ‫الحتراف.‬
  • 17. ‫ما هو برنامج ‪PHPUnit‬؟‬ ‫• إلطار عمئل بسئيط وسئهل السئتخدام يسئاعد المئبرمج على بناء‬ ‫ومتنفيذ عمليات الفحص والتختبار المؤمتمتة للوحدات البرمجية.‬ ‫• إن برنامج ‪ PHPUnit‬هو فرد من عائلة مكتبة ‪ ،PEAR‬فإن‬ ‫لئم يكئن متوفئر علئى المخدم الذي متسئتخدمه، يمكنئك متنصيبه‬ ‫ببسالطة من تخلل متنفيذ التعليمتين التاليتين في سطر الوامر:‬ ‫‪pear channel-discover pear.phpunit.de‬‬ ‫‪pear install phpunit/PHPUnit‬‬
  • 18. ‫‪PHPUnit‬والمشاريع المفتوحة المصدر‬ ‫• إئن إلحاق شيفرات التختبارات المؤمتمتئة بأئي برمجية حرة‬ ‫مفتوحة المصدر متمكن المستخدم من التحقق من صحة عمل متلك‬ ‫البرمجيئة علئى منصئته ويمنحئه مزيدا مئن الثقئة بهئا كون فريق‬ ‫العمل المعني بتطويرها يتبع إجراءات ضمان الجودة المتعارف‬ ‫عليها.‬ ‫• إن فائدة متوفر مثل هذه التختبارات المؤمتمتة يساعد أيضا كل‬ ‫مئن يحاول متعديئل أئو متطويئر برمجيئة مئا علئى التأكئد مئن أن‬ ‫التغييرات التئي قام بهئا لئم متتسئبب فئي ظهور أئي تخلئل فئي بقية‬ ‫أرجاء البرمجية.‬
  • 19. ‫كيف يعمل ‪PHPUnit‬؟ )1(‬ ‫• قد متبدو عملية متصميم وبناء التختبارات المؤمتمتة مستهلكة للوقت،‬ ‫لكن هذا النطباع تخالطئ، فبناء اتختبار جديد باستخدام إلطار عمل‬ ‫‪ PHPUnit‬ل يستغرق أكثر من بضع عشرات من الدقائق، كما‬ ‫أن متنفيذ التختبار ذامته يتم في ثوان.‬
  • 22. ‫برنامج ‪phpDocumentor‬‬ ‫لتوثيق الشيفرة المصدرية‬
  • 23. ‫ما هو برنامج ‪phpDocumentor‬؟‬ ‫• يعد التوثيق المتكامل والوافي واحدا من أهم سمات الحترافية في‬ ‫العمل البرمجي، لكنه من جهة أتخرى يصنف على أنه واحد من‬ ‫المهام التي متصيب معظم المبرمجين بالملل كونه يستهلك الكثير‬ ‫من الوقت الذي يصرف بعيدا عن محبوبتهم البرمجة، لذا وجب‬ ‫على المبرمج المحترف أن يجد حل وسطا ما بين شغف البرمجة‬ ‫ورصانة التوثيق.‬ ‫• يهدف ‪ phpDocumentor‬إلئى مسئاعدة المئبرمجين علئى متوليد‬ ‫متوثيق معياري بشكل شبه آلي إنطلقا مما يكتبونه من ملحظات‬ ‫ومتعليقات بيئن ثنايئا شيفرامتهئم المصئدرية شريطئة إمتباعهئم لطريقة‬ ‫معينة في كتابة متلك الملحظات والتعليقات‬
  • 26. (3) ‫؟‬phpDocumentor ‫كيف يعمل‬ phpdoc -o HTML:Smarty:PHP -d ArPHP -t Docs phpdoc -o CHM:default:default -d ArPHP -t Docs phpdoc -o PDF:default:default -d ArPHP -t Docs f Filename- ti Title-
  • 28. ‫خلصة وتوصيات‬ ‫• إئن التعريئف بالدوات المسئاعدة فئي كئل من عمليات إدارة‬ ‫الشيفرة المصئئدرية وأمتمتئئة التختبارات ومتوثيق الشيفرة‬ ‫المصئدرية هئي مسئألة ل متقئل أهميئة عئن إمتقان لغئة البرمجة‬ ‫المستخدمة ذامتها.‬ ‫• إئئن الحتراف ومتطلبات العمئئل الجماعئئي والمسئئاهمة في‬ ‫البرمجيات الحرة المفتوحة المصدر متتطلب مهارات ل متنحصر‬ ‫بمجرد صقل موهبة التحليل والبرمجة.‬ ‫• لذا أرى أئن متضاف مثئل هذه الدوات إلئى السئياق المتبئع في‬ ‫المناهج التعليمية التي متؤهل كوادرنا من المبرمجين.‬