[نصائح قيمة للمبرمجين]
ـ[اسلام سلامة علي جابر]ــــــــ[02 - 05 - 10, 05:32 م]ـ
السلام عليكم كاتب الموضوع هو المهندس الفاضل / عبد الجواد محمد فرحان الحاج يونس
http://www.jwdstructure.com/
http://www.arab-eng.org/vb/t196141.html
كما قلت فقد كنت قد أعددت هذا الموضوع سابقاً لأنشره بشكل مستقل، ولكني ترددت في ذلك، وبما أن الأخ محمود سبقني وطرح هذا الموضوع فرأيت أن أضعه هنا كمشاركة.
مقدمة:
يوجد في هذا المنتدى العديد من البرامج الهندسية العربية، وهو أمر جيد جداً، وبناءً على خبرتي في مجال البرمجة أقدم هنا بعض النصائح إلى المبرمجين خاصة الجدد علهم يستفيدون منها.
النصائح هذه موجهة إلى المبرمجين المهندسين بشكل خاص (وأنا هنا أفترض أن المبرمج هو نفسه المصمم)، وهي خلاصة عمل في البرمجة دام أكثر من 18 عاماً.
وهي موجهة بشكل أكثر خصوصية إلى تصميم البرنامج أي نوافذ البرنامج (إن البرامج المصنوعة باستخدام صفحات إكسل لا تدخل في مفهوم البرامج التي أتكلم عنها، وهي تسمى برامجاً تجاوزاً).
لماذا أكتب هذه النصائح؟
إن الكثير من البرامج العربية وإن كانت تعطي دقة في النتائج فإن تصميمها سيء جداً، حيث نرى المبرمج لا ينفق من وقته إلا بضعة أيام أو ربما ساعات على تصميم النوافذ وباقي الوقت (ربما شهر) لبرمجة العلاقات الرياضية، وهذا خطأ، وهو أمر غريب فعلاً أن نرى مهندساً لا يهتم بترتيب عمله وهو يحمل شهادة في الهندسة أي في التنظيم والترتيب.
إن تصميم النوافذ يكافئ في أهميته برمجة العلاقات الرياضية ويتفوق عليه بالوقت المطلوب لتنفيذ هذا التصميم، وقد يصل أحياناً إلى عشرة أضعاف أو أكثر، فمثلاً يمكن أن يأخذ تصميم نوافذ أحد البرامج 5 أشهر، بينما لا يأخذ كتابة البرنامج الرئيسي (المعادلات الرياضية) 5 أيام!!!
ولكن أليس التصميم هو مجرد رسم الأدوات على النافذة؟
طبعاً لا، إن التصميم يعني بالإضافة إلى ذلك تصميم نوافذ سهلة يستطيع المستخدم بشكل عفوي التعامل معها، وقد تحتاج إلى كتابة عدد من الأسطر البرمجية لها يزيد عن عدد الأسطر البرمجية اللازمة للعمليات الحسابية بمئة ضعف أو أكثر، بل قد تحتاج إلى التفكير والتأمل (والصفن) لعدة ساعات أو أيام لتفكر في شكل النوافذ وتوزيعها.
إذاً ما هو التصميم؟
هو كل ما عدا العلاقات الرياضية مثل:
- رسم النوافذ.
- التحقق من صحة الإدخال (القيم السالبة أحياناً مرفوضة - بعض القيم غير مدخلة - بعض القيم غير منطقية)
- عملية السحب والإفلات، وعملية الرسم.
- التعامل مع البرامج الأخرى.
- حفظ وفتح الملف، والطباعة.
- قد تحتاج إلى تصميم أدوات جديدة غير المرفقة مع لغة البرمجة.
- معالجة الأخطاء.
وأخيراً النصائح (والتي أحاول أنا الالتزام بها ما أمكن):
1 - حدد الهدف من البرنامج قبل البدء بكتابته، ثم قم بعمل تصميم أولي في ذهنك أو على الورق، واتبع هذا التصميم، وتذكر أن هذا التصميم قد يتغير عدة مرات أثناء العمل.
2 - اعتمد لغة برمجة واحدة وقوّ نفسك بها خير لك من تضييع وقتك في تعلم عدة لغات برمجة، ومن لغات البرمجة مثلاً Visual Basic أو # C وهما الأكثر استخداماً.
3 - اعتن بالتصميم، فالبرنامج سيء التصميم لا يشد المستخدم حتى لو كانت نتائجه صحيحة!!!
4 - لا تعقد البرنامج، فإن البرنامج الذي يوصلني إلى النتيجة التي أريدها بخمس دقائق أفضل من البرنامج الذي يوصلني إلى نفس النتيجة بعشر دقائق ولو كان يحوي ميزات (نادرة الاستخدام) أكثر من الأول.
5 - لا تجعل نافذة البرنامج مزدحمة بالأدوات، وحاول تجميع الأدوات ذات المعلومات المرتبطة ببعضها في مكان واحد، وحاول إخفاء الأدوات غير المستخدمة بكثرة في نافذة أخرى.
6 - أهم شيء في برامج ويندوز هو الرسم، اعتن برسم المخططات، ولتأخذ وقتاً إضافياً منك، وهذه تحتاج مئات من السطور البرمجية.
7 - قد تحتاج إلى بعض الصور التوضيحية، فإذا قمت بمسحها بواسطة السكانر فقم بتنظيفها بأحد برامج معالجة الصور، وإذا احتجت لتلوينها قم بذلك، وقد تضطر إلى الاستعانة بشخص يستخدم هذه البرامج.
8 - إذا اضطررت إلى رسم صور توضيحية بنفسك فارسمها جيداً، مثلاً إن رسمت مقطعاً عرضياً ما وفيه قضبان تسليح، اجعل المسافات بينها متساوية.
¥