|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2010-09-10 09:52:09 am بتوقيت جريتنش
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
القائمة الرئيسية - الصفحة الرئيسية - القائمة البريدية - عن المدونة - اتصل بي مواضيع عشوائية - إعلان ويندوز 7 - أساتذة كان لهم أثر .. - هل تشرب الماء حاراً أم بارداً؟ - ويندوز 7: أداة القص - كمبيوتر محمول بعشرة دولارات الأقسام - المدونة [ 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; // غير ممكن أتمنى أنني قد قدمت معلومة قد تفيد البعض منكم.
مواضيع عشوائية - كيف أصبح كاتباً وأجذب زواراً كثر؟ - برنامج iPhone 2.2 - التحديث الآخير للآيفون - حوار مع رجل أسترالي - خروف أسترالي لعيد الأضحى لعام 2009 - تجربة شخصية: نظام تشغيل آيفون 4.0 الجديد
مواضيع عشوائية - نقاش حول "تعريب" و "يملي" - تم بحمدلله نشر الموقع بنجاح - كأس ملبورن - من أذكى: الكمبيوتر أم الإنسان؟ - إطلاق الجيل الرابع من آيبود iPod 4G |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
تطوير نبيل
جميع الحقوق محفوظة 2008 - 2010 لأفضل عرض يفضل استخدام متصفح إنترنت إكسبلورر أو فايرفوكس مع دقة شاشة 1024 × 768 بكسل |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||