Guest أنس عبد الله

المزايا الخفية في الفيجوال بيسك ( فن البرمجة )

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

مرحبا بكم يا مبرمجين .... :)

بالتأكيد أن الكتب والتعليم لا يزودنا بالمعلومات المطلوبة إن لم ندعمها بالممارسة والتجريب

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

أكيد كل شخص عنده قناعات معينة أثناء بناء برنامجه... وأكيد أيضا أن هذه القناعات تكون رائعة أحيانا ومضرة أحيانا أخرى

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

أنا مثلا (وأعوذ بالله من كلمة أنا .... :) )

- دائما أحفظ نسخة عن برنامجي في حقيبة الملفات وبين الفترة والأخرى أذهب لهذه الحقيبة وأنقر زر تحديث حتى يتم أخذ نسخة احتياطية من برنامجي

- إذا قمت ببرمجة function أو sub معين وكان لهذا الـ function احتمال ورود رسائل خطأ فأجعل قيمته الإرجاعية هي عبارة عن string تعبر عن وصف الخطأ وفي البرنامج الأساسي أستدعي الـ function فإن رجع بقيمة سلسلة نصية فارغة فهذا يعني أن التنفيذ صحيح وإن رجع بقيمة سلسلة نصية غير فارغة فهذا يعني خطأ ويكون وصف الخطأ في هذه السلسلة

- لإزاحة نص معين ضمن محرر الفيجوال بيسك أقوم بتحديد كتلة من الأسطر وانقر على زر الـ TAB أو زري Shift+TAB ، وأنا أحب جدا أن أزريح الأسطر البرمجية التابعة لبعضها البعض .... :)

و و و......

الحقيقة أفكار كثيرة اتبعها في البرمجة ولكن لا تحضرني الآن كلها

أرجو منكم أن تشاركونا لنستكشف معنا فن البرمجة فهنالك العديد من المزايا الخفية التي تظل مبهمة على المبرمجين ويتم اكتشافها بالصدفة...

:):)

0

شارك هذا الرد


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

أخي أنس أشكرك ...

أنا لن أشارك بفونون برمجية بالفيحوال بيسك بل بالفيجوال سي وبشكل عام .. أي ممكن أفيدكم بإذن الله ..

بالنسبة لنقاطك :

أنا أستخدم ال Source Safe في حقظ مشاريعي وهو يأتي مع Visual Studio Enterprise Eddition . وفيه العديد من المزيات في حفظ المشاريع و امكانية متابعة الاصدارات المختلفة من المشروع وامكانية رؤية أي نسخة أو اصدار سابق .. في الحقيقة أيضا هذا البرنامج يدعم ال Multi-Users والشبكة أي أن الشركتن الضخمة تنظم عملية الدخول على الكود عن طريق هذا البرنامج إذ يسمح من أكثر من مستخدم التعديل في نقس الوقت ويقوم بدمج التعديلات بصورة ذكية جدا .. هذا البرنامج ليس مصمم من أجل أن يعمل مع لغة برمجة معينة أو حتى مع كود برمجي حيث يمكن أيضا أن يعمل مع أي ملف نصي أو Binary ... أنصحك بتجريبه ...

ارجاع الأخطاء عن طريق String ليس عملي أبدا .. أنا في الفيجوال سي أستخدم ال Exceptions .. تصور أنك تكتب كود يستدعي حوالي عشرة توابع من تبعونك ترجع مصفوفة فأنت تحتاج إلى 10 تعليمات IF وعشرة أكود لمعالجة ال Error (هذا في أسوء الاحتمالات) . أما باستخدام ال Exception فإنك لن تستخدم ولا IF حتى أنه ليس من الضروري أن ترجع التوابع قيمة الصحة أو الخطأ ، وعتد حدوث أي خطأ فإنه تقوم برفع راية الخطأ أو Raise an exception ومنه يتم النتقال بشك أوتوماتيكي إلى روتين معالجة الخطأ في الكود الاب (إذا كان موجود) .. أعتقد هذا يتم في ال VB عن طريق استخدام On Error Goto ، ولكن لا أذكر بالظبط .

نقطتك الثالثة رائعة جدا وأنا أستخدمها دوما ..

بالنسبة إلى نقاط جديدة .. وهي :

بالنسبة إلى تعريف المتحولات فيفضل أن تسبق برموز تدل على نوعها مثل nCount من نوع Integer و strName من نوع String .. وهكذا ... وبفضل أن تبدا أسماء المتحولات برمز صغير . بالنسبة إلى الثوابت فيفضل أن تكتب بحروف كبيرة مثل NUM_OF_CLASSES . واسماء التوابع تبدأ بحرف كبير مثل GetStudentName ..

سوف أذكر لاحقا أمور أول ماتخطر ببالي ...

:)

0

شارك هذا الرد


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

مرحبا هاني العزيز....

بالنسبة للـ Source Safe فأنا لا أعرف أي شيء عنه، وبإمكانك أن تقول بأنني أعتقد بأنه طفرة من طفرات ميكروسوفت سوف تتلافاها في الإصدارات القادمة للفيجوال ستديو,,, على أي حال سأقوم بتجريبه ... :)

للأسف ليس بالفيجوال بيسك معالجة مركزية للأخطاء فالتعليمات التي ذكرتها أنت تستخدم في كل إجراء على حدة :( ويتوجب على المبرمج أن يعالج أخطاءه في كل إجراء بشكل منفصل... (على فكرة إن Visual Basic.NET فيها معالجة مركزية للأخطاء والحمد لله انتبهت ميكروسوفت إلى هذه الحماقة التي ارتكبتها في اصدارات فيجوال بيسك السابقة )

أنا معك في استخدام حرف صغير قبل اسم المتغيرات وهي عادة جميلة جدا جدا ولكن أنا من وجهة نظري أن يكون حرف واحد فقط لا أن نكتب ثلاثة أحرف مثل ( strName ) أما عن استخدام الأحرف الكبيرة للثوابت فأشكرك جدا على هذه النصيحة وقد أعجبتني وسأطبقها اعتبارا من الآن

ومن العادات البرمجية التي أحبها (وللأسف لا أطبقها دوما)

- التوثيق : يعني وضع الملاحظات ضمن الكود كل عدة أسطر

- تنظيف الكود : أي مراجعة الكود كل يوم أو يومين واستكشاف متحولات وتوابع كان يمكن أن نستغني عنها، أو أحيانا حماقات :) ارتكبناها في البرمجة لا يرتكبها المبتدئ الصغير :)

0

شارك هذا الرد


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

صديقي العزيز أنس ،

ال Source Safe عبارة عن برنامج قوي جدا وضخم ومن سابع المستحيلات أن تستغني عنه Microsoft .. والعديد من الشركات تستخدمه ويوجد له مكاتب كثيرة أحدها إمكانية الاتصال فيه من الانترنت .... يعني تصور أن تقوم Microsoft بالغاء فيجوال بيسك ؟ فهذا نفس الشي ... أما أنه فغير موجود في نسخة Visual Stusio.NET Beta فهذا بسبب أنها مازالت Beta وال Source Safe لا يأتي إلى مع النسخة الكاملة وال Enterprise ..

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

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

فصل التوابع والروتينات كل حسب وظيفته في ملف منفصل.

وفي حالة استخدام ال OOP كل كائن في ملف منفصل.

أيضا من أجل المتحولات نسيت أن أذكر أن متحولات العامة Global يفضل أن تبدأ بالحرف g مثل : g_nStudentNum .. أي متحول عام من نوع Integer .. وإذا استخدت ال OOB فيفضل أن تبدأ المتحولات في الكائن ب السابقة m مثل m_wndTextBox أي متحول لكائن نص وهو عنصر في الكائن .

أخي أنس بالنسبة لاستخدام أكثر من حرف فهو مفيد كثيرا فنحن لدينا في VC مثلا dw تدل على Double Word و lp تعمي Long Pointer و أحيانا تجد lpsz أي Long Pointer to a String Zero terminated .. أو lpcsz أي Long Pointer to a Constant String Zero terminated ..

:)

0

شارك هذا الرد


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

هذا الموضوع جيد جدا ، والمبتدئ عندما يعرف فنون اللغة او بعض الاستخدامات التي يقوم بها بعض المتقدمين ، يستطيع ان يبني فهما برمجيا عالي المستوى ،

ومن بعض الامور المهمة الذي يجب على المبرمج الانتباه اليها :

1- عدم استخدام المتغيرات مالم تحتج اليها . فانت اذا عرفت متغير a ومن ثم وضعت فيه قيمة ومن ثم وضعت القيمة في مربع نص ، فان ذلك يعتبر عملية بطيئة جدا بالنسبة لو انك قمت بالحفظ مباشرة في مربع النص .

2- يجب عليك وضع ملف help مع برنامجك اذا كان كبيرا ، وهذا مهم جدا في البرامج القوية حتى المعمولة بالفيجوال بيسيك ، وانا صراحة اذكر اني عملتها مرة لكنني الى الان لم اصدر اي برنامممج للسوق وانما لاشخاص مندوبون لشركات وهم لم يشترطوا على عمل ملف مساعدة .

3- هذه الملحوظة مهمة جدا جدا .

أن بعض البرامج التي تعتمد على الـِAPI وليس كلها تكون الدوال المستخدمة في البرنامج تجعله اسرع فيما لو انك عملت البرنامج باستخدام دوال او ادوات الفيجوال بيسيك المبنية داخليا . وهذا صحيح في بعض الاحيان وفي البعض الاخر ينتقض . فالدوال المعمولة في الفيجوال بيسيكانما هي معمولة داخليا لكي تكون اسهل واقوى في بعض الاحيان مع انها في بعض الامور لها عيوب لكن التجربة الخاصة بالمبرمج هي التي تثبت ذلك .

وان شاء الله يتم التواصل في الموضوع .

0

شارك هذا الرد


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

تعديل صغير على اسم الموضوع فن كتابة وتنسيق الكود:)

على العموم انا حقول الطريقة الي استخدمها ولا يشترط ان تكون صحيحة ولكنها مفهومة لدي او على الاقل لدى ثلاثة اشخاص او اربعه قمنا بالتعلم من بعضنا البعض

انا استخدم الازاحات طبعا اول اسبوع في تعلمي البرمجه لم اكن اتقيد بذلك ولكن الان اصبح شيء لا شوري

انا لما كنت في سوريا كنت اقوم بعملية الحفظ بعد كل قيامي بكتابة كل سطر برمجي طبعا بسبب انقطاع الكهرباء الي مره حصلت معي وبعدها تعودت عليها حتى في جميع البرامج مثلا في كتابة وثيقة ورد وطبعا انا احاول اقنع الكثيرين بها ولكنهم لايتقيدون وعند حصول هانق بالجهاز فيضيع عملهم هباء

انا استخدم احيانا الاحرف الدالة على نوع المتغير قبل تعريف النتغير مثل

sName

bPassword

وهكذا

عند قيامي ببناء اي برنامج فانا اقوم اولا ببناء الشاشات الخاصة بالبرنامج ومن بعدها ابني قاعدة البيانات في حال كان هناك قواعد بيانات ثم اقوم بالبحث عن برامج مشابه لمعرفة الافكار الجديدة ومن ثم ابدء بوضع الكود وطبعا كثير ما اقوم بالتعديل على الشاشات وقواعد البيانات

في طريقة مهمة انا استخدمها وهي حفظ الكود اي انا اقوم بعمل عملية معينة مره واحده فقط واتعب عليها وبعدها احفظها وعند حاجتها اعود اليها مره اخرى ولا اتعب بها مره اخرى (مثلا عند قيامي في بناء اجراء او العمل مع اداة فاقوم بتوثيقها مع مثال لها بعد الرجوع لجميع خصائصها والتعرف عليها جيدا) ثم لا اقوم بكتايتها مره ثانيه مجرد نسخ ولصق

اقوم بمراجعة الكود دائما ودائما ما اقوم بتعديل الكثير من الحماقات وتقليل عدد الاسطر البرمجيه حيث عند مراجعتها احيانا اشك اني انا من كتبها :)

احاول دائما مشاهدة اكبر عدد من التطبيقات اي كانت لاتعرف على الافكار الجديدة بها لكي اقوم بوضعها بالحسبان عند عمل برنامج جديد

انا دائما مستعجل واضغط نفسي فانا عند قيامي ببناء اي برنامج فانا اضع به الكثير من المميزات ولكن النسخه النهائية تجد انها لاتحتوي الا علة نصف المميزات ليس لاني لا اعرف او تورظت ولكن يا اما تاخرت في تسليم البرنامج او لاني زهقت من البرنامج كله وبدي اياه يخلص باي طريقة

اطول مده جلست فيها مع برنامج كانت لمدة 6 اشهر

انا احب ان يكون المبرمجين كفريق يعني مع بعض ويقومون بالمناقشة وتطوير البرنتمج سوية ولكن هذا حلم ولم يتحقق الا الان

هذا مالدي حاليا

0

شارك هذا الرد


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

السلام عليكم

أشكر الأخوة على المعلومات القيمة :)

أما من ناحيتي من أجل معالجة الأخطاء أفضل أن أضع في كل إجراء أو تابع On Error Resume Next وأقوم بفحص قيمة الخطأ في الأماكن التي أتوقع حدوث الخطأ فيها عن طريق

If Err.Number <> 0 Then

لأقوم بمعالجته والاستمرار

أما بالنسبة لنصيحة الأخ هاني باستخدام ال Exceptions أنا لم أستخدمها ولكن ذلك ممكن في الفيجوال بيسك فلو وضعت معالج خطأ في إجراء وناديت إجراء آخر وحصل خطا فسينتقل التنفيذ إلى معالج الخطأ في الإجراء الأول

0

شارك هذا الرد


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

أخ عامر

ممكن مثال على Exceptions في الفيجوال بيسك من قضلك؟

0

شارك هذا الرد


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

انا لم افهم ماذا تقصدون هل تقصدون انكم لن تستطيعوا ان يتم تحويل الاخطاء الى اجراء معين في الفيجوال بيسك ومعالجتها في مكان واحد ؟ اذا كان هذا قصدكم فهذا ممكن والا قوموا بشرح ماتقصدون لنرى ايش الموضوع

0

شارك هذا الرد


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

تكرم عيونك أخ أنس :)

قم بوضع زر أمر في النموذج وضع الكود التالي في نافذة الكود

Private Sub Command1_Click()
On Error GoTo Handler
Call test
Handler:
MsgBox "Error " & Err.Number & ": " & Err.Description
End Sub

Public Sub test()
Dim a As Integer
a = "String" ' هنا سيحدث خطأ وسيتم الإنتقال ألى معالج الخطأ
End Sub

الأن قم بالتنفيذ خطوة خطوة ولاحظ عملية القفز

0

شارك هذا الرد


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

أخ عامر!!

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

تماما مثل الـ Timer لأنك تستطيع أن توقظ الـ Timer من أي إجراء ضمن التطبيق وتستطيع أن تلغي تفعيله أما الأخطاء فيجب علينا تكرار عبارة On Error Goto >>>> في كل مرة نريد معالجة الأخطاء فيها

فمثلا عندما يحدث خطأ Disk not ready فأنت مضطر لأن تضع مصيدة أخطاء في كل إجراء يلج إلى الأقراص أما هاني فقط قصد بأن هنالك أسلوب معين في الفيجوال سي يمكنه من التعامل مع الأخطاء بشكل عام لكل البرنامج دفعة واحدة وليس لكل إجراء!!!

ولك التحية أخ عامر على التواصل

:):)

0

شارك هذا الرد


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

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

وفعلا تتبع الأخطاء في الفيجوال بيسك فيه صعوبة ويحتاج لمعالجة في كل إجراء

نحن بانتظار الإصدارالجديد... لنرى :)

0

شارك هذا الرد


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

عفوا أعود إلى الموضوع الرئيسي

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

بالنسبة لي انا اقوم بعدة اشياء ارى انها ضروري في عمل اي برنامج لي وهي

اني ادرس الموضوع من جميع جوانبه قبل ما ابداء في عملية البرمجة هذا اولا واغلب الاشياء ادونها في ورق

واحدد ما الذي استطيع عمله بسهولة وما الذي لم اعمله ويمكن عمله وما الذي لم اقوم بعمله ولا استطيع ان اعمله ولكن يمكن عمله وعلي من اسئل للحصول على معلومات عنه

احاول دائما ان اشاهد برامج مبرمجة مسبقا في نفس المجال واستشير من هم اكثر مني خبرة في نفس الموضوع

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

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

ومن ثم اقوم بتصميم الشاشات كما سبق ودكرت

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

دائما احاول ان اجعل برنامجي عام لا يلبي مستخدم او جه ةواحدة لكي استطيع بيعه اكثر من مرة ولاكثر من جهة وفي اكثر من مجال

احاول دائما ابتعد عن الثوابت في البرنامج واضعها كا متغيرات مثلا قيمة الضريبة 5% لا احتفظ بها كا ثابت بل قيمة اضعها في ملف بحيث يمكن التعديل فيها من قبل المستخدم بسهولة

احاول دائما الابتعاد عن المتغيرات الخارجية قدر الامكان

احاول دائما استعمال الوظائف والاجراءات في اغلب الحيان

تصيد الاخطأ مهم جدا جدا

استعمال الهياكل كثيرا في برامحي فا من خلال تعاملي مع البرمجة في مدة الاتقل عن 14 عام رائيت انه افضل شي استعمالها خصوصا في حالة وجود عدة عناصر لها علاقة بي بعض

ابتعد دائما في تصميمي على الادوات الخارجية واستعمل القياسية ويكون شكل الشاشات بسيط وسهل الاستعمل ويشبه شاشات الويندوز غالبا

بالنسبة لتنظيم الكود فهو كما دكر الاخوة في السابق مهم جدا واضع الثوثيق لكل برنامج فرعي او وظيفة واضع هذا الثوثيق باللغة العربية

عند الانتهاء من اي برنامج اقوم بطباعة جميع النمادج التي صممتها فيها والتقارير وثم اقوم بتوثيقها ثوثيق كامل واضع جميع الحسابات التي تتبعها .

تصور عندي برنامج رواتب فيه ثوثيق مكتوب في اكثر من 500 صفحة وفي هذا الثويثق جميع الاجراءت والتعيلات والتحديثات التي اجريتها على البرنامج وكذلك نسخ من جميع التقارير والنماذج وطريقة عمليات الحسبات فيه وتصميم قواعد البيانات وتوضيح الاسم كل حقل ونوعه وطوله وعلاقته وووووووووو

المهم هدا يلي عندي الحين ولو لقيتشي راح اقوله لكم

ارجو ان لا اكون قد اطلت عليكم

لكم تحياتي

0

شارك هذا الرد


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

أشكرك أخي طارق والواضح أنك مبرمج محترف ومهندس برمجي كمان :)

بالنسبة لتصيد الأخطاء فما ذكرته أخي عامر هو تصيد خطأ صادر من الويندوز وليس خطأ نقوم نحن بتوليده .. فمثلا إن كان تابع يقبل أن يكون برامتره يأخذ قيمة بين 10 و 100 وغير ذلك يكون حطأ ، فإنه بالطريقة العادية يرجع قيمة False أو 0 او سلسلة نصية . أما في حالة ال Exceptions فإنه يمكن أن نقوم نحن برفع راية الخطا هذا الخطأ من تأليفنا أي عبارة عن Class كامل يصف نوع الخطأ ويمكن أن يتضمن Methods من أجل طباعة الخطأ أو اظهاره على هيئة Message . وأنا ذكرت أنه يتم معالجته في روتين الأب ، هذا الكلام صحيح ولكن ناقص .. من أجل التوضيح : لنفترض السلسلة التالية من الاستدعائات : main يستدعي func1 و func1 يستدعي func2 .. يوجد في ال main قسم لتصيد الأخطاء ولا يوجد هذا في func1 ولكن حدث وأن ظهر خطأ ما في func2 فإنه في هذه الحالة يتم الصعود في السلسلة حتى يجد قسم لتصيد الخطأ من النوع ذاته الذي ظهر .

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

هذا ما هو موجود في السي++ وما سوف يتم تطبيقه في ال Visual Basic.NET ..

:)

0

شارك هذا الرد


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

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

أذكر بعض الأمور التي أقوم بها وأنا أكتب البرنامج:

1-قائمة البحث والأستبدال ، فأنا أستخدمها كثيراً في البحث عن معرف أو تصريح عام أين كنت قد وضعته أو هل هو مكرر أم لا.

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

3-عندما كنت أبرمج وعن طرق الصدفة أردت تحريك نافذة كتابة الكود بالماوس (أسفل زر الإغلاق الأحمروفوق السكرول مباشرة) فأصبح لدي نافذة مقسومة لنافذتين ،حيث فتحت لي المجال لسهولة البحث في كودين كل واحد في قسم ، حيث كنت أفتح نافذتين سابقاً....

4-لا أترك البرنامج حتى أنتهي من كتابة الكودات المتعلقة بالبرنامج وعندما يكون البرنامج ضخم أكتب تلميح بما سيحدث هنا في السطر وأتركه لما بعد.

5-أستخدم الزر F8 أو (شغل إلى المشيرة)من القائمة Debug ، وهي لمعرفة الأخطاء حيث أرى أين يذهب البرنامج في كل ضغطة زر f8.

6-لا أقوم بالتصريح عن متحول نصي أو عددي إذا كانت العناصر تملك خاصية .Tag غير مستخدمة ، وهذه من وجهة نظري بما أنها مصرح عنها في العنصر فلماذا أصرح عن عنصر جديد ..،حيث عندما يكون المتحول عددي (إنتيجر)إقوم بوضع Tag = 0 ليتم تعريفه

7-بعد كل إنتهاء من عمل البرنامج أقوم بحفظه ثم نسخ مجلد البرنامج كاملاً لغير مجلد (يمكن مجلدين أو أكثر مع الإحتفاظ بالقديم)، لأنه مر علي كثيراً وأنا أفتح البرنامج فتظهر نافذة بأنه لا يستطيع تحميل الفورم ،خطأ في... ،مع أن البرنامج سليم فأقوم بنسخ النسخة الإحتاطية مكانها فتعمل.

8-أقوم بتعريب الفوجوال من وقت لآخر لأنه يوجد أشياء كثيرة غير معروفة بالإنكليزية وأقوم بإسترجاع اللغة الإنكليزية عند قراءة مصدر أجنبي أو البحث في مكتبات فوجول.

0

شارك هذا الرد


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

شكرا لكل من شارك بافكارة فى هذا الموضوع

وعن نفسى فهناك بعض العادات البرمجية التى أحرص على القيام بها اذكر منها الان

1- أ- اقوم اول شئ بتحديد وظيفة البرنامج حتى تكون إطار عام لى أثناء التصميم

ب- اذا كان البرنامج به قاعد بيانات احاول قدر المستطاع الحصول على نسخة من قواعد البيانات اليدوية (الاوراق) التى كانت تدون بها البيانات المطلوب عمل برنامج بشأنها .

2- ابدا اولا بتصميم البرنامج على ورق خارجى سواء كان برنامج قاعدة بيانات او غيره مع تحديد الأدوات التى سأحتج لها .

3- اذا تطلب البرنامج الاستعانه ببرامج او ادوات خارجية ككريستال ريبورت اوغيرها اقوم بجمع هذه البرامج قبل البدء فى العمل .

3- احدد فترة زمنية افتراضية لإنهاء المشروع خلالها .

4- احدد التقنية الانسب لبرنامجى فمثلا اذا كنت بصدد عمل برنامج بسيط لصيدلية ليس لها فروع استخدم فيجوال بيزك 6 وقاعدة بيانات اكسيس او اذا كنت بصدد عمل مشروع اكبر كمدرسة مثلا لها اكثر من فرع استخدم اس كيو ال سيرفر بدلا من اكسيس وهكذا .

5- أ- عند التصميم اركز فقط على تحقيق البرنامج للوظيفة المطلوبة بكفائة عالية ولا اهتم بشكل البرنامج كثيرا فبرنامج شكلة عادى ولكن يقوم بوظيفتة على اكمل وجه

افضل من اخر شكله رائع لكن يشوبة بعض القصور لانشغال صانعه بالشكل على حساب المضمون .

ب- لاحقا اقوم بتطوير شكل البرنامج واضافة التعديلات التى يحتاجها بعد التاكد من ان البرنامج يؤدى وظيفتى على اكمل وجه .

6- اقوم بتسمية اى مجلد لبرنامج اقوم به على النحو التالى myproject v1.0.0 وعندما اقوم بتعديل لاحق على البرنامج myproject v1.0.1 وهكذا فاحيانا

احتاج للعودة الى نسخة البرنامج قبل إجراء تعديل ما .

7- احفظ جميع البرامج التى قمت بعملها على cd كما احتفظ بالاوراق الخاصة التى حضرت فيها لبرنامجى

0

شارك هذا الرد


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

شي جميل ورائع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

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

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