الجمعة، 26 أغسطس 2016

أيها المبرمج: اعرف جمهورك

خلال رحلتي الطويلة في تصميم البرامج والأدوات، كان أكثر انتقاد وجه إليّ بخصوص نوعية برامجي هو: لماذا كل برامجك، خصوصاً تلك الموجهة لمحاربة الفايروسات وإزالتها، بالرغم من فعاليتها، تفتقر إلى إلى الإبهار الرسومي، حيث تبدو في مظهرها وكأنها قادمة من حقبة التسعينيات من القرن الماضي، فلا أزرار فخمة، ولا حركات رشيقة، ولا قوائم سلسلة، ولا صور مبهرة، الأمر الذي يعتبر من أكثر ما يجذب الناس إلى استخدام أي برنامج كان!

الحقيقة أن هذا الانتقاد صحيح، ولكنه دائماً ليس في محله، وكنت أغفر للمبرمجين المبتدئين، وكذلك المستخدمين العاديين توجيههم هذا الانتقاد لي لعدم خبرتهم في هذا المجال، أما أن يكتب مبرمج يدعي الاحتراف موجهاً لي نفس الانتقاد، ومتخذاً الطريق الأخرى في برامجه، حيث يزينها بالحركات والشقلبات والصور ثم يتوجه بها لمحاربة الفايروسات وإزالتها فهذا ما لا يمكن أن يغتفر.

عندما تصمم أي برنامج، عليك أن تضع في حسبانك الجمهور الذي تتوجه إليه، هذه قاعدة بديهية في عالم البرمجة ولا يغفل عنها سوى المبتدؤون، أو مدعو الاحتراف. كما يجب عليك أيضاً أن تضع في حسبانك نوعية الأجهزة التي يتوقع استخدام برنامجك عليها، وظروف تشغيل البرنامج على هذه الأجهزة من حيث كون هذه الظروف طبيعية ومناسبة أم لا.

أولاً: في مجال محاربة الفايروسات، أنت لا تخاطب مستخدماً في وقت فراغه ويريد أن يمتع عينيه بحركات برنامجك وشقلباته وصوره وأزراه البراقة، أنت تتوجه ببرنامجك إلى مستخدم واقع في ورطة، ويريد أي شيء يخلصه من ورطته بأسهل طريقة وأسرع طريقة وأخف طريقة. وهو كذلك مستخدم عادي غير خبير إطلاقاً في إزالة الفايروسات، لأنه لو كان خبيراً لأصلح جهازه بنفسه ولما احتاج لبرنامجك أصلاَ. ولهذا عليك أن تجعل برنامجك أسهل ما يمكن، وأسرع ما يمكن، وأخف ما يمكن. برنامجك لا يجب أن يحتوي على أكثر من إطار واحد وزر واحد. وجملتك الشهيرة يجب أن تكون كالتالي: شغل البرنامج ثم اضغط على الزر وتنتهي مشكلتك. هذا ما يبحث عنه هذا المستخدم وكل من هم في نفس ظرفه، من ينسى هذه القاعدة لا يجد من يستخدم برامجه.

ثانياً: عندما تصمم برنامجك الموجه لمحاربة الفايروسات، عليك أن تجعل حجمه أقل حجم ممكن، فالناس عامةً تنفر من البرامج ذات الحجوم الكبيرة، وفي حالة الفايروسات، النفور أشد، فلا يعقل أن تطلب من مستخدم تسرح الفايروسات في جهازه وتمرح أن يقوم بتحميل برنامج حجمه 200MB مثلاً، لأنه ببساطة لن يستطيع حتى لو كان مجبراً على ذلك، فجهازه يئن تحت وطأة الفايروسات، واتصاله بالإنترنت بالكاد يستطيع تلبية طلب الفايروسات المتكاثرة في جهازه والتي تتزاحم على الاتصال لترسل لمبرمجيها حصيلة ما وجدته في جهازه من معلومات.

ثالثاً: حين تصمم برنامجاً لإزالة الفايروسات، عليك أن تتأكد أن البرنامج لن يطلب من المستخدم تحميل أية مكونات إضافية عدا ما يأتي افتراضياً مع النظام. لأن هذه الحزم الإضافية تدخل في إجمالي حجم برنامجك، فإذا كان برنامجك حجمه 1MB ولكنه يطلب من المستخدم تحميل حزمة Microsoft .Net Framwork 4.0 والتي يصل حجمها إلى أكثر من 300MB فإن حجم برنامجك الإجمالي في هذه الحالة ليس 1MB بل يساوي حجم برنامجك + حجم الحزمة (301MB). وهذا منفر جداً وغير قابل للتحقيق في حالة سيطرة الفايروسات على الجهاز الضحية.

رابعاً: حين تصمم برنامجاً يستهدف الفايروسات، عليك أن تجعله يعمل في أية بيئة كانت ولا يستجدي المستخدم لتثبيت الحزمة كذا والمكون كذا ومكتبة الربط الديناميكي كذا لكي يعمل. عليك أن تجعل شفرتك البرمجية أقرب ما يمكن للنظام الافتراضي، فالفايروسات بفعل سيطرتها على جهاز الضحية وشبكته واتصاله لن تسمح له بتثبيت أية حزم أو مكونات أو ملفات إضافية (وهي التي استخدمتها يا حضرة "المبرمج المحترف" لتزيين برنامجك وملئه بالصور والحركات والشقلبات).

أيها المبرمج: اعرف جمهورك.


هناك تعليق واحد:

  1. موضوع ممتاز عندما قرأت ربعه الاول كنت اتفق معك بنسبة 80% لأن الشكل مهم جدا لأى برنامج فكما يقولون العين تعشق قبل القلب, و عندما يرى الكثير من الناس برنامجا ذو مظهر قديم يخيل لهم انه اصدار قديم و غير عملى و يتوانون عن تجربته , اما بعد قراءة كامل الموضوع أتفق معك بنسبة 150% و خصوصا الجزئية الغبية الخاصة بالنت فرام وورك Net Framwork و هذا احد الاسباب التى كرهتنى فى البرمجة حيث كنت اريد تعلمها ثم واجهتنى المشكلة الغبية الخاصة بال Net Framwork و كيف اصنع برنامج 1 ميجا لن يعمل على كل الانظمة و اطلب من المستخدم ان يحمل ملفات 60 ميجا - هذا غباء رسمى رغم إقتناع العديد من المبرمجين ان هذا شىء عادى و يمكن تقبله - فأصرخ فى وجوههم كيف و انى المبرمج لا اتقبله فهل سأقنع من يستخدم برامجى بهذا
    و الله كرهت حاجة اسمها Net Framwork و هى السبب لتركى البرمجة

    ردحذف