الكل يطمح بان يكون مبرمج Visual Basic محترف او خبير وهو شئ لايأتي بين ليلة وضحاها وليس بالامر الهين. الكثير من المبرمجين قضوا اكثر من عشرات السنين على لوحة المفاتيح، مع ذلك، مازالوا مبتدئين بسبب الخبرة المحصورة التي لديهم. قد ترشدك هذه المقالة الى الاحتراف في البرمجة.
ابدأ بالاساسيات، تعلم كيف تبرمج عن طريق قراءة كتب التعريفية والتي تعتبر المدخل الابتدائي للبرمجة بـ Visual Basic. استكشف جميع المزايا الاساسية المتوفرة في اللغة. اختبر الامثلة التي تأتي مع Visual Basic او البرامج القابلة للانزال من مواقع البرمجة المختلفة في الانترنت.
ضع في عين الاعتبار، الامثلة البسيطة غرضها توضيح مبدأ واحد او اثنين على الاكثر. فبقية المثال عديمة الفائدة لان معظم هذه الامثلة هدفها هو التركيز على نقطة معينة وفي الحقيقة لن تقدم لك طرق واساليب جيدة في البرمجة.
الخطوة التالية
بالاعتماد على الوقت المستغرق لتعلم الاساسيات، قد تحتاج الى عدة شهور حتى تصبح مبرمج منافس. والان حان وقت تعلم تفاصيل متقدمة. في مجال Visual Basic، فقد تشمل هذه التفاصيل مواضيع متقدمة كبرمجة العميل الخادم Client/Server، مكونات COM كمشاريع ActiveX، برمجة قواعد البيانات، بيئة التطوير المتكاملة نفسها (كالاضافات Add-Ins)/ اجراءات برمجة واجهة التطبيقات API الخ.. الكتب المتقدمة والامثلة العملية قد تفيدك.
راقب المنتديات وسجل في القوائم البريدية. ستتعلم الكثير عند قراءتك لإجابات الاسئلة في المنتديات، وستتعلم مواضيع جديدة عند تسجيلك في القوائم البريدية حتى تضعها في عين الاعتبار.
عودة الى المنتديات، اذا صادفت سؤال تعتقد انك تستطيع الاجابة عليه، قم بالاجابة عليه. او حتى اذا كنت تعتقد انك تستطيع تخيله او الافادة بشئ، قم باظهار ما عندك. الكثير من الناس قد يسألون اسئلة لم تعتقد انك ستسأل هذه الاسئلة لنفسك. تعقب الاجابات قد يفيدك الكثير!
الاحتراف في برمجة Visual Basic
اذا تمكنك من المواضيع المتقدمة التي ذكرتها سابق، فان مبرمج Visual Basic محترف! قد تحتاج هذه الامور مدة سنة لانجازها باعتماد على الوقت التي تمضيه لها.
حتى تصبح مبرمج محترف خبير حقيقي، تحتاج الان الى تعلم لغة برمجة اخرى كـ Delphi، C ++ الخ.. مع ابقاء نظرة محايدة وواسعة. من المذهل جدا انك تجد الكثير من الناس يدخلون في مناوشات الى حد الحروب الدينية! في اثبات ماهي افضل لغة برمجة. وهي في الحقيقة مضيعة للوقت. لانك تستطيع عمل أي شئ باي لغة برمجة.
جميع لفات البرمجة لديها شئ لتقدمه. هي جيدة لانجاز مهام معينة وسيئة في محاولة انجاز مهام اخرى. تعلم نقاط القوة ونقاط الضعف في كل لغة. قارنها مع لغة البرمجة التي تتقنها الان. اذا كانت احدى لغات البرمجة لديها نقطة قوة في انجاز مهمة تكون نقطة ضعف في لغة اخرى، حاول كيفية انجاز هذه المهمة لتقوية واضافتها الى لغة البرمجة تلك.
بعد تعلمك للغات برمجة مختلفة، سترى العينات المشتركة التي تقدمها. ستتعلم كيف تكيف لغة برمجة حتى تقدم الميزة المتوفرة في اللغة الاخرى. ستتعلم كيف تسرق التقنيات من لغة الى اخرى حتى تغطي نقاط الضعف التي بها. في هذه الحالة فقط، انت خبير بحق!
اكتشاف الاخطاء ( للمبتدئين )
مما لا شكل فيه، فان احد اسباب انتشار الشعرات البيضاء في شعور المبرمجين هو الاخطاء البرمجية. فكم من مبرمج كسر شاشة جهازه بسبب كثرة الاخطاء غير المتداركة في برنامجه، وكم من مبرمج اوقف تكملة مشاريعه بسبب عدم معرفة مصدر الخطأ. كتابة برنامج دون اخطاء شئ يتحقق في الخيال فقط! لكن قد تجد اساليب في هذه المقالة لتخفيف الاخطاء والمشاكل البرمجية في برنامجك.
1) فكرة عامة
تصنف الاخطاء في أي لغة برمجة الى قسمين على اساس وقت حدوثها اما في وقت التصميم او وقت التنفيذ. هذه الاخطاء تسبب انهيار برنامجك وانهاء تنفيذه. بالاضافة الى ذلك، يوجد نوع من الاخطاء التي لا تظهر لك بشكل مباشر تعرف بالشوائب. لنلقي نظرات الى هذه الانواع:
اخطاء وقت التصميم Design Time Errors
وقد تسمى ايضا بالاخطاء النحوية Syntax Errors وهي اسهل انواع الاخطاء اكتشافا واصلاحا. وقت حدوث هذه الاخطاء يكون في مرحلة التصميم او الترجمة للبرنامج. سببها الرئيسي في طريقة كتابة العبارات البرمجية الخاطئة. فمثلا قد تكتب اسم دالة ليست موجودة، او تنشئ حلقة For بدون اقفالها باستخدام Next.
توفر لك بيئة التطوير المتكاملة لـ Visual Basic اداة في قمة الروعة هدفها قنص هذه الاخطاء تلقائيا بمجرد الوقوع فيها وذلك بعد الضغط على المفتاح ENTER. مثلا، قم بكتابة X == 4 واضغط مفتاح الادخال ستلاحظ ظهور رسالة توضح لك الخطأ وقد قلب لون السطر بالاحمر. تعرف هذه الميزة بالتدقيق النحوي التلقائي Auto Syntax Check والتي تستطيع الغاء عن طريق الاختيار Auto Syntax Check الموجود في خانة التبويب Editor في نافذة الخيارات Options. لا اعتقد انك ستلغيها يوما من الايام اليس كذلك؟!
اخطاء وقت التنفيذ Run Time Errors
وقت ظهور هذه الاخطاء مختلف. فلن تظهر الرسالة المزعجة وقت كتابة الكود وانما في وقت التنفيذ (أي بعد الضغط على F5). عندما يصل المفسر عند سطرصحيح نحويا لكنه خاطئ منطقيا ستظهر رسالة مفيدة بعنوان Run Time Error ويظهر تحديد لمكان السطر الذي وقع فيه الخطأ. مثلا اكتب هذا الكود:
Code:
--------------------------------------------------------------------------------
Dim X As Byte
X = 256
--------------------------------------------------------------------------------
من الواضح ان الصيغة النحوية لهذا الكود صحيحة لكن منطقيا خطأ! جرب تنفيذ البرنامج وستلاحظ ظهور رسالة خطأ OverFlow بسبب ان القيمة القصوى التي يحملها أي متغير من نوع Byte هي 255. طبعا اخطاء وقت التنفيذ كثيرة جدا جدا، فانت عندما تصمم البرنامج تتوقع ان كل الاحتمالات الخارجية كما هي في حالة تصميم البرنامج. مثلا لو وجد في احد سطور برنامج امر يقوم بمسح ملف معين وكتبت هذا الكود:
Code:
--------------------------------------------------------------------------------
Kill “FileName.EXT”
--------------------------------------------------------------------------------
قد عمل معك بالشكل المطلوب، لكن افترض ان الملف لم يكن موجود؟ فان رسالة الخطأ سيكون لها نصيب من عمر تنفيذ البرنامج. فلو كنت ذكيا ستتأكد من وجود الملف باستخدام دالة Dir ومن ثم حذفه:
Code:
--------------------------------------------------------------------------------
If Dir$(“FileName.EXT”) Then Kill “FileName.EXT”
--------------------------------------------------------------------------------
يبدو ان ذكائك خارق جدا يا قارئ هذه السطور لكن مهلا كاتب هذه السطور لديه شئ اخر ليخبرك. ماذا لو كان الملف موجود لكن خاصية ReadOnly مدعومة به أي انه غير قابل للحذف؟؟ ارأيت رسالة الخطأ ستظهر من جديد. اذا ستستخدم ذكائك الخارق وتتأكد من وجود الملف ومن ثم من عدم وجود خاصية ReadOnly:
Code:
--------------------------------------------------------------------------------
If Dir$(“FileName.EXT”) Then
If Not (GetAttr("FileName.EXT”) And vbReadOnly) Then
Kill “FileName.EXT”
End If
End If
--------------------------------------------------------------------------------
حسنا يا قارئي الفاضل. لك مني فائق التقدير والاحترام على محاولتك الرائعة لتجنب الخطأ لكن مع ذلك فهناك احتمال اخر لوقوع الخطأ!!! افترض ان الملف FileName.EXT يتم استخدامه من قبل برنامج اخر Process وكانت عليه خاصية الاقفال (أي مسموح للبرنامج الذي يستخدمه فقط) فانك لن تستطيع فتح الملف وستظهر رسالة الخطأ التي اخبرتك بها واكون قد غلبتك في هذا التحدي.
القضية ليست من يغلب من، فكلنا مبرمجين ننسى كثيرا. لكن لابد من أي مبرمج وضع جميع وكافة الاحتمالات الممكنة لتفادي وتجنب الاخطاء كما سنرى لاحقا.
الشوائب Bugs
قد يكون الكود سليم من ناحية نحوية ولا توجد به أي اخطاء في وقت التنفيذ لكن به شوائب. لا يوجد برنامج الا وبه شوائب. الشوائب هي اخطاء في سلوك تنفيذ البرنامج لكنها لا تسبب في ايقافه، وهي صعبة الايجاد والاكتشاف. لذلك، تجد غالبا في البرامج التجارية الكبيرة صدور نسخ تجريبية Beta توزع على اشخاص وشركات معينة الهدف منها تجربة البرنامج والتحقق من واكتشاف الشوائب الموجودة فيه. من اكبر الاخطاء الذي يقع فيها المبرمج هي محاولة اكتشاف الشوائب بنفسه! والصحيح لن تستطيع اكتشاف الشوائب الا عن طريق غيرك. ففي حالة تجربة برامجك الشخصية فانك اكثر من يعرف طريقة التعامل معها، لكن في حالة وجود نسخة من البرنامج عند شخص اخر فالوضع يختلف، وتبدأ الشوائب بالظهور لديه.
Visual Basic به شوائب!!! هناك الكثير من الشوائب التي تكتشف شهريا وتصدر شركة Microsoft تقارير عنها تجدها بشكل دوري في مكتبة MSDN، بعضها تم اصلاحه وبعض لا. المقصد من هذا الكلام، انه مهما كان مستواك في البرمجة لابد من وجود شوائب في برنامجك.
يوجد الكثير من الكتب التي تناقش مسألة الشوائب البرمجية وكيفية تفاديها اقصد الاقلال منها. احاول في نهاية هذه المقالة اعطاءك تلميحات شخصية قد تفيدك لتجنب الشوائب.