كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي


ما هي مراجعة الكود؟

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




كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



يمكن أن تكون اجتماعات مراجعة التعليمات البرمجية اليدوية مفيدة في اكتشاف الأخطاء في الأسلوب أو كفاءة التعليمات البرمجية التي لا تستطيع الأدوات الآلية عادةً اكتشافها. لكن لديهم عيوب:


  • غالبًا ما يتم ختم تغييرات التعليمات البرمجية بشكل مطاطي دون فهم. 


  • تُعطى الأولوية أحيانًا لرأي كبار السن عندما قد لا يكون صحيحًا. 


  • قد يكون المطورون المبتدئون مترددين في التحدث.


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

كيفية استخدام الذكاء الاصطناعي لمراجعة التعليمات البرمجية

يمكن إجراء مراجعات التعليمات البرمجية على أقسام التعليمات البرمجية الصغيرة عن طريق نسخ بعض التعليمات البرمجية ولصقها في ChatGPT. أو على قواعد التعليمات البرمجية بأكملها عن طريق ربط CodeGuru من Amazon بالمستودع الخاص بك.


يتناسب كل نوع من الأدوات مع نقاط مختلفة من دورة تطوير البرمجيات.


دعونا نلقي نظرة على أدوات الذكاء الاصطناعي التي سيتم استخدامها ومتى سيتم استخدامها في دورة تطوير البرمجيات النموذجية:



البرمجة الزوجية/الترميز بمساعدة الذكاء الاصطناعي

البرمجة الزوجية هي عملية ترميز باستخدام أداة الذكاء الاصطناعي التي تقترح تعليمات برمجية أو تصحيحات أثناء قيامك بالترميز. عادةً ما تتكامل هذه الأدوات مع IDE (بيئة التطوير المتكاملة).


عندما تقوم  بتعيين مبرمج ، يمكن لأدوات البرمجة المدعومة بالذكاء الاصطناعي أن تساعد المطور بشكل كبير في العمل بشكل أسرع وأكثر كفاءة. 


IntelliCode

أطلقت Microsoft  IntelliCode  لمساعدتك في تطوير التعليمات البرمجية باستخدام الذكاء الاصطناعي.


IntelliCode هي أداة محدودة إلى حد ما تبحث في GitHub عن أمثلة واقعية لمرات تم فيها استخدام وظيفة معينة في مشاريع تعليمات برمجية أخرى. قد يكون مفيدًا للمبرمجين الجدد الذين يبحثون عن أفضل الممارسات لوظيفة معينة. 


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي




فهو لا يبحث في الوظائف المخصصة الخاصة بك، بل يبحث في الوظائف المضمنة فقط. وهو يدعم حاليًا Python وJavaScript/TypeScript وJava. 



جيثب مساعد الطيار

يعد برنامج CoPilot الخاص بـ GitHub أداة أخرى تساعدك على البرمجة مباشرة من داخل IDE. تم تطوير برنامج CoPilot بالتعاون مع OpenAI، مطوري ChatGPT وCodex.


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



قام برنامج CoPilot بتصحيح بعض التعليمات البرمجية بشكل صحيح


بعد كتابة المطالبة، اضغط على Ctrl + Enter على جهاز الكمبيوتر، وسيبدأ برنامج CoPilot في العمل، مدعومًا بـ Codex. 

كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



ChatGPT

لا يتم دمج ChatGPT  مباشرة في IDE، ولكنه أداة مساعدة ممتازة يمكنك أن تطلب منها:


  • اكتب الكود لك


  • رمز التصحيح


  • رمز المراجعة


فيما يلي بعض الأمثلة على ما يمكن أن يفعله ChatGPT خلال مرحلة التطوير هذه.


كتابة الكود من الصفر:


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



رمز التصحيح


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


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



تم إدخال الخطأ يدويًا.


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي


توثيق الكود

المبرمجون سيئون جدًا في التعليق على أكوادهم البرمجية، ناهيك عن توثيقها. لقد طلبنا من ChatGPT توثيق الكود أعلاه. 


في PHP، يمكنك إنشاء وثائق باستخدام PHPDoc. لقد طلبنا من ChatGPT تحويل الكود إلى PHP، وتضمين تعليقات بنمط PHPDoc والتي يمكن تحويلها إلى وثائق لاحقًا. 


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي


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



كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



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


بمجرد قيام الذكاء الاصطناعي بعمله، يجب عليك الاستعانة بخبير لمراجعة العمل.


2. تحليل الكود/"الفحص"

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


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


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


تتضمن أدوات الفحص/التحليل الثابت ما يلي:


  • سنيك (ديب كود سابقًا)


  • أمازون كود جورو


  • ChatGPT و Codex



 Snyk (DeepCode)

يجمع Snyk (DeepCode) أكثر من 200000 مستودع كود مفتوح المصدر للتعلم منه. ويستخدم كلاً من الذكاء الاصطناعي الرمزي - الذكاء الاصطناعي الذي يركز على رسم الارتباطات بين الرموز الرياضية - والتعلم الآلي (ML) لأداء مهمته.


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي



لم يكتشف Snyk أي ثغرات أمنية في التعليمات البرمجية التي أرسلناها إليه، لذلك أضفنا بعض  برامج PHP السيئة حقًا  . قام Snyk بوضع علامة على الملف مباشرة بعد إضافته إلى الريبو. 



أمازون كود جورو


تعد Amazon's CodeGuru أداة قوية توفر للأفراد والشركات الصغيرة نفس القوة التي توفرها لعملاء المؤسسات. بعد التسجيل، تقوم بتوصيل مستودع التعليمات البرمجية الخاص بك مع CodeGuru، ويبدأ في تحليل كل جانب من جوانبه.


كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي


يقوم CodeGuru بتحليل قاعدة الأكواد البرمجية بالكامل وتقديم التوصيات.


أجرينا تحليلًا على مستودع المشروع الاختباري الخاص بنا، وقدمنا ​​CodeGuru توصيات للتحسين. يمكنك أيضًا إجراء مراجعة للكود على شوكة محددة (نسخة مستقلة من المشروع).


3. مراجعة طلبات السحب

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


توجد أدوات تقوم بمراجعة الكود تلقائيًا في هذه المرحلة، مما يوفر وقتًا ثمينًا عن طريق القيام بالمهمة الثقيلة الأولية في مراجعة الكود.


تتضمن بعض الأدوات لهذه المرحلة من مراجعة الكود ما يلي:


Codeball: يتكامل مباشرةً مع GitHub لمراجعة طلبات السحب تلقائيًا. كما يقوم أيضًا بإنشاء التعليمات البرمجية تلقائيًا استجابةً لتعليقات المراجعين الآخرين.


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


ChatGPT وCodex: مراجعات التعليمات البرمجية اليدوية (على الرغم من أنه من المحتمل استخدام Codex من خلال واجهة برمجة التطبيقات، والإمكانيات لا حصر لها هنا).


Amazon CodeGuru: لإجراء فحوصات شاملة، وليس بالضرورة لكل طلب سحب.

كيفية إجراء مراجعة الكود باستخدام الذكاء الاصطناعي


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



4. اختبار الكود

بغض النظر عن مدى جودة الكود الخاص بك، يجب اختبار كل الكود. تتضمن منصات الاختبار الآلية التي تستخدم الذكاء الاصطناعي بشكل أو بآخر لاختبار التطبيقات ما يلي:


  • بيرفيكتو


  • ابليتولز


  • وظيفية


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


بعد الانتهاء من الاختبارات الآلية، يجب عليك اختبار البرنامج يدويًا والحصول على تعليقات المستخدمين. فكر في  تعيين خبراء اختبار المستخدم على Fiverr  للاهتمام بإجراء الاختبار اليدوي هذا. 



5. تحليل الكود/ مراقبة الأداء/ إمكانية الملاحظة

وأخيرًا، هناك إمكانية الملاحظة: وهي عملية فهم الأجزاء الداخلية للنظام من خلال دراسة مخرجاته. 


يناسب Amazon CodeGuru Profiling هذا المعيار. ومع ذلك، لسنا متأكدين تمامًا من درجة الذكاء الاصطناعي التي يستخدمها حاليًا.


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


اهتماماتك
بواسطة : اهتماماتك
اترك تعليقك هنا وسيتم الرد عليك خلال 24 ساعة.
تعليقات