أرشيف  August, 2007

Aug 13    Keep it simple stupid…K.I.S.S

August 13th, 2007

Keep it simple stupid هو مبدأ يقوم على إعتبار البساطة روح أى عمل , هذا المبدأ يتواجد فى مختلف التخصصات المعرفية و بالتالى فى مجال الويب و يعتبر بالنسبة للأخير مبدأ هام من مبادىء تصميم البرامج “software design ” و قد نادى بهذا المبدأ عدد من الشخصيات المعروفة مثل :

 

occam s’ razzor . و يعد أقدم من نادوا بهذا المبدأ :

. entities should not be multiplied beyond necessity

” البرت اينشتين”

. everything should be made as simple as possible, but no simpler

Antony de Saint Exupery

. Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away

و من بين كل من نادوا بة أرى فى وصف “Antony de Saint Exupery ” لهذا المبدأ أقرب ما يكون لمضمونة و هو يقول بأن ” أعلى درجة للكمال فى تصميم البرنامج تتحقق ليس عندما لا يوجد شىء يضاف و لكن عندما لا يوجد شىء يمكن استبعادة ” و هو بذلك يحدد ان ان الضروريات فقط هى التى يجب ان تضاف للعمل .

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

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

التصميم :

ما معنى ان يكون التصميم بسيط ؟

هناك أساسيات لبساطة التصميم يجمع عليها عدد كبير من الخبراء و المهتمين بالتصميم مثل :

  • - أن يساعد تصميم الموقع على إظهار محتواة وهدفة بحيث يكون محتوى الموقع هو العنصر الطاغى الذى يفرض نفسة بقوة و يلفت إنتباة الزائر لة .
  • -الا يتوقف المستخدم فى الموقع و لا يعرف الى اين يذهب أو كيف يتوجة لصفحة ما , يجب ان تكون خريطة الموقع واضحة و سهلة الإستخدام.
  • -ان كل عنصر و كل صورة فى التصميم يكون لها وظيفة و معنى , لا تتواجد ابدا عناصر زائدة تزحم الموقع ( و لعلك تصادف فى الكثير من المواقع ازدحاماُ هائلاُ بعناصر ان تم ازالتها لفقد الموقع نصف حجمة ..و لا أدرى حتى هذة اللحظة ما سبب وضع البعض لساعة على سبيل المثال بموقعهم !! …و قس على ذلك عناصر كثيرة تقع تحت هذا البند)

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

البرمجة :

لنأتى أولا بالصورة النهائية التى أرغب فى الوصول اليها كهدف وهو برنامج أو موقع مكتوب صممت برمجتة بطريقة بسيطة , أى من الممكن على أى مطور ان يتوصل لكيفية عمل البرنامج , تركيب البرنامج واضح و مفهوم و سهل تعديل أى جزء بدون إجراء تعديلات واسعة النطاق فى أجزاء أخرى لا علاقة لها بالنقطة المراد تعديلها….

اتباع لطرق المباشرة الواضحة فى تنفيذ الوظائف , عدم تكرار الكود و محاولة تطبيق إعادة الإستخدام , التخطيط الجيد للبرنامج , فصل كود المنطق عن التصميم ..إستخدام غرضية التوجية “OOP” بكل مميزاتها , عمل تخطيط و ملخص للعمل “api”..تبدو الطرق المتاحة لتنفيذ هذة الصورة البسيطة النقية.

أود ان القى الضوء على جانب مهم للغاية و هو الإستخدام الخاطىء لبعض النظريات و المفاهيم التى وضعت بالأساس لتطبيق مبدأ البساطة فى كتابة البرنامج , هذة النظريات و ضعت لتساعد و ضعت لتستخدم بكيفية معينة فى اطار محدد.. منها مثلا استخدام غرضية التوجية أو “OOP” لو نظرنا لمثال للغات النصية “scripting language” و هى لغة “php” لوجدنا انة من الممكن كتابة البرنامج بطريقتين إما بطريقة اجرائية “procedural way” و هى التى تعتمد على عمل الكود فى شكل وظائف ليست محكومة فى قالب واحد مغلق , أو بالطريقة الغرضية التوجية و هى التى تتميز بكيفية اعادة الاستخدام و العديد من المميزات الأخرى …و بالطبع فالطريقة الأخيرة كان لها نصيب الأسد من الإهتمام فى النسخة الأخيرة من لغة “php” لما تحققة من مميزات هائلة و لكن ما يتم التغافل عنة هو انة ليس معنى ذلك ان الطريقة الإجرائية القديمة ليس لها نطاق معين تستخدم من خلالة و تحقق فائدة ..ففى بعض الحالات التى يكون بها حجم البرنامج صغير من الممكن ان يكتب البرنامج بالطريقة الإجرائية لإنة لن يكون هناك توسع يستدعى إعادة استخدام الكود من الأساس فالأسرع و الأبسط للتناول هنا هو ذلك الإختيار و ليسالإختيار الاخر الذى يقع فى دائرة الضوء الاّن وهو غرضية التوجية

أيضا نقطة أخرى و هو اختيار هيكل العمل للبرنامج أو “framework”…تبرز للأمام بعض الهياكل المشهورة القوية التى تتميز بضخامة البناء نوعا ما لتقليل الجهد المبذول من الطور فى كتابة الكود فيتولى الهيكل الجزء الأكبر من البرمجة و يترك للمطور استخدام طرق مختصرة بواسطة الهيكل لتنفيذ الخطوات..هذة النوعية من الهياكل تقدم التبسيط فى كتابة الكود بتقليل عمل المطور نفسة و بلا شك فهى ذات نفع كبير لطبيعة البرامج التى تتميز بكبر الحجم و تنوع الوظائف فمن خلال هذة الهياكل من الممكن تنفيذ مثل هذة البرامج فى وقت قليل نسبيا و بجهد قليل و لكن…..كما توفر هذة الهياكل الوقت بتقديم الوظائف الجاهزة فعلى الناحية الأخرى لن يكون الأمر كذلك اذا ما أحببت الخروج بشكل أو بأّخر عن نمط عمل الهيكل أو تناولة لعمل الوظائف , ففى هذة الحالة ستضطر للدخول فى بناء الهيكل لتعديلة وفقا لمتطلباتك و هو ما سيأخذ منك الوقت و الجهد لفهم تفاصيل عمل الهيكل ثم تعديلة بعد ذلك و هو مايثبت انة حتى تلك الهياكل المصممة لتقليل جهد المطور لن تستطيع ان توفر عليك بشكل كامل فلن يقوم بتطوير الموقع الا انت…كل ذلك مقبول ان كان حجم البرنامج يستدعى هيكل كبير..فما بالك فيمن يستخدم تلك الهياكل فى برامج صغيرة ! فلكى تعدل وظيفة ما ستبذل مجهود ووقت اكبر بكتير جدا مما كان البرنامج البسيط يستدعى ..و لعل ذلك يجعلنا نقول ان لكل مناخ و متطلبات عمل اختيار يعتمد على دراسة لتبسيط العمل على المطور.

إن صناعة البساطة فى التصميم او كتابة البرنامج ليست سهلة بل هى معقدة , بل لعل السهل هو أن يكون البرنامج او التصميم معقدا و متشابك التركيب لانة لن يصاحبة الجهد المبذول فى تخطيط العمل و وضع تصور لكيفية تطبيق البساطة علية …البساطة مبدأ و منهجية عمل تحتاج للتخطيط و الدراسة الجيدة قبل البدء.

فى قسم  كمبيوتر وانترنت | 17 تعليقات »

Aug 02    إستبيان عام عن تقييد الإنترنت

August 2nd, 2007

وصلتنى دعوة لإجراء استبيان عن قرار تحديد إستهلاك الإنترنت من مدونة Stylish و ذلك من خلال حملة مدونة قول لا للإنترنت المحدود فى مصر

ما هو مدى استخدامك للأنترنت ؟؟

البرمجة و التصميم و الإهتمام بالتقنية بشكل عام .

كيف ترى هذى الحملة وما مدى تأثيرها على المستخدمين والمختصين ؟؟

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

ما رأيك بقرار وزير الاتصالات الجديد هل سيساهم بنشر خدمة الانترنت فى مصر ام هل سيؤدى الى تقلصها ؟؟

انا اعترض اولا على تسميتة قرار فهو اى شىء غير انة قرار من جهة مسئولة يفترض فيها انها تكون الجهة المسئولة فى الحكومة عن معرفة معدل استهلاك المواطنين للإنترنت

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

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

وجزء من عملهم هو تحميل البرامج و انظمة التشغيل و احدث المستجدات من التقنيات و تطبيقاتها فهذة الفئة من المستخدمين سيتوقف عملهم و هم المفترض ان يلاقوا التشجيع من الوزارة و لكنهم على العكس اخذوا تشجيعا عكسيا

ما هى اسباب الوزير المعلنة والغير معلنة فى رأيك ؟؟؟؟

و الله فى رأى الخاص لن يخرج عن أحد او بعض هذة الإفتراضات:

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

ممكن يكون حركة من النظام للفت نظر المدونين الذين طوروا فى الفترة الأخيرة حركة تضامنية و تفاعلية و اسعة الى انة بإمكانها التدخل اذا ما لزم الأمر , او ان بامكانها ايضا فرض حظر على بعض المواقع مستقبلا وفقما تقتضى الظروف و كل ذلك طبعا تحت اشارة و اضحة بان الوزارة فى يد النظام اداة يمكن استخدامها وفقما تحب

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

من هم المستهدفون بهذا القرار ؟

لن أقول المبرمجين و مصممى المواقع أو المدونين فقط بل هى سياسة نهب منظمة تستهدف الشعب كلة و إن كانت تقضى بشكل كامل على المبرمجين و مصممى المواقع و المهتمين بالتقنيات لكونهم أصحاب اعلى معدل للإستخدام بحكم طبيعة عملهم

هل تهدف الحكومة من هكذا قرار بتطبيق المبدأ العربى الشهير الا وهو فرض الوصاية

على هذا الشعب القاصر ( من وجهة نظر الحكومة ؟

الأمر تعدى موضوع الوصاية فسياسة الخنق الإقتصادية اتى تنهجها الحكومة تعكس صلف و غرور و عدم اهتمام بالمواطن العادى و إمكانياتة و هى صفات عجيبة تسير فى نهج ثابت و إصرار غريب

كيف ستتراجع الحكومة عن قرارها ؟

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

كيف تصف هذا الحدث ؟؟

مستفز و مثير للحنق و الغيظ

هل يستحق وزير الاتصالات الائتمان على أمن مصر المعلوماتى وصناعة التكنولوجيا بمصر؟؟؟

يجيب على هذا السؤال القرار المعجزة الذى انفرد باتخاذة

ماذا تتوقع من تفاعل هذى الحملة عالميا وعربيا ومحليا ؟؟؟؟

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

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

محليا هو كل شىء فلكى يتحقق التفاعل القوى من الخارج يجب ان يكون على نفس المستوى تفاعل قوى من الداخل , و احب ان أسجل إعجابى بحركة التضامن التى تم التكاتف بها ضد هذا القرار و أرى فيها بذرة تفاعل فى جسد طال سكونة و كم اتمنى رؤيتة حيا من جديد .

هل أثبتت وزارة الاتصالات والمعلومات فى مصر جهلها العملى والمعلوماتى و سوء تقديرها للظروف المحلية والدوليه … واستغلالها للوضع المحلى ؟؟؟

نعم

ما هو الحل فى رأيك ؟؟

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

ماذا ترى فى المناورة الاخيرة للحكومة تحت ضغط المرحلة الأولى من الحملة ؟؟

إسلوب معتاد لتمرير القرارات المرفوضة و المناورة الجديدة التى تفيد بأنة سيطبق على المستخدمين الجدد فقط هو نفسة القرار الأول و حرية المستخدم لا تجزأ


أرجو من كل من يهمة التفاعل مع الموضوع ان يأخذ هذا الإستبيان فستتم ترجمة هذة الإستبيانات لعرضها على وسائل الإعلام

الغربية , و أدعوكم للتضامن مع حملة مدونة قول لا للإنترنت المحدود فى مصر

 

و أمرر الإستبيان ل إتكلم , نسيل , مبرمج حر , كريم

فى قسم  كمبيوتر وانترنت | 5 تعليقات »