الزرّ و الحمار. عن أفضل وأسوأ الممارسات البرمجية
هذه احد نتائج ال RAD والتي تقدمها أدوات التطوير، فهي تسهل العمل وتقوم بالكثير من الأمور بشكل تلقائي، ولكن في نفس الوقت تسمح للمبرمج بخلط الUI مع Busniess Logic والأسوء من ذلك مع الDatabase Access في حدث الزر أو اي دالة أخرى، والنتيجة Highly Coupled Application يصعب العمل والتعديل فيه.. لقد مررت بكثير من المبرمجين لديهم حماس عالي في اول المشروع ولكن بمجرد أن يكبر المشروع قليلاً وتزداد الأسطر والمهام يبدأ بمحاولة الهروب من المشروع لمشروع اخر يعرض فيه عضلاته في البدايه :)
المشكلة الأخرى وهي أن هذا الكود سوف يغلق ال Main Thread (ال UI Thread) فاذا كان طويلاً مثلاً تقرأ من ملف أو من رابط معين (أي I/O Operations، أو اي CPU Intensive Task) فسوف تهنق الشاشه ولو بشكل جزئي (حتى لو كانت ثانيتين فهي طويلة) وسوف يعكس سلبياً هذا الأمر سواء على المطور الذي قد يظن أن اللغه بطيئة ولكنه هو السبب وايضاً على المستخدم الذي سوف ينتظر احياناً كثيراً حتى ينتهي الUI Thread من تنفيذ هذه المهمه ويعود التحكم للمستخدم ويستطيع النقر على الشاشة..
مع الوقت تعلم مطوري المكتبات الزام المطورين بنقل المهام في ثريد اخر offload tasks to another thread ، مثلاً في الأندرويد لو قمت بعمل اي اتصال شبكي HTTP/TCP في حدث اي دالة On Main Thread سوف تحصل على خطأ في التنفيذ Throws Checked Exception بسبب أنك تتعامل بشكل خاطئ..
التعليقات