تابعنا علي الفيسبوك لإطلاع علي كل جديد

تعرف علي الأعراض و التأثيرات الجانبية للبرمجة


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

                             

في الأصل ماذا يعني التأثير الجانبي؟؟


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

الآثار الجانبية للبرمجة .


فتُعرف الآثار الجانبية للبرمجة بأنها : أنها تأثير غير مرغوب وثانوي يحدث بشكل غير متوقع ليغير من حالة البرنامج فيؤدي لنتيجة غير مرغوبة ، ويتعلق الحكم على الآثار الجانبية للبرمجة طبقا لمعايير PSR  فطبقا لمعيار PSR-1 أنه يجب كتابة السطر البرمجي المتضمن للدوال والصفوف دون حدوث آثار جانبية غير متوقعة ، أو توضع الأوامر في البرنامج بشكل منطقي لهدف إحداث تغييرات مقصودة في برنامج،  وبالطبع حدوث كلا الأمرين يعني أنه هناك خلل في البرمجة فيجب أن يحدث شيء واحد فقط .

                         

ويرجع الأساس أيضا في فهم التأثيرات الجانبية إلى نظام مبدأ الوحدة(module) ، والذي يعني أن كل جزء برمجي يجب أن يؤدي وظيفة واحدة محددة  ، ويجب أن نعرف ضمن هذا متى نضيف تعديلات في حالة البرنامج ومتى لا نضيف،  فعندما يتم تغيير جوهري يكون هذا تأثير جانبي ويخالف في هذا معايير PSR ، كأن يحدث تغيير في قواعد البيانات الأساسية،  أو تتم إضافة أمر فرعي لقائمة رئيسية ولكن عند حدوث ذلك يختل أمر في البرنامج كأن يتحرك سهم الفأرة فيؤدي لغرض لم يكن من المفترض أن يؤديه وغيرها من الأمثلة المتعددة التي تتعلق بالبرنامج وبنظام البرمجة المتبعة وتفاعل الدوال مع ذلك .
فهناك نوعين من البرمجة تبعا للتأثيرات الجانبية وهما : 

  1. البرمجة الأمرية والتي تتميز باستخدامها المتكرر للآثار الجانبية  ، مثل نظام تأثيرات الدوال التي تتعلق بتغير في متغير تعتمد عليه .
  2. والبرمجة الوظيفية التي تهدف إلى عدم وجود أي آثار جانبية وذلك يسهل من عمليات التحقق الرسمية للبرنامج .
                         


ويجب أن يكون لدى كل مبرمج دراية بالآثار الجانبية الخفية حتى لا تحدث تأثيرات غير مرغوبة تؤدي لخلل في البرنامج ، فتكون التأثيرات المرغوبة هي التي تتعلق برسوم الواجهات الرئيسية وغيرها،  أما التغيير في قواعد البيانات كأن يتم إدخال دالة معينة فتعطي قيمة ما وعند إدخالها مرة ثانية تعطي قيمة مختلفة فيكون هنا قد حدث خلل غير مرغوب فيه بالبرنامج .
وتتعدد الأمثلة التي ستوضح كيف يسير التعامل مع الآثار الجانبية للبرمجة والتي يقع فيها الكثير من المبرمجين باستمرار ، وفي الخلاصة بشكل أكثر وضوحا تتعلق التأثيرات الجانبية للبرمجة بحدوث تغير في الدالة أو معاملاتها،  فإذا كان لديك التعبير التالي (A+Fun A)  ، في هذا التعبير يعتبر الترتيب مهم جدا في حالة ما إذا كان ل Fun  تأثير جانبي ، وبالمثل فإنه لا قيمة للترتيب في التعبير،  إذا لم يكن ل Fun   تأثير جانبي معين ، والتعامل مع مشكلة التأثيرات الجانبية في علوم الحاسوب بالنسبة للدول البرمجية يكون بوضع حالة تقييم للعوامل في التعابير المختلفة بترتيب معين في تعريفات اللغة،  ومطالبة المطبق بأن يضمن وجود هذا الترتيب،  وبالطبع ليست الطريقة الأمثل للحل،  هناك الكثير من الدراسات والحلول المتعلقة بذلك يمكنك الإطلاع عليها،  كما يمكنك الإطلاع على معايير PSR  لتفهم الأمر بتوسع أكبر.
 

ليصلك كل جديد عنا ولنكون علي اتصال