|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2010-09-08 10:20:14 pm بتوقيت جريتنش
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
القائمة الرئيسية - الصفحة الرئيسية - القائمة البريدية - عن المدونة - اتصل بي مواضيع عشوائية - سلسلة حوارات مع طلاب في الغربة - تم بحمدلله نشر الموقع بنجاح - القبض على اللصوص عن طريق شبكة الويب - عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا - إطلاق الجيل الرابع من آيبود iPod 4G الأقسام - المدونة [ 5 ] - كمبيوتر وإنترنت [ 7 ] - شخصي [ 7 ] - فايرفوكس [ 2 ] - ماك [ 4 ] - التدوين [ 1 ] - تقنية [ 5 ] - أخبار تقنية [ 8 ] - دين [ 1 ] - أستراليا [ 9 ] - التصوير الفوتوغرافي [ 2 ] - أمن المعلومات [ 2 ] - برمجة [ 5 ] - أكاديميات [ 1 ] - المصادر المفتوحة [ 1 ] - تسويق [ 1 ] - ويندوز 7 [ 2 ] - مناسبات [ 2 ] - حوار مع مغترب [ 1 ] - أخبار ومعلومات [ 1 ] - أخبار خفيفة وسريعة [ 3 ] مواقع صديقة - وادي التقنية الإدارة - منطقة إدارية خلاصات ![]() |
أخطاء برمجية شائعة وممارسات صحيحة 1
في معظم لغات البرمجة، إن لم يكن جميعها، ستحتاج إلى إجراء عمليات مقارنات منطقية لتنفيذ إجراءات مختلفة بناءً على نتيجة تلك المقارنات. ففي اللغات الشبيهة للغة السي C-Like languages يتم استخدام علامة == للمقارنات المنطقية.
الكاتب: نبيل - مدونة نبيل الشخصية www.nabeel.ws جميع الحقوق محفوظة - إزالة الحقوق جريمة ضد القانون مثال: لنفترض أن لديك تطبيق إنترنت مكتوب بلغة PHP يتم فيه طلب إدخال رقم من قِبل المستخدم، ومن ثم اختبار ذلك الرقم، فإذا كان مساوياً للرقم 5 تتم كتابة الكلمة "Five" و "Not five" إذا لم يكن كذلك. غالبية المبرمجين سيكتبون الكود بشكل مشابه للتالي:
وتعتبر هنا كتابة = بدلاً من == من أكثر الأخطاء البرمجية شيوعاً فإذا كنت مبرمجاً بإحدى اللغات التي تستخدم == للمقارنة، كالجافا والـ ++C والـ PHP فحتماً قد أخطأت ولو لمرة في كتابة الكود السابق ليصبح كالتالي: $a=1; if($a = 5) // سيتم إسناد 5 إلى المتغير بدلاً من القيام باختبار محتوى المتغير { echo "Five. "; // نظراً لعملية الاسناد السابقة سيتحقق الشرط وسيتم تنفيذ هذا السطر } else { echo "Not five. "; // لن يتم تنفيذ هذه العبارة } echo "a = $a"; // الناتج a = 5 في الحالة الثانية وبسبب الخطأ في كتابة المقارنة، ومع أن a تساوي 1 فإن البرنامج سيطبع Five والسطر الأخير سينتج عنه a = 5. مفسّر اللغة لن ينبهك عن هذا الخطأ فهو Logical error وليس Syntax error. وسيستمر البرنامج بالعمل وإعطاء نتائج خاطئة بدون أن تعلم. الممارسة الصحيحة هي عكس جملة المقارنة وجعلها هكذا: if(5 == $a) فعند اتباعك هذا الاسلوب ستتجاوز تلك المشكلة فلو كتبت = بدلاً من == فإن المفسر سيصدر في الغالب رسالة خطأ أو أن الصفحة الناتجة ستكون فارغة (بالاعتماد على إعدادات PHP) وبالتالي لن ترتكب هذا الخطأ مرة أخرى في حياتك فالمفسر هو من سيقوم بتذكيرك في كل مرة. فقط قم بالتعود على هذه الممارسة. سبب إصدار رسالة الخطأ في الحالة الثانية هو أنه لا يمكن إسناد متغير إلى رقم بينما يمكن إسناد رقم إلى متغير. $a = 100; // ممكن 100 = $a; // غير ممكن أتمنى أنني قد قدمت معلومة قد تفيد البعض منكم.
مواضيع عشوائية - تم فتح معرض الصور لمسابقة Photo5 - عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا - قريباً على يوتيوب، مسلسلات تلفزيونية كاملة - صندوق مسابقة Photo5 من Canon وصل! - نبيل يستخدم آيفون iPhone
مواضيع عشوائية - ذاكرة USB فلاش ميموري بـ 4.99 دولاراً فقط - عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا - قريباً على يوتيوب، مسلسلات تلفزيونية كاملة - تطوير المدونة 1 - ثلاثة أسابيع بدون كتابة ونشر |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
تطوير نبيل
جميع الحقوق محفوظة 2008 - 2010 لأفضل عرض يفضل استخدام متصفح إنترنت إكسبلورر أو فايرفوكس مع دقة شاشة 1024 × 768 بكسل |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||