www.Nabeel.ws مدونة نبيل الشخصية اصدار 1.0 بيتا

2010-09-10 09:52:09 am بتوقيت جريتنش



September 2010
123
45678910
11121314151617
18192021222324
252627282930

القائمة الرئيسية
- الصفحة الرئيسية
- القائمة البريدية
- عن المدونة
- اتصل بي

مواضيع عشوائية
- إعلان ويندوز 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" إذا لم يكن كذلك.

غالبية المبرمجين سيكتبون الكود بشكل مشابه للتالي:


$a=1;
// سيتم هنا اختبار محتوى المتغير
if($a == 5)
{
// لن يتم الدخول إلى هذه العبارة
echo "Five. ";
}
else
{
// بسبب أن الشرط غير متحقق فإنه سيتم تنفيذ هذا السطر
echo "Not five. ";
}
// الناتج a = 1
echo "a = $a";


وتعتبر هنا كتابة = بدلاً من == من أكثر الأخطاء البرمجية شيوعاً فإذا كنت مبرمجاً بإحدى اللغات التي تستخدم == للمقارنة، كالجافا والـ ++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; // غير ممكن


أتمنى أنني قد قدمت معلومة قد تفيد البعض منكم.


بلوحة مفاتيح: نبيل تاريخ النشر : 2009-11-17 12:22:29 مرات المشاهدة : 727
التصنيف: برمجة عدد التعليقات : 7

مواضيع عشوائية
- كيف أصبح كاتباً وأجذب زواراً كثر؟
- برنامج iPhone 2.2 - التحديث الآخير للآيفون
- حوار مع رجل أسترالي
- خروف أسترالي لعيد الأضحى لعام 2009
- تجربة شخصية: نظام تشغيل آيفون 4.0 الجديد

عبدالرحمن اسحاق كتب:
كنت أقع دائماً في هذا الخطأ وكنت فقط بحاجة إلى التعود.
حل رائع، شكراً لك
التاريخ: Tue, 17 Nov 2009 الوقت: 02:46:38 PM

Mr.php كتب:
السلام عليكم
الله يعطيك العافية و بصراحة لما قرأت المقالة وجدت نفسي اضحك لأنني ذكرت كم مرة أخطأت في هذه الجملة و سببت لي صداعا

الله يعطيك العافية
و المفروض من الايميل تعرفني
التاريخ: Tue, 17 Nov 2009 الوقت: 04:55:45 PM

Eng. subaa كتب:
بارك الله فيك أستاذي

مع انه مالي علاقة بالبرمجه .. لكن الموضوع حلو سهل الفهم

الله لا يحرمنا من مواضيعك

مع خالص تحياتي
التاريخ: Tue, 17 Nov 2009 الوقت: 07:28:28 PM

admin كتب:
عبدالرحمن: العفو

Mr.php: الله يعافيك وأكيد عرفتك :)

مهندس سباع: الله يبارك فيك وتسلم على التعليق
التاريخ: Wed, 18 Nov 2009 الوقت: 08:45:21 AM

محمد جبلي كتب:
رائع بكل ماتعنيه الكلمة

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

أسأل الله أن يبارك فيك =)
التاريخ: Sun, 07 Mar 2010 الوقت: 11:00:39 PM

admin كتب:
أشكرك على كلامك الجميل
التاريخ: Tue, 09 Mar 2010 الوقت: 08:42:28 AM

غرائب كتب:
بارك الله فيك
ممتاز
التاريخ: Wed, 23 Jun 2010 الوقت: 01:27:16 AM


الاسم *
الإيميل {مخفي} *
الموقع
التعليق *
رمز التأكيد
الرمز d63f
مواضيع عشوائية
-
نقاش حول "تعريب" و "يملي"
- تم بحمدلله نشر الموقع بنجاح
- كأس ملبورن
- من أذكى: الكمبيوتر أم الإنسان؟
- إطلاق الجيل الرابع من آيبود iPod 4G


تطوير نبيل
جميع الحقوق محفوظة 2008 - 2010
لأفضل عرض يفضل استخدام متصفح إنترنت إكسبلورر أو فايرفوكس مع دقة شاشة 1024 × 768 بكسل

مدة تحميل الصفحة 0.05 ثانية/ثواني

تم استعراض الموقع 37325 مرة/مرات
20274 زائر قام بزيارة الموقع