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

2010-09-08 10:20:14 pm بتوقيت جريتنش



September 2010
12345
6789101112
13141516171819
20212223242526
27282930

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

مواضيع عشوائية
- سلسلة حوارات مع طلاب في الغربة
- تم بحمدلله نشر الموقع بنجاح
- القبض على اللصوص عن طريق شبكة الويب
- عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا
- إطلاق الجيل الرابع من آيبود 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" إذا لم يكن كذلك.

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


$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 مرات المشاهدة : 726
التصنيف: برمجة عدد التعليقات : 7

مواضيع عشوائية
- تم فتح معرض الصور لمسابقة Photo5
- عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا
- قريباً على يوتيوب، مسلسلات تلفزيونية كاملة
- صندوق مسابقة Photo5 من Canon وصل!
- نبيل يستخدم آيفون iPhone

عبدالرحمن اسحاق كتب:
كنت أقع دائماً في هذا الخطأ وكنت فقط بحاجة إلى التعود.
حل رائع، شكراً لك
التاريخ: 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


الاسم *
الإيميل {مخفي} *
الموقع
التعليق *
رمز التأكيد
الرمز d510
مواضيع عشوائية
-
ذاكرة USB فلاش ميموري بـ 4.99 دولاراً فقط
- عصر الأربعاء: هزة أرضية أخرى تزور ملبورن، أستراليا
- قريباً على يوتيوب، مسلسلات تلفزيونية كاملة
- تطوير المدونة 1
- ثلاثة أسابيع بدون كتابة ونشر


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

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

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