الفرق بين المراجعتين لصفحة: «Refactoring/remove control flag»
Khaled-yassin (نقاش | مساهمات) أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: إزالة رايات التحكم (Remove Control Flag)}}</noinclude> == المشكلة == لديك متغيرات منطقية تعمل كر...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق |
||
سطر 4: | سطر 4: | ||
== الحل == | == الحل == | ||
استخدم الكلمات المفتاحية <code>break</code> و <code>continue</code> و <code>return</code> بدلًا من هذه المتغيرات. | |||
== لم إعادة التصميم؟ == | == لم إعادة التصميم؟ == | ||
تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). | تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). | ||
لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة: | لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل: | ||
* break: إيقاف الحلقة. | * <code>break</code>: إيقاف الحلقة. | ||
* continue: إيقاف تنفيذ فرع الحلقة الحالي والاستمرار في التحقق من شروط الحلقة في الدورة التالية. | * <code>continue</code>: إيقاف تنفيذ فرع الحلقة الحالي والاستمرار في التحقق من شروط الحلقة في الدورة التالية. | ||
* return: إيقاف تنفيذ الدالة بأكملها وإعادة نتيجتها | * <code>return</code>: إيقاف تنفيذ الدالة بأكملها وإعادة نتيجتها (إذا ما أُعطيت). | ||
== فوائد تطبيق الحل == | == فوائد تطبيق الحل == | ||
سطر 19: | سطر 19: | ||
== آلية الحل == | == آلية الحل == | ||
# ابحث عن تعيين قيمة راية التحكم التي تؤدي إلى الخروج من الحلقة أو من الدورة الحالية. | # ابحث عن تعيين قيمة راية التحكم التي تؤدي إلى الخروج من الحلقة أو من الدورة الحالية. | ||
# استبدل ذلك مع | # استبدل ذلك مع <code>break</code>، إذا كان هذا الخروج من الحلقة؛ أو مع <code>continue</code>، إذا كان هذا الخروج من الدورة الحالية؛ أو <code>return</code>، إذا كنت بحاجة إلى الخروج من الدالة وإعادة قيمة محدَّدة. | ||
# أزل الشيفرة البرمجية المتبقية والتحققات المقترنة براية التحكم. | # أزل الشيفرة البرمجية المتبقية والتحققات المقترنة براية التحكم. | ||
المراجعة الحالية بتاريخ 08:27، 19 ديسمبر 2018
المشكلة
لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة.
الحل
استخدم الكلمات المفتاحية break
و continue
و return
بدلًا من هذه المتغيرات.
لم إعادة التصميم؟
تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة).
لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل:
break
: إيقاف الحلقة.continue
: إيقاف تنفيذ فرع الحلقة الحالي والاستمرار في التحقق من شروط الحلقة في الدورة التالية.return
: إيقاف تنفيذ الدالة بأكملها وإعادة نتيجتها (إذا ما أُعطيت).
فوائد تطبيق الحل
- غالبا ما تكون شيفرة راية التحكم أكثر ثقلًا من الشيفرة البرمجية المكتوبة مع عوامل تدفق التحكم.
آلية الحل
- ابحث عن تعيين قيمة راية التحكم التي تؤدي إلى الخروج من الحلقة أو من الدورة الحالية.
- استبدل ذلك مع
break
، إذا كان هذا الخروج من الحلقة؛ أو معcontinue
، إذا كان هذا الخروج من الدورة الحالية؛ أوreturn
، إذا كنت بحاجة إلى الخروج من الدالة وإعادة قيمة محدَّدة. - أزل الشيفرة البرمجية المتبقية والتحققات المقترنة براية التحكم.