كيف تحسن مستواك البرمجي
بسم الله الرحمن الرحيم،
مجموعة نصائح قيمة لتحسين مستواك البرمجي وبالتالي تحسين إنتاجيتك. في البداية سرد لما يجب أن يكون عليه برنامجك أو ملفاتك المصدرية وبعدها شرح لكيفية الوصول لهذا المستوى.
-البساطة
-النتائج الصحيحة
-المتانة أو الثباتية (scalability)
-قابلية التوسع والتطوير
-اكتب ابسط حل تتوصل إليه، عندما يكون لديك عدة حلول لمشكلة ما فاختر الحل الأبسط حتى ولو كان أطول من الحل المعقد. لأن الحل الأبسط أسهل عند برمجته وأسهل عندما تطور عليه في المستقبل، أيضاً فهمه أسهل على غيرك من المطورين الذين سيتابعون عملك في المستقبل.
-الذكاء، أي أن يكون حلك ذكياً بحيث تقلل من حدوث الأخطاء قدر الإمكان. حاول أن تجد حلاً ذكياً يشمل كل الحالات الممكنة فالحل البسيط لا يعني الغبي! والحل المعقد لا يعني الذكي. الأفضل هو الحل البسيط الذكي.
-إزالة العلاقات المتشابكة قدر الإمكان بين الملفات، حاول قدر الإمكان أن تجعل كل صنف أو تابع مستقل بحد ذاته عن غيره، مهمة جداً في حالة التوسع بالمشروع، فالأصناف المستقلة لن تتأثر بالتوسع أما المتشابكة فيما بينها فتغيير سطر واحد في ملف واحد يؤدي إلى أخطاء بالجملة، حدثت معي كثيراً والآن عندما أرى هذا النوع من البرمجة أقوم على الفور بتغيير البنية كلها حتى ولو اضطررت للبدء من جديد، فالبدء من جديد على أساسات متينة أفضل من البقاء على أساسات مخلخلة ستسقط لا محالة، لكن السؤال هو متى ستسقط.
-الاختبار، الاختبار جزء مهم من عملية التطوير، استعمل لهذا التجريب اليدوي والتجريب البرمجي (unit testing).
-الأمان مهم جداً في تطبيقات الويب وأهم نصيحة هي: لاتثق بأي متحول عام، عنوان (URL) أو طلب من المستخدم وافحص كل شيء.
-وضع خطة للحالات الطارئة، افترض أن المخدم تعطل أو تعرض الموقع لهجوم لا سمح الله، كل هذا ممكن أن يحدث وغالباً مايحدث ولكن السؤال هو هل أعددت خطة للطوارىء؟ هل ستقفل الموقع؟ هل ستوقف الحسابات؟ هل هل …؟؟ الأفضل أن تضع هذه الخطة الآن قبل أن يحدث مالا يحمد عقباه، فعند وقوع المصيبة يتشوش التفكير.
-الثباتية هي مواجهة المشروع لظروف قاسية، مثل عدد الطلبات الكبير، زيادة المخدمات. أهم النصائح هي: استقلالية البنى عن بعضها كما ذكرت وقياس الأداء عند كل تغيير أو تطوير.
-فعل إظهاء الأخطاء والتحذيرات أثناء التطوير، وألغي تفعليها عند تشغيل الموقع أو تسليم المشروع.
-اتبع المعايير المشهورة في كتابة الشيفرة المصدرية: كل لغة لها معاييرها، تعرف على هذه المعايير وتقيد بها فهي خبرة كبار المبرمجين، تبسط عليك عملك وعلى غيرك ممن سيطور على عملك لاحقاً.