اهم الاخطاء التى يقع فيها المطورين

لست هنا لأزعم أنني الوحيد الخالي من الأخطاء أقف على برج عالي ليس لي هم إلا أن أرصد الأخطاء التي يقع فيها المبرمجون .. بل سأذكر بعض الأخطاء التي تزعج المستخدمين .. فالمبرمج وظيفته هي أن يلبى طلبات المستخدمين و أي شئ يزعج المستخدم فهو من تقصير المبرمج غالباً .. و طبعاً أنا لن أخلو من تلك الأخطاء بل دائماً يجب أن أسعى لتصحيحها ..
و قبل أن نتحدث عن تلك الأخطاء ينبغي علينا أولاً أن نتحدث عن أنواع الأخطاء البرمجية .. و هي لا تتوقف على نوعين فقط بل تتعدى إلى أكثر من ذلك ..
و أول نوع هو الأخطاء النحوية أو ما يعرف بالـSyntax Errors .. و هي أهون الأخطاء و أخفها و لا يوجد برنامج في العالم كله يوجد به هذا النوع من الأخطاء .. ببساطة لأن هذا الخطأ يتعلق فقط بالخلل الذي يوجد في الكود .. فمثلاً إذا قمت بإستخدام متغير بدون تعريفه و ذكر نوعه في لغة السي فهذا يعد خطأ نحوي في البرنامج و كذلك إذا نسيت وضع علامة الفاصلة المنقوطة “;” آخر كل أمر في لغة سي فإن هذا أيضاً من الأخطاء النحوية .. و لن يعمل أي برنامج قط إذا كان به خطأ نحوي واحد .. و هذه الأخطاء في العادة تحتاج من الوقت لحلها عند المبرمج المتوسط ما يقل عن خمس دقائق في كود به ألف سطر .. لذلك ليس هناك برنامج في الدنيا كلها به أي خطأ نحوي ..
النوع الثاني من الأخطاء هو الأخطاء المنطقية أو ما يعرف بالـBugs (القمل) و هذه الأخطاء مثل القسمة على صفر و الحلقات التكرارية اللا نهائية و الدخول على عناوين متغيرات برنامج آخر بالخطأ و الكتابة عليها مما يجعل النظام يوقف عمل البرنامج و تظهر رسالة Crash .. و هذه الأخطاء كثيراً ما تتواجد في النسخ التجريبية Beta من البرامج و الأنظمة
و النوع الثالث من هذه الأخطاء لا يتعلق بالكود و ما فيه من أخطاء نحوية و منطقية و قمل Bugs .. بل يتعلق بجودة البرنامج و سرعته و توفيره في الذاكرة .. و من الأخطاء في هذا الباب حجز كمية كبيرة من الذاكرة heap و عدم إرجاعها و كذلك أخذ وقت طويل في حساب أمر معين كان يمكن أن يتم حسابه بخوارزمية سريعة و كذلك عمل بعض العمليات في البرنامج لا فائدة أو أي شئ في يبطئ البرنامج و كان يمكن أن نجعله أسرع من ذلك .. و هذه الأخطاء موجودة عند كثير من المبرمجين و حدث و لا حرج
أما النوع الرابع من الأخطاء هي أخطاء تتعلق بالشكل العام للبرنامج و دعمه .. مثلاً بعض البرامج تجدها صعبة الإستخدام و معقدة و تحتاج إلى دورة تعليم كيفية إستخدام البرنامج لكي نعمل عليه بل و أحياناً كثيرة يكون عمل برنامج آخر يقوم بنفس الوظيفة أسهل بكثير من تعلم كيفية إستعماله .. و هذا موجود بشدة ..
ذكرنا بعض أنواع الأخطاء و الآن نذكر أمثلة على هذه الأخطاء ..
  1. عدم إختبار البرنامج بالشكل الصحيح .. كثيراً ما يقوم المبرمج بعمل برنامجاً ما ثم يجربه على حاسوبه الشخصي ثم يقوم بنشره .. و في هذه الحالة تأكد بنسبة 100% أنه سيكون مليء بالقمل و ربما الصراصير !! هذا المبرمج الذي قام بإختبار البرنامج على حاسوبه الشخصي تأكد تماماً أن ظروف حاسوبه جيدة و صالحة لعمل البرنامج لكنه لا يدري هل ظروف الحواسيب الآخرى صالحة لعمل البرنامج أيضاً ؟؟ .. ينبغي أن يقوم المبرمج بعمل إختباران أساسيان في البرامج العادية و بإختبار ثالث في الألعاب .. يجب أن يختبر السرعة على جهاز سريع و على جهاز متوسط و على جهاز بطيء حتى يتأكد ان السرعة جيدة .. فأحياناً في الألعاب تجد أن اللعبة تعمل ببطء شديد على بعض الحواسيب و بسرعة جيدة على البعض الآخر و بسرعة جنونية على الحواسيب الحديثة .. و الإختبار الثاني هو إختبار الإعتماديات Dependencies .. بعض البرنامج تحتاج إلى حزم و برنامج آخرى لكي تقوم بالعمل .. مثلاً كل برامج الJava تحلتاج إلى Java Virtual Machine لكي تعمل .. و طبعاً في الغالب لا ينصح بإستعمال الJava في البرامج الحاسوبية العادية لأنه تحتاج إلى Java Virtual Machine و أكثر الناس لا يعرفون كيف يثبتونه و ربما يأتيه البرنامج على إسطوانة CD ثم يجد أنه بحاجة إلى Java Virtual Machine أو إلى .Net FrameWork و مكتبة من المكتبات أو محرك ألعاب أو GameMaker أو غير ذلك .. يجب على المبرمج إذا أراد أن يكون برنامجه جيداً أن يحاول بقدر الإمكان أن يقلل من هذه الإعتماديات و أن يقوم بتوفيرها إذا لزم الأمر و أن يقوم برنامجه بتنزيلها أو على الأقل يشرح للمستخدم شرحاً جيداً سهلاً ميسراً كيف يثبتها .. و أما الإختبار الثالث المتعلق بالألعاب فهو أن يختبر هل ستعمل اللعبة على أنواع مختلفة من كروت الشاشة أم فقط تعمل على نوع محدد أو على جيل محدد ..
  2. عدم جعل البرنامج صديق للمستخدم User Friendly .. فكثير من البرامج تجدها معقدة و صعبة مما يضطر المستخدم إلى تضييع بعض الوقت في تعلمها (و ربما تكون هذه سياسة بعض شركات البرمجيات حتى تكسب من وراء دورات تعليم البرنامج) .. فيجب على المبرمج أن يجعل البرنامج سهل و ميسر للمستخدم بقدر الإمكان و ألا يضطره إلى أن يتعب في تعلمه أو الإعتياد عليه .. و هذا غالباً يكون بسبب كسل المبرمج .. حيث أنه يقوم بكل شئ في البرنامج و يتكاسل أن يقوم بجهد بسيط لكي يجعل البرنامج User Friendly.
  3. الخطأ الرابع متعلق بالبرامج المتوفرة على شبكة الإنترنت سواء المجانية أو الغير مجانية .. و هي أن كثيراً من المواقع إذا أخرجت أي إصدار جديد من البرنامج تقوم بحذف الإصدارات السابقة .. و طبعاً هذه مشكلة بالنسبة للمستخدم .. فأحياناً يكون الإصدار الأخير فيه بعض المشاكل لم تكن موجودة في الإصدار السابق .. أو يكون المستخدم قد إعتاد على واجهة البرنامج القديمة التي سهلت عليه الوصول إلى الأشياء التي يريدها و قد تغيرت الواجهة في الإصدار الأخير بحجة الواجهة البراقة اللامعة الجذابة !! .. فيجب على المواقع التي توفر البرامج أن تقوم بوضع كل إصدارات البرنامج و أن تجعل الوصول إليها في الموقع سهل (أي يكون الموقع User Friendly هو الآخر).
  4. جعل البرنامج قاصر على ظروف معينة .. مثل أن يجعل البرنامج قاصر على نظام ويندوز فقط .. و يهمل مستخدمي لينوكس و ماك و الأنظمة الآخرى .. مع أنه يمكن بسهولة أن يجعل البرنامج يعمل على جميع الأنظمة و بإستخدام لغة السي و بدون إعتماديات كثيرة .. مثل إستخدام مكتبة QT و أو glut في الألعاب و غير ذلك .. لكن إما أن يكون المبرمج قد تكاسل عن ذلك و إما أن تكون شركة البرمجيات قد إتبعت سياسة الإحتكار المعروفة عند بعض الشركات !! و من ذلك أيضاً أن يجعل البرنامج يعمل على إصدارات معينة من الويندوز فقط .. و ربما عندما يذكر إعتماديات البرنامج يقول إصدار Flash رقم 9 .. و طبعاً بما أن موقع Adobe Flash قد وقع في الخطأ رقم 3 فإن المستخدم لن يستطيع إستعمال هذا البرنامج لأنه لن يجد إلا الإصدار الأخير !! ..
الخلاصة: هذه بعض الأخطاء التي يشتكي منها المستخدمين .. و لأني أفقه بعض البرمجة أستطيع معرفة سبب هذه الأخطاء .. و تذكر دائماً هذه القاعدة: راحة المبرمج = تعب المستخدم .. و راحة المستخدم = تعب المبرمج .. و القاعدة الثانية: المبرمج وظيفته هي إرضاء و تلبية رغبات المستخدم .. فإذا كنت مبرمجاً .. فإتبع هذه الإرشادات حتى لا تقع في أخطاء بعض المبرمجين !!

ليست هناك تعليقات:

إرسال تعليق