عندما يأتي الأمر لتصميم الأنظمة فأنا من أشد المؤمنين بمبدأ الافتراضات الذكية في التصميم.
ماهي الافتراضات الذكية؟ وما مقابلها؟
الافتراضات الذكية هي تلك الافتراضات التي يقوم بها مصمم النظام سواء كان مبرمجاً أو غير ذلك بهدف توقع أكثر السيناريوهات حدوثاً عند المستخدم النهائي للنظام ويقوم بتصميم وضع افتراضي يخدم ذلك السيناريو تحديداً.
فمثلاً
ربما يصمم أحد المبرمجين برنامجاً للبيع ومطلوب منه أن يحدد نوع العملة المستخدمة في فاتورة البيع ( دولار – ريال – جنيه – إلخ )
التصميم المحايد (التصميم بدون افتراضات) سوف ينظر لهذه العملية برمتها على أنها عامة جداً أو Generic ويجب ألا نتدخل فيها أو نحدد للمستخدم ماذا يختار.
ولكن تصميم الافتراضات الذكية سوف يقوم باختيار عملة البلد المتوقع فيها العمل بشكل افتراضي — في حالتي مثلاً سوف تكون الريال السعودي – حيث لا داعي لأن أختار العملة في خطوة أنا متأكد من أن 99% من اختياراتي فيها سوف تكون الريال السعودي.
وكذلك الحال مع افتراض أن الفاتورة سوف تباع كاش وليس آجلاً أو العكس حسب مكان وطبيعة العمل.
إن مبدأ الافتراضات الذكية في حد ذاته ليس مبدءاً جديداً ولكنة فلسفة تصميم.
وقد زاد من شعبيته جداً في الآونه الأخيرة صعود الذكاء الصناعي وانتشار مجال تعلم الآله
حيث تقوم الألة بالتجربة والفشل ثم التجربة والفشل وهكذا حتى النجاح ثم تحسين النجاح ثم السعي نحو الكمال ثم الوصول المحتمل له.
إن ما يقوم به الذكاء الصناعي في هذة الحالة إنما هو شكل من أشكال الافتراضات الذكية لا أكثر. فهو يقوم بوضع افتراضات ما لموقف ما بناءاً على مدخلات ما.
الموضوع ليس صعباً ولكنه أيضاً ليس شيئاً تتعلمة وإنما هو فلسفة تصميم – يجب أن تكون مزروعة بداخلك – يجب أن تشعر من داخلك فعلاً بالغباء والاشمئزاز من نفسك إذا صممت نظاماً لا يضع افتراضات ذكية عندها فقط تعرف أنك أصبحت متبنياً لتلك الفلسلفة العظيمة.
الافتراضات هذه تعلمناها من علماء المسلمين قبل اكثر من 100عام وهم يعلمون الناس الفقه ، يقولون لو حدث كذا لصارت المسأله والحكم كذا ولو حدث كذا لصارت كذا ، يضعوا للمسأله الواحده اكثر من 20افتراض ، ليتعلم الناس .
كما تفعل بالظبط يا دكتورنا في البرجمه ، وكلما تمكنت من الامر صارت الافتراضات اكثر وانفع ..
حبيبي 🌷
أعزك الله يا دكتورنا العزيز الغالي. نعم صحيح وكان أبو حنيفة رضي الله عنه وأرضاة رائد تلك المدرسة في الفقة.