برمجة موجهة بالسمات
من ويكيبيديا، الموسوعة encyclopedia
في الحوسبة؛ البرمجة موجهة بالسمات[1] (بالإنجليزية: Aspect-Oriented Programming) هي نمط برمجة يهدف إلى زيادة التركيبية، إذ تسمح بالفصل بين الاهتمامات المتقاطعة. وذلك بإضافة إجراء إضافي (إرشاد) إلى كود موجود دون تعديل الكود نفسه، فبدلًا من التحديد المنفصل الذي يُعدَل فيه الكود من خلال مواصفات «نقطة القطع (pointcut)»، مثل «تسجيل جميع الاستدعاءات الوظيفية للوظائف التي يبدأ اسمها بـ «set». تتيح هذه البرمجة إضافة إجراءات غير أساسية لمنطق الأعمال (مثل التسجيل) إلى البرامج دون تشويش الكود الأساسي للوظيفة. تعد البرمجة الموجهة بالسمات أساسًا لتطوير البرمجيات ذات السمات.
تتضمن البرمجة الموجهة بالسمات التوجه طُرق وأدوات برمجية تدعم نمذجة الاهتمامات على مستوى الكود المصدري، بينما يشير «تطوير البرمجيات ذات السمات» إلى تخصص هندسي كامل.
تستلزم البرمجة الموجهة بالسمات تقسيم منطق البرنامج إلى أجزاء مميزة (تسمى الاهتمامات، مجالات أداء وظيفي متماسكة). تدعم جميع أنماط البرمجة تقريبًا مستوى ما من تجميع وتغليف الاهتمامات في كيانات مستقلة منفصلة بتقديم التجريدات (مثل الوظائف والإجراءات والوحدات النمطية والأصناف والطرق) التي يمكن استخدامها لتنفيذ هذه الاهتمامات وتجريدها وتجميعها. تتقاطع بعض الاهتمامات مع تجريدات متعددة في البرنامج، تستعصي على أشكال التنفيذ هذه. وتسمى هذه الاهتمامات الاهتمامات المتقاطعة أو الاهتمامات الأفقية.
يمثل التسجيل اهتمامًا متقاطعًا لأن إستراتيجية التسجيل تؤثر بالضرورة على كل جزء مسجل من النظام. وبالتالي يتقاطع التسجيل جميع الأصناف والطرق المسجلة.
تحتوي جميع تطبيقات البرمجة الموجهة بالسمات بعض التعبيرات المتقاطعة التي تُغلّف كل اهتمام في مكان واحد. يكمن الاختلاف بين التطبيقات في القوة والآمان وسهولة الاستخدام للبنيات المقدمة. مثلًا، الاعتراضات التي تحدد طرق للتعبير عن شكل محدود للتقاطع، دون الدعم الجيد لسلامة الأنواع أو تصحيح الأخطاء. يملك امتداد AspectJ عددًا من هذه التعبيرات التي يغلفها في صنف خاص، يدعى جانب. مثلًا، يمكن للجانب أن يغير إجراء الكود الأساسي (الجزء غير الجانبي من البرنامج) من خلال تطبيق إرشاد (إجراء إضافي) في نقاط الربط المختلفة (نقاط في البرنامج) المحددة في تقدير الكمي أو استعلام يسمى نقطة القطع (يحدد ما إذا كانت نقطة ربط معينة مطابقة). يمكن للجانب أيضًا إجراء تغييرات هيكلية ثنائية متوافقة للأصناف الأخرى، مثل إضافة أصناف أعضاء أو أصناف آباء.