حارث

قواعد أساسية لكتابة Function أو Sub

13 ردود في هذا الموضوع

ملاحظات:

1- نعني بالوظيفة هنا Function أو Sub

2- هذه القواعد مأخوذة من كتاب علم نفسك برمجة أكسس 2002 يورك برس York Press لكن بكثير من التصرف بل بإعادة صياغة

3- أتمنى من الإخوان الزيادة على هذه القواعد مما اطلعوا عليه أو استفادوه من تجاربهم ، لعل الموضوع يزداد إثراء .

القاعدة الأولى : اجعل الأسطر المتكررة في وظيفة

إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة

وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود الذي يتكرر مرات عديدة .

ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل عليها أو اكتشفت أن فيها خطأ ، حيينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى .

أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون كل ما عليك هو التعديل في هذه الوظيفة

القاعدة الثانية : حاول قدر الإمكان أن تكون الوظائف قصيرة

ذلك أن الوظيفة إذا لم تكن قصيرة فإن هذا يعني أنها تقوم بعدد من الأعمال ، والمفضل أن يكون ما تقوم به الوظيفة عمل محدود ، لكي تسهل صيانتها ولكي يمكن إعادة استعمالها.

القاعدة الثالثة : أفضل الوظائف لا تتطلب سوى عدد محدود من الوسائط .

وذلك لأنها لا تقوم إلا بأعمال محدودة . لذا حاول إنشاء وظيفة قصيرة وقوية تحتوي على عدد محدود من الوسائط ، بحيث يكون كل ما عليك هو التأكد من صحة تمرير الوسائط التي تحتاجها الوظيفة .

ما هي الوسائط ؟

هي تلك العوامل التي يتم إرسالها إلى الوظيفة أو الروتين الفرعي حتى يتم تقييمها أو تعديلها عن طريق سطور الشفرة في الوظيفة أو الروتين الفرعي ، أي أنها هي البيانات التي يتم نقلها بين أقواس مستديرة في الروتين الفرعي أوالوظيفة .

مثلا :

function MyTest(A as String,B as Integer) as boolean

sub DoTest(A as variant,B as Integer)

فهنا B , A هما وسيطان يتم تمريرهما للوظيفة MyTest أو الروتين الفرعي DoTest

القاعدة الرابعة : استخدم معرفات الوسيطة لمنع إساءة استخدام المتغيرات

استخدم معرفات الوسيطة ByVal ByRef Optional لكي توضح تماما للبرنامج الغرض الذي تريده أثناء تمرير المتغيرات كوسائط .

ما هي المتغيرات ؟

إنها باختصار ما يفضل أن نعلن عنها باستخدام Dim أو Const أو Global

فمثلا :

Dim A as Integer

A هي متغير

وحتى لو استخدمت A بدون الإعلان عنها فإن هذا لا ينفي عنها أنها متغير

راجع الرابط التالي للاستزادة :

http://www.arabteam2000.com/vb/showthread....&threadid=17221

القاعدة الخامسة : استخدم البرمجة الشرطية

المراد بهذه القاعدة أن عليك أن تفترض حين كتابة الوظيفة أن هناك شروطا تم التأكد منها في الوسائط الممررة قبل تمريرها ، بحيث يكون التأكد من تطبيق هذه الشروط قبل تمرير الوسائط وليس أثناء عمل الوظيفة

ويفضل أن تنص على هذه الشروط في الوظيفة كتعليق

ولا مانع من إجراء اختبار سريع للتأكد من تطبيق هذه الشروط بحيث أنه في حال عدم تطبيقها توقف عمل الوظيفة دون أي معالجات أخرى .

والغرض من هذه القاعدة هو تقليل سطور الوظيفة وتبسيطها .

القاعدة السادسة : استخدم التعليقات عند الحاجة إليها

قم بإضافة عبارات تصف ما تقوم به سطور الوظيفة ، وأسباب استخدامها ، فهذا أفضل دليل لك ولغيرك عند مراجعة الوظيفة أو تعديلها أو محاولة الاستفادة منها . خاصة أنك قد تراجع الوظيفة بعد فترة طويلة من كتابتها ، مما يصعب عليك أن تتذكر المراد ببعض الأسطر ولماذا كتبت .

مع ملاحظة أن بعض الأسطر في الوظائف لا تحتاج إلى تعليق ، لأنها واضحة المعنى والهدف .

ومما قد يساعد على هذا الوضوح تسمية المتغيرات والوسائط بأسماء لها معاني ، بحيث إذا رجعت لها بعد مدة طويلة تعرف المراد بها بمجرد الاطلاع عليها دون أي تعليق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أشكرك أخي حارث على هذه المعلومات القيمة ولي ـ بإذن الله ـ في نهاية هذا الأسبوع حديث عن تعريف المتغيرات سبق أن وعدت به

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك أخي حارث

فكرة هذه الدروس ممتازة آمل المواصلة فيها وأتمنى لكل من يستفيد من هذه الدروس أن يحث على استمرارها وتشجيع من يتصدى لها والكلمة الطيبة الجميلة لا تكلف شيئا .

تحياتي للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله خيرا

و فى انتظار المزيــــــــــــــ(f)ــــــــــــــــــــــــــــد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

.. الأخ حارث: جزاكم الله خيرا(f).. ومع تلال لكتب فى الVB , إنما معرفة المعلومة من إخواننا بالمنتدى دايما لها تاثير وتوفير فىالوقت والجهد و حبذا لو بالأمثلة المفيد ة جدا من الأخوة هنا.

الأخ أبو هاجر: من دلوقت فى إنتظار دروسك فى تعريف المتغيرات وبالله عليك أوصيك بمثال من أمثلتك الحلوة. ومع مستوى الأعضاء المتقدم إن شاء الله مش حأكون وحدى المستفيد ......وجزاكم الله مقدما(f)

الأخ أبوهادى.. جزاكم الله خيرا لتذكيرنا بحق الشرح(f)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جزاك الله عنا كل خير أخي العزيز

ولك مني خالص التحية والتقدير

دربــــــك خضــــــر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور اخوي وبارك الله فيك ،،،، ومنكم نستفيد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك وجزاك الله كل خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك على هذا المجهود الطيب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
On 1/15/2003 at 0:59 AM, كثمان الصيعري said:

الله يجزك كل الخير على هذا الشرح وفي انتظار المزيد بأذن الله

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .