أهلا وسهلا

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

١) زاد حجم المشروع.

٢) التعامل مع تقنية جديدة.

٣) العمل بفريق صغير أو وحيدا بالنسبة لحجم المشروع.

٤) عدم توافر الادوات اللازمة وبيئات التطوير او ضعف جودتها.

٥) عدم توافر المرجع Reference للحصول على اجوبة معينة.

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

وبغض النظر عن تلكم الأسباب التي تزيد من تعقيد العملية وصعوبتها. الا انه بالمقابل يوجد ما يسهلها ويجعلها تسير بطريقة أفضل :

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

٢) تقسيم البرنامج إلى طبقات. طبقة تعنى بواجهة المستخدم وطبقة اخرى تعنى بالبيانات وتتعامل بصفة مباشرة مع قاعدة البيانات. وطبقة أخيرة لما يسمى (البزنس لوجك) أو منطق العمل وهو عبارة عن اساليب ادارة تدفق المخرجات والمدخلات وهي الطبقة التي تتخاطب مع الطبقتين السابقتين وتقوم باصدار الاوامر لهمها.

٣) استخدم البرمجة الكائنية التوجه وبدونها لن تستطيع بشكل مؤكد تقسيم البرنامج الى طبقات كما وضحت في النقطة (٢). اعطي نفسك الوقت لدراسة مفاهيم البرمجة الكائنية التوجه في اللغة التي تتعامل معها.

٤) اعطي نفسك الوقت لتعلم ما يسمى بالـ (ديزاين باترنس) وهي عبارة عن دروس في كيفية تصميم (كلاسات) لحالات معينة. ان تعلم هذه الاساليب يجعلك واعيا بالتصميم الانسب للكلاس بما ويتوافق مع المشكلة التي تحاول حلها بدون جهد يذكر منك.

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

٦) استخدم أساليب (الاختبار الذاتي) اوتوماتيد تستز او كما يسمى بالواحدات الاختبارية التي تقوم بفحص الجزئيات الحساسة في طبقة البيانات والبزنس لوجك بشكل اوتوماتيكي وتعطيك تقريرا عن حالة كل جزئية. تخيل ان تقوم باختبار كل جزئية حتى بدون ان تقوم بتشغيل البرنامج. لا شك ان ذلك يوفر الوقت واسلوب محترف جدا.

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

٨) ضم قائمة بالاهداف التي تريد ان تنجزها قبل ان تبدأ التكويد ولا تقوم بالعمل بشكل عشوائي.

٩) مارس تدقيق الجودة على برنامجك ولا تنتظر الاخرين او العميل كي يمارس هذا الدور واهتم بالتفاصيل الصغيرة ووثقها ثم حدد جلسة كاملة لاصلاحها.

١٠) هنالك جزئيات تتكرر مع كل مشروع مثل نظام الدخول والصلاحيات واللوجنج. حاول ان تكون ثابته قدر الامكان وتستخدمها مع كل مشروع. فالمبرمج الذكي يعيد استخدام اكواده.

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

تلك كانت مجموعة من الدروس التي تعلمتها أثناء كتابة مشاريعي.

تحياتي :)