جسم عارٍ

الكائنات المجردة هي نمط معماري يُستخدم في هندسة البرمجيات . ويتم تعريفها من خلال ثلاثة مبادئ:

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

تنشأ الميزة المبتكرة لنمط الجسم العاري من خلال الجمع بين المبدأين الأول والثاني في مبدأ ثالث :

  1. يجب إنشاء واجهة المستخدم تلقائيًا بالكامل من تعريفات كائنات المجال. ويمكن القيام بذلك باستخدام تقنية الانعكاس أو توليد شفرة المصدر .

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

كان أول إطار عمل مفتوح المصدر كامل يُطبّق هذا النمط يُسمى Naked Objects. [ 2 ] في عام 2021، أعلن باوسون أنه طبّق النمط نفسه لاحقًا على نموذج البرمجة الوظيفية ، كبديل لنموذج البرمجة الكائنية ، مُنشئًا بذلك نسخةً مُعدّلة من إطار عمل Naked Objects تُسمى Naked Functions. [ 3 ]

فوائد

تزعم أطروحة باوسون [ 1 ] أربع فوائد لهذا النمط:

  1. تتميز دورة التطوير هذه بسرعة أكبر نظرًا لقلة الطبقات المطلوب تطويرها. في التصميم التقليدي، يتعين على المطور تحديد وتنفيذ ثلاث طبقات منفصلة أو أكثر: طبقة كائنات المجال، وطبقة العرض، ونصوص المهام أو العمليات التي تربط بينهما. (إذا تم دمج نمط الكائنات المجردة مع ربط الكائنات العلائقية أو قاعدة بيانات كائنات ، فمن الممكن إنشاء جميع طبقات النظام من تعريفات كائنات المجال فقط؛ ومع ذلك، لا يُعد هذا جزءًا من نمط الكائنات المجردة بحد ذاته ). تتضمن هذه الأطروحة دراسة حالة تقارن بين تطبيقين مختلفين لنفس التطبيق: أحدهما قائم على تطبيق تقليدي من أربع طبقات، والآخر يستخدم الكائنات المجردة.
  2. تُشير المرونة الأكبر إلى سهولة تعديل التطبيق لاستيعاب التغييرات المستقبلية في متطلبات العمل. ويعود ذلك جزئيًا إلى تقليل عدد الطبقات المطورة التي يجب الحفاظ على تزامنها. ومع ذلك، يُزعم أيضًا أن التطابق التام بين واجهة المستخدم ونموذج المجال يُحفز على تصميم نماذج كائنات عالية الجودة ، مما يُحسّن بدوره من المرونة.
  3. أسلوب أكثر تمكينًا لواجهة المستخدم . تُعزى هذه الميزة في الواقع إلى واجهة المستخدم الموجهة للكائنات (OOUI) الناتجة، وليس إلى الكائنات المجردة بحد ذاتها، على الرغم من وجود حجة مفادها أن الكائنات المجردة تجعل من السهل جدًا تصور وتنفيذ واجهة المستخدم الموجهة للكائنات.
  4. تحليل أسهل للمتطلبات . الفكرة هنا هي أنه مع نمط الكائنات المجردة، تُشكّل كائنات المجال لغةً مشتركة بين المستخدمين والمطورين، وتُسهّل هذه اللغة المشتركة عملية مناقشة المتطلبات، لعدم وجود تمثيلات أخرى للمناقشة. وبالإضافة إلى دورة التطوير الأسرع، يُصبح من الممكن إنشاء نماذج أولية للتطبيقات الوظيفية في الوقت الفعلي.

يستخدم

قامت وزارة الحماية الاجتماعية (DSP) (المعروفة سابقًا باسم وزارة الشؤون الاجتماعية والأسرية) في أيرلندا ببناء مجموعة من تطبيقات المؤسسة باستخدام نمط الكائنات المجردة. وكجزء من برنامج تحديث تقديم الخدمات (SDM)، صممت الوزارة بنية مؤسسية جديدة لتلبية متطلبات أعمالها الجديدة المخطط لها، ولتوفير مرونة أكبر على المدى الطويل. ويُعدّ نمط الكائنات المجردة عنصرًا أساسيًا في بنية SDM. [ 4 ] في نوفمبر 2002، أطلقت الوزارة تطبيقًا جديدًا ليحل محل نظامها الحالي لإدارة إعانات الأطفال. ويُعتقد أن هذا هو أول تطبيق عملي لنمط الكائنات المجردة على مستوى العالم. وقد وُثّقت تجربة الوزارة في بناء هذا التطبيق الأول، بما في ذلك ردود فعل المستخدمين على واجهة المستخدم المبتكرة، بشكلٍ مُفصّل في أطروحة باوسون، [ 1 ] ومؤخرًا في عرض تقديمي في مؤتمر QCon London 2011. [ 5 ]

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

تم تطوير بنية "الكائنات المجردة" الأولية لوحدة معالجة الإشارات الرقمية بواسطة مقاول خارجي، [ 6 ] ولكن أعيد تطوير هذه البنية لاحقًا حول إطار عمل الكائنات المجردة الذي يشكل الآن الأساس لتطوير التطبيقات المستقبلية، كما هو مؤكد في طلب تقديم العطاءات لبرنامج مدته أربع سنوات لتطبيقات إضافية سيتم بناؤها باستخدام الكائنات المجردة. [ 7 ]

العلاقة بالأفكار الأخرى

يُعد نمط الأشياء العارية ذا صلة بالعديد من التخصصات و/أو الاتجاهات الأخرى، بما في ذلك:

آليات تخزين الكائنات

تُعنى كلٌّ من ربط الكائنات العلائقية ، وقواعد بيانات الكائنات ، واستمرارية الكائنات ، بالاستغناء عن كتابة طبقة وصول تقليدية للبيانات أسفل كائنات المجال. وتُكمّل هذه الأنماط نمط الكائنات المجردة، الذي يُعنى بالاستغناء عن كتابة طبقات فوق كائنات المجال، بل وربما تُحقق تكاملاً معه.

تطوير البرمجيات الرشيقة

تتوافق منهجية Naked Objects مع التوجه نحو منهجيات التطوير الرشيقة من نواحٍ عديدة، ولا سيما مع التطوير التكراري الدقيق. ولعل تجربة DSP (الموصوفة أعلاه) كانت أيضاً أكبر تطبيق لتقنيات تطوير البرمجيات الرشيقة في مؤسسة تابعة للقطاع العام على مستوى العالم. [ 8 ]

التصميم الموجه بالمجال

التصميم الموجه بالمجال هو فكرة استخدام نموذج المجال (الكائن) المتطور كآلية للمساعدة في استكشاف المتطلبات، وليس العكس. إن حقيقة أن نظام الكائنات المجردة يفرض تطابقًا مباشرًا بين واجهة المستخدم ونموذج المجال، تُسهّل تطبيق التصميم الموجه بالمجال، وتجعل فوائده أكثر وضوحًا. [ 9 ]

هندسة البرمجيات الموجهة بالنماذج (MDA)

على الرغم من أن مفهوم "الأشياء المجردة" لا يتوافق مع التعريف الدقيق لنظرية تحليل البيانات الرقمية، إلا أنه يشترك معها في العديد من الأهداف. وقد جادل دان هايوود بأن "الأشياء المجردة" هي نهج أكثر فعالية لتحقيق تلك الأهداف. [ 10 ]

أشياء تبعث على الراحة

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

انظر أيضاً

مراجع

  1. 1 2 3 باوسون، ريتشارد (يونيو 2004). أشياء عارية (ملف PDF) (أطروحة دكتوراه). كلية ترينيتي دبلن .
  2. إطار عمل الكائنات العارية
  3. من الكائنات المجردة إلى الدوال المجردة
  4. وزارة الشؤون الاجتماعية والأسرية - دليل وظائف وسجلات الوزارة، موقع وزارة الشؤون الاجتماعية والأسرية - أرشيف حرية المعلومات ، مؤرشف بتاريخ 19-10-2012 في أرشيف الإنترنت
  5. دراسة حالة: تطبيق البرمجة الكائنية النقية على نطاق واسع في الحكومة الأيرلندية، مؤتمر QCon لندن 2011
  6. فوجيتسو، دراسة حالة: إدارة الشؤون الاجتماعية والأسرية، موقع فوجيتسو الإلكتروني، مؤرشف بتاريخ ٢٩ نوفمبر ٢٠٠٧ في أرشيف الإنترنت (Wayback Machine).
  7. وزارة الشؤون الاجتماعية والأسرية، التطوير المستمر لبرنامج تحديث تقديم الخدمات بالوزارة، 2007، موقع المناقصات الإلكترونية
  8. باوسون، ريتشارد؛ ويد، فنسنت (2003). "التطوير الرشيق باستخدام الكائنات المجردة". البرمجة المتطرفة والعمليات الرشيقة في هندسة البرمجيات . XP'03. LNCS . المجلد 2675. الصفحات 97-103 . doi : 10.1007/3-540-44870-5_13 . ISSN 0302-9743 .   
  9. هايوود، د.، تصميم قائم على المجال باستخدام الكائنات المجردة ، 2009، المبرمجون العمليون
  10. هايوود، د (2004) MDA: فكرة جيدة، ولكن من المؤسف...