قبل أن ننتقل إلى الحديث عن المواقع الإلكترونية، يجب أن نتطرق إلى أمر شديد الأهمية في البرمجة، وهو الأخطاء. فالبرنامج بلا أخطاء مثل الزواج بلا مشكلات، وكلنا نعلم أن هذا مستحيل. فمهما بلغ الحب والتقدير بين الزوجين، لن تخلو الحياة من المشكلات. لذلك نجد المبرمج، بعد فترة قصيرة، يتعايش مع الأخطاء البرمجية كما يتعايش المزارع مع الحشائش الضارة. ومن لم يستطع أن يكتسب هذا التكيّف، سيترك المجال ويطلّق البرمجة قبل أن ينجب أول برنامج.
ما أنواع الأخطاء التي قد تواجهك؟
تنقسم الأخطاء التي قد تواجهك أثناء تطوير البرنامج إلى ثلاثة أنواع رئيسية:
- أخطاء التجميع (Compiler Errors).
- أخطاء وقت التشغيل (Run-Time Errors).
- الأخطاء المنطقية (Logic Errors).
1. أخطاء التجميع (Compiler Errors)
هي الأكثر شيوعًا، وتنشأ عن خطأ في كتابة الأكواد. فلكل لغة برمجة قواعد كتابة خاصة بها تسمى (Syntax)، يتحول الكود وفقًا لها إلى شكل يستطيع الحاسب، كجهاز إلكتروني، أن يتعامل معه. وبمعنى أدق: يتحول الكود إلى إشارات رقمية (1 و0)، الواحد يمثل وجود إشارة كهربية، والصفر يمثل غيابها. فإذا كان في كتابة الكود خطأ، لا يستطيع الحاسب أن يتعامل معه، ويقف عاجزًا عن معالجته.
2. أخطاء وقت التشغيل (Run-Time Errors)
تظهر هذه الأخطاء أثناء تشغيل البرنامج، ويمكن أن تنشأ لأكثر من سبب، منها على سبيل المثال:
- محاولة إتمام عملية مستحيلة، كالقسمة على صفر.
- تشغيل ملف صوتي تالف، أو لا يحتوي على بيانات صوتية.
- حفظ ملف في مكان غير موجود، أو تم حذفه.
تظهر هذه الأخطاء أثناء اختبار الأكواد، وقد تظهر أيضًا أثناء الاستخدام العادي للبرنامج إذا لم تمر أكواده بالاختبارات الكافية. فهذا النوع يحتاج إلى اختبار البرنامج على كل الاحتمالات المتاحة للمستخدم.
ويمكن تجنبه بفهم عميق لطبيعة المشكلة التي تتصدى لها الأكواد، أو طبيعة الخدمة التي تؤديها، إضافة إلى مستوى خبرة المستخدم النهائي وثقافته.
وبشكل عام، يجب أن تقوم الاختبارات على كل الطرق الممكنة التي قد يتعامل بها المستخدم مع البرنامج، وعلى طبيعته التخريبية أيضًا، بعيدًا عن الاستخدام المنطقي أو الواعي بطريقة عمل الأكواد.
3. الأخطاء المنطقية (Logic Errors)
هي الأخطاء التي تمنع البرنامج من أداء الدور المطلوب أو المتوقع منه.
ولهذا فهي من أخطر الأنواع وأصعبها اكتشافًا. فقد تُجمَّع الأكواد بنجاح، وتخلو من أخطاء الكتابة، وتعمل بكفاءة في المعالجة والتخزين، لكن الخطأ المنطقي يسبب مشكلة خلف الكواليس تؤدي إلى خطأ في النتائج النهائية. هذه الأخطاء لن تعطّل البرنامج ولن توقفه، لكنها ستُخرج نتائج خاطئة أو غير مناسبة، وهذا سينعكس على ثقة المستخدم في إمكانات البرنامج وجدوى استخدامه.
مثال ذلك حقل ينتظر من المستخدم إدخال تاريخ. فتاريخ 11 سبتمبر 2010 يُدخَل بهذه الصورة:
اليوم / الشهر / السنة = 11/9/2010
فإذا لم يُوضَّح الترتيب للمستخدم، فقد يُدخل التاريخ خطأً ليصبح 9/11/2010.
ولك أن تتخيل حجم المشكلات التي قد تنشأ عن خطأ كهذا. فالمشكلة لن تظهر إلا عند استرجاع البيانات، وربما لا تظهر أبدًا، وقد تترتب عليها خسائر تنتهي بالتوقف عن استخدام البرنامج تمامًا. وهذه ليست مبالغة، فصاحب العمل يستثمر وقته وماله في البرامج ليتجنب مثل هذه المشكلات، فإذا وجد أن البرنامج نفسه هو مصدر المشكلات والأخطاء، سيقرر استبداله أو الاستغناء عنه. ولن يشفع للبرنامج حينها أن الخطأ بشري من المستخدم، لأن البرنامج يجب ألا يسمح للمستخدم بالخطأ.