شرح الموضوع
نتاج التعلم ج
البرمجة

ج } تطوير حل برمجي لتلبية متطلبات العميل
من التصميم إلى التطبيق الذي يعمل
بمجرد تصميم الحل البرمجي وتوثيقه ومراجعته والموافقة عليه، يحين الوقت لتنفيذ التصميم لإنتاج تطبيق يعمل.
- التصميم المفصل: إذا كان تصميمك مفصلًا، فمن السهل نسبيًا تحويله إلى كود مناسب في لغة البرمجة المستهدفة.
- أدوات حديثة: أزالت أدوات التطوير الحديثة صعوبات كثيرة للمبرمجين المبتدئين وذوي الخبرة.
- خطوتك الأولى: اختيار بيئة التطوير الخاصة بك.
بيئة التطوير
بيئة التطوير المتكاملة: كل شيء في مكان واحد
- بيئة التطوير المتكاملة (IDE): تتيح للمطور إدارة المشاريع وتحرير الكود وتجميعه وتصحيحه وتنفيذه، كل ذلك من داخل مجموعة البرامج نفسها.
- الفائدة: تساعد بيئات التطوير المتكاملة في تحسين الإنتاجية.
- خاصة بلغة: أحيانًا تكون البيئة خاصة بلغة البرمجة المختارة، فتستخدم Microsoft Visual Basic .NET إصدارات Visual Studio التجارية أو إصدارات Visual Studio Express المجانية.
- لغات بلا بيئة محددة: لغات مثل C وC++ وPHP لا تحتوي على بيئة تطوير متكاملة محددة، وقد يؤثر ذلك في اختيار لغة البرمجة.
- PHP مثالًا: يمكن تطويرها بنظام لينكس ومحرر النصوص نانو وخادم الويب أباتشي HTTPD مع وحدات PHP5 المثبتة.
- أو بويندوز: نظام تشغيل Microsoft Windows مع Notepad++ وخادم Microsoft IIS Web Server مع تثبيت ثنائيات ويندوز PHP.
ميزات تكتب الكود أسرع
- المطلوب من البيئة: أن توفر الوصول إلى الروتينات المكتبية والأكواد القياسية والروتينات الفرعية المحددة من قبل المبرمج، لجعل البرنامج أكثر كفاءة.
- ميزات التوليد: تحتوي بيئات كثيرة على ميزات تساعد المبرمجين على توليد الكود بسرعة أكبر.
- الدعم الخارجي: توفر بيئات كثيرة الوصول إلى موارد عبر الإنترنت تحتوي على دعم من طرف ثالث.
- مثال: تحتوي MSDN (شبكة مطوري Microsoft) على مكتبة واسعة من الموارد والمنتديات النشطة.
اختبار الحلول البرمجية
كيف تختبر الحل خطوة بخطوة؟
- قبل الاختبار: تُزال الأخطاء الواضحة، مثل أخطاء الصياغة، باستخدام أدوات التصحيح في بيئة البرمجة.
- العملية: اتباع عملية بسيطة خطوة بخطوة، باستخدام خطة اختبار وبيانات اختبار.
- بيانات الاختبار: تشمل بيانات نموذجية، ومتطرفة وخاطئة.
- خطة الاختبار: ضع خطة اختبار واختر بيانات مناسبة.
- المتوقع: أدخل بيانات العينة في جدول التتبع وسجّل النتائج التي تتوقعها.
- الفعلي: أدخل البيانات نفسها في البرنامج المباشر وسجّل النتائج الفعلية.
- المقارنة: قارن بين المخرجات المتوقعة والفعلية وحدد التناقضات.
- الإصلاح: أعد النظر في الكود لإصلاح الأخطاء التي كشفها الاختبار.
- الإعادة: أعد الاختبار؛ وكرر العملية حتى تُحل الأخطاء.
ثلاثة اختبارات وخطآن
- اختبار التوافق: اختبار التطبيق في بيئات مختلفة، مثل أنظمة التشغيل المختلفة و/أو منصات الأجهزة المختلفة (حاسوب مكتبي، جهاز أبل ماك، هاتف محمول، جهاز اللوحي، وحدة تحكم في الألعاب).
- اختبار الاستقرار: المعروف أيضًا باسم اختبار التحميل أو التحمل؛ يتحقق من أن الحل البرمجي يعمل بشكل جيد باستمرار، مرة بعد مرة، دون مشاكل.
- الاختبار الوظيفي: أسلوب اختبار الصندوق الأسود، يضمن أن الحل البرمجي يلبي المتطلبات الوظيفية التي قدمها العميل في الأصل.
- متى تحدث: عندما يكسر كود البرنامج قواعد أو بنية اللغة، مثل استخدام رموز غير صالحة أو كتابة الكلمات المحجوزة بشكل غير صحيح.
- الأخطاء الدلالية: أصعب في تمييزها وإصلاحها، لأن تركيبتها جيدة فلا يبلغ عنها المترجم، لكنها 'خطأ في المنطق أو المعنى'، فلا تؤدي المهمة التي قصدتها.
لماذا لا يبلغ المترجم عن الأخطاء الدلالية؟
كيف تطوّر الحل بعد الاختبار؟
- التعليقات التوضيحية: تسمح للمطورين بإصلاح البرنامج أو تصحيحه وتحسّن إمكانية صيانته.
- التجميع: تجميع البرنامج لمنصة أو بيئة معينة.
- مراجعة الجودة: من حيث الموثوقية وسهولة الاستخدام والكفاءة وقابلية الصيانة وقابلية النقل.
- اختبار المستخدم: الحصول على ملاحظات المستخدمين حول تجربتهم.
- الصيانة: الاستفادة من نتائج الاختبار والتغذية الراجعة في أي صيانة تحسينية أو تكيفية مخططة.
- التوثيق: توثيق أي تغييرات في التصميم والحل، مثل التغييرات في كود البرنامج، والمدخلات المطلوبة، والمخرجات المنسقة، وتخزين البيانات.
مراجعة الحلول البرمجية
اسأل نفسك: هل الحل جيد فعلًا؟
- متى: راجع وقيّم حلول البرمجيات الخاصة بك دائمًا بمجرد تطويرها.
- ملاءمة الحل: ما مدى ملاءمته للفئة المستهدفة والغرض المقصود؟ وهل يلبي الاحتياجات الأصلية للعميل؟
- الجودة: هل الحل البرمجي ذو جودة عالية؟ أن يكون موثوقًا، قابل للاستخدام، فعال في الأداء، سهل الصيانة، قابل للنقل إلى منصات أخرى؟
- لغة البرمجة: هل تحتوي اللغة المختارة على قيود أضرت بالحل؟
- قيود أخرى: الوقت المتاح للتطوير أو الاختبار، ومهاراتك الشخصية ومعرفتك، ومشاكل عند استخدام اللغات على منصات معينة.
ما الأسئلة التي تفيد عند مراجعة حل البرنامج؟
- التحسين: ما نقاط القوة والضعف؟ وكيف تحسّن الحل على المدى القصير والمتوسط والطويل؟
- المتانة: جعل البرنامج أكثر مرونة ضد أخطاء المستخدم والمدخلات السيئة ومنعه من العمل بشكل متقطع أو التعطل.
- كفاءة الكود: جعل البرنامج ينفذ الخطوات بشكل أسرع أو يستخدم موارد أقل أو تزداد استجابته للمستخدم.
- توسيع الوظائف: تحسين تجربة المستخدم بدمج خيارات جديدة أو التخصيص للمستخدم أو إضافة مهام جديدة للتطبيق.
المهارات والمعرفة والسلوكيات
ماذا يُظهر المبرمج عند التنفيذ؟
- التخطيط والتسجيل: تحديد الأهداف ذات الصلة مع الجداول الزمنية، وكيف ومتى سيتم جمع التعليقات من الآخرين.
- المراجعة والاستجابة: استخدام التعليقات من الآخرين، مثل متخصصي تكنولوجيا المعلومات والمستخدمين، حول جودة البرنامج ومدى ملاءمته للمتطلبات الأصلية.
- السلوكيات الشخصية: الاحتراف، وآداب السلوك، ودعم الآخرين، والقيادة المناسبة في الوقت المناسب، والمساءلة والمسؤولية الفردية.
- التقييم: تقييم النتائج للمساعدة في تقديم توصيات وقرارات مبررة عالية الجودة.
- الإعلام والاتصال: نقل المعنى المقصود، واستخدام اللهجة واللغة للاتصالات اللفظية والكتابية، والاستجابة بشكل بناء لمساهمات الآخرين.
تمرين: من متطلبات العميل إلى حل مختبَر
- بعد توقيع العميل: بمجرد أن يتم توقيع التصميم من قبل العميل، سيطلب منك مدير الخط تنفيذ التصميم وتطوير الحل البرمجي.
التخطيط
أسئلة تسألها لنفسك قبل الكتابة وأثناءها
التنفيذ
- أثناء التنفيذ: أعرف ما أفعله وما أريد تحقيقه، وأستخدم الفرصة لتجربة تقنيات جديدة وتحسين حل المشكلات.
- التصحيح: يمكنني استخدام التعليقات والمراجعات لتحديد متى أخطأت وتعديل نهجي للعودة إلى المسار الصحيح.
- الاستعداد للتحسين: أنا مستعد لتحسين حلي بناء على المتطلبات المحددة وملاحظات المستخدمين.
مبرمج مبتدئ في فريق تطوير البرمجيات
ماذا يقول مبرمج مبتدئ عن عمله؟
- التفكير قبل الكتابة: بعض المهام معقدة للغاية، فلا أستطيع كتابة كود البرنامج دون التفكير بشكل صحيح في الحل.
- المخططات الانسيابية: شجعني مديري على رسمها لتبسيط المنطق التجاري المعقد إلى خطوات بسيطة، وأعود إليها كثيرًا في أثناء عملي على الجزء الآتي من المشكلة.
- لغات متشابهة: عندما بدأت كنت أعرف فقط Microsoft C#، ثم اكتشفت أن جافا وPHP تحتويان على بناء جملة مشابه، فكانت المفاهيم سهلة الترجمة.
- وصف البرمجة: أقول لأصدقائي إنها تتعلق بشكل أساسي بحل المشكلات، وتبسيط المشكلات المعقدة إلى مشكلات أبسط واكتشاف الأنماط.
وسوق العمل يتغير، فكيف تواكبه؟
كن قادرًا على التكيف
- لغات تتطور: لغات البرمجة المختلفة المستخدمة في الحوسبة والصناعة تتطور باستمرار.
- التكيف: للحصول على وظيفة كمطور مبتدئ، يجب أن تكيّف نفسك ومهاراتك لتلبية احتياجات السوق ومواكبة الاتجاهات الحالية في البرمجة.
- اسأل نفسك: ما لغات البرمجة المطلوبة حاليًا؟ وما أنواع المهارات المطلوبة؟ وهل يمكنني نقل مهارات البرمجة الخاصة بي إلى لغات جديدة وبيئات تطوير مختلفة؟