سؤال

تطوير المكونات بدأ المصطلح في التعود على نطاق واسع، ESP. في اتصال مع انقلاب السيطرة.

  1. ما هذا؟
  2. ماذا تحل من مشكلات؟
  3. متى يكون ذلك مناسبا ومتى لا؟
هل كانت مفيدة؟

المحلول

ما هذا؟

أعتقد أن التعريف في إجابتك يغطي هذا السؤال جيدا. على الرغم من أنني أسأل لماذا يتضمن التعريف أن مكون يحتاج إلى تعريف تبعياتها بشكل صريح. مثال واضح للمكون هو عنصر تحكم ActiveX - هل يحتاجون إلى تعريف تبعياتهم بشكل صريح؟

ماذا تحل من مشكلات؟

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

متى يكون ذلك مناسبا ومتى لا؟

ليس من المناسب بالضرورة في تطبيق TRIVAL أو رمي. الرائحة السيئة في بنية مكونات، إذا كنت تقضي بعض الوقت في التفكير أو العمل على البنية التحتية لإدارة المكونات والجمع بين المكونات، بدلا من المكونات نفسها.

نصائح أخرى

لست متأكدا من أنه مصطلحات "واسعة الانتشار"، ولكن في VCS (نظام التحكم الإصدار)، أعرف طريقتين لإدارة مجموعة من الملفات اللازمة لبناء برنامج:

  • النهج القائم على النظام, ، حيث تحتوي جميع المجموعة على دورة حياة مشتركة ويجب وضع علامة كلها
  • النهج القائم على المكونات، حيث تحتوي مجموعة الملفات الفردية على دورة حياة خاصة بها، وحيث تشير علامة التعريف إلى جميع ملصقات المكونات لتعيين جميع النظام عن طريق التركيب والتبعية بين هذه المكونات.

ال العمارة المعقدية يستخدم لتحديد هذه المكونات:

  • مجال وظيفي التطبيقات
  • مكتبات الطرف الثالث
  • إطار أعمال

هذا هو المكان الذي يأتي فيه IOC، لأنه في قاعدة أي إطار. المشكلة التي يحلها هي أن تسمح لك بتحديد الجزء من طلبك بشكل أفضل:
لنفترض أنك تقوم بتصميم تطبيق PLR (ربح وفقدان)، مسؤولا لحساب الربح والخسائر (الموقف) من المتداول.
أنت تدرك بسرعة أنها ليست تطبيق واحد، ولكن تكوين العديد من:

  • واجهة المستخدم الرسومية
  • منصة الإطلاق
  • المرسل (لإرسال الحساب عبر العديد من الخادم، لأن المرء لن يكون لديه ذاكرة كافية لحساب الكل!)
  • وهكذا دواليك

يمكنك بعد ذلك تحديد إطار حساب حساب (IOC) الذي سيمكنك من توصيل وحداتك المختلفة، والتي يتم استدعاءها بعد ذلك في الوقت المناسب من خلال إطار عملك.

أو يمكنك تحديد بحتة الأطر التقنية (KPI، سجلات، إدارات الاستثناءات) والتي يمكن استخدامها بعد ذلك من قبل أي من الآخر وظيفي عناصر.

في مدة إدارة المشاريع، تتيح لك أيضا تطوير كل جزء بشكل مستقل، مع ضمان التنسيق العالمي من خلال VCS.

التنمية القائمة على المكون لا شيء جديد حقا. لا أعرف تطوير المكونات، لكنني سأفترض أنه CBD. إنها كيفية تصميم UNIX، مجموعة من البرامج الصغيرة البديلة التي يقوم بها كل شيء واحد جيدا. في ساحة سطح المكتب، نجحت شركة Delphi VCL في استخدام المكونات ذات المكونات الغنية القابلة لإعادة الاستخدام وسوق الطرف الثالث لا مثيل لها. نحن نرى الآن إحياء اتفاقية التنوع البيولوجي لأن بعض التقنيات نضوج. على سبيل المثال، تتطور تطبيقات الويب البسيطة إلى WS مريحة. جميع شباب جافا يتحدثون عن هو الطيف و IOC.

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

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

تعالج نموذج التطوير القائم على المكون (CBD) المشكلتين أعلاه من خلال تحويل منطق السباكة إلى الأطر التي تتلاعب بالمكونات وإعداد التطبيقات بناء على المستخدمين / المطورين المقدمة أوصاف تعريفية. على عكس الارتباك المشترك، لا تهدف هذه الوصفات المعلنة إلى أن تكون البرامج النصية إعداد التطبيق. بدلا من ذلك، فإن نيةهم الأساسية هي أن تعبر بشكل صريح عن هياكل / هياكل التطبيقات دون تكليف بإجراءات السباكة الضرورية (وهي تصف ما بدلا من ذلك). الهدف من CBD Presadigm هو دعم تركيبات التطبيقات الفعالة والمرنة من خلال هذه الأطر وتركز مطوري التطبيقات على منطق الأعمال وقضايا المجال دون عن تعقيد تعقيدات السباكة منخفضة المستوى.

تتم الإشارة إلى أطر CBD التي تجمع بين أوصاف التطبيق التصريحي وتقنية IOC باسم أطر IOC. على عكس أسلوائهم، أطر IOC غير الغازية واستخدام حقن التبعية / التكوين / سيناريو الإعداد.

وفقا ل Wikipedia، التنمية القائمة على المكونات هي اسم مستعار ل هندسة البرمجيات القائمة على المكونات (CBSE).

IT] هو فرع من هندسة البرمجيات، الأولوية منها هي فصل المخاوف فيما يتعلق بالوظائف الواسعة النطاق المتاحة خلال نظام برامج معين.

هذا غامض إلى حد ما، لذلك دعونا ننظر إلى مزيد من التفاصيل.

مكون فردي عبارة عن حزمة برامج أو وحدة نمطية تتخلص مجموعة من الوظائف ذات الصلة (أو البيانات).

يتم وضع جميع عمليات النظام في مكونات منفصلة بحيث تكون جميع البيانات والوظائف داخل كل مكون مرتبطة دلالة (كما هو الحال مع محتويات الفئات). بسبب هذا المبدأ، غالبا ما يقال أن المكونات وحدات و متماسك.

لذلك، وفقا لهذا التعريف، يمكن أن يكون أحد العناصر أي شيء طالما أنه شيء واحد جيد حقا وآخر واحد فقط.

فيما يتعلق بالتنسيق على مستوى النظام، تتواصل مكونات مع بعضها البعض عبر واجهات. وبعد [...] هذا المبدأ يؤدي إلى مكونات المشار إليها باسم مغلف.

لذلك هذا يبدو أكثر وأكثر مثل ما نعتقد أنه يجب أن تبدو API أو الخدمية الجيدة.

ال قدمت واجهات ممثلة من قبل مصاصة و مطلوب يتم تمثيل الواجهات بواسطة رمز مأخذ مفتوح متصل بالحافة الخارجية للمكون في UML.

alt text
(مصدر: wikimedia.org.)

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

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

الاستبدال وإعادة الاستخدام هو ما يجعل مكون مكون. إذن ما هو الفرق بين هذه البرمجة الموجهة نحو الكائن؟

الفكرة في البرمجة الموجهة للكائنات (OOP) هي أنه يجب كتابة البرنامج وفقا لنموذج عقلي للكائنات الفعلية أو المتخيلة التي يمثلها. [...

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

إليك تعريفي بعد إجراء بعض الأبحاث.

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

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

روابط ذات علاقة:

أرى هندسة البرامج القائمة على المكونات كنهج لتطوير نظم البرمجيات من خلال استخدام المكونات القابلة للتوصيل؛ مع مكون يجري "وحدة من التركيب مع واجهات تعاقد تعاقدي وتبعية سياق صريحة فقط"، أي "يمكن نشرها بشكل مستقل وتخضع لتكوين طرف ثالث. "(كليمنز Szyperski،"برنامج المكون: ما وراء البرمجة الموجهة للكائنات")

يسهل CBSE إعادة استخدام التعليمات البرمجية والتجميع السريع لأنظمة البرمجيات المرنة / القابلة للتكيف.

هناك بحث كبير تركز على هذا الموضوع لسنوات. الحدث الرئيسي (ندوة ACM SIGSOFT على هندسة البرمجيات القائمة على المكونات) في السنة الرابعة عشرة الآن وهناك عدد قليل جدا من الاتجاهات الجديدة الناشئة.

أيضا، إذا كنت تريد مثالا جيدا على مكونات قابلة لإعادة الاستخدام والقابلة للتوصيل والمتوسطة، بشكل كبير في الاستخدام من خلال الصناعة اليوم، نلقي نظرة على مكتبة MS Enterprise..

إذا كنت مهتما بالجمع بين المكونات (أو غيرها من الأصول القابلة لإعادة الاستخدام) في التطبيقات، فيجب عليك أيضا إلقاء نظرة على خطوط منتجات البرمجيات المنهجية.

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

  • يجب عدم استخدام هذين المكونين معا (التفرد المتبادل)
  • إذا تم استخدام هذا المكون، فيجب استخدام هذا المكون الآخر أو (اعتباط)
  • يمكن استخدام أي مجموعة من بعض المجموعة المحددة من المكونات (اختيارات)

هناك قواعد أخرى أكثر تعقيدا ممكنة اعتمادا على تعقيد التبعيات التي ترغب في نموذجها.

هناك نهج آخر يستخدم في بعض الأحيان بدلا من النمذجة الميزة هو استخدام مولد التعليمات البرمجية لتكوين المكونات المختلفة التي سيتم تجميعها في التطبيق النهائي. من الممكن أيضا الجمع بين النمذجة الميزة مع توليد التعليمات البرمجية.

بصرف النظر عن جيل التعليمات البرمجية، فإن بعض المصطلحات الأخرى التي قد تبحث عنها من حيث النمذجة الخاصة بالمجال، وتطوير البرمجيات التي يحركها النموذج، عائلة البرمجيات.

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

تطوير المكونات، حول كل واحد يتحدث مؤخرا، يعني، لديك 2 أشياء:

  1. موضوع - وهذا مثل كائن في برمجة Oop أو كائن عالمي حقيقي.
  2. مكون الكائن - وهو ما يشبه جزء من وظائف الكائن أو إحدى قدراته.

هكذا: مكون - ليس كائنا. إنه - وظيفة كائن.

لذلك، في برمجة OOP القياسية، عندما تحتاج إلى تمديد الكائن الأساسي بوظائف جديدة، يجب عليك جعل كائن مشتق جديد من خلال ورث كائن أساسي.

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

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

وهكذا: يمنحك تطوير المكونات:

  1. قوة رائعة لإنشاء منطق البرنامج الخاص بك، باستخدام مجرد محرر، دون برمجة.
  2. يحرر عقلك من الجحيم الميراث OOP. يجعل التنمية أكثر بساطة وسريعة.
  3. يجعل برنامجك قابل للتخصيص للغاية وقابل للتوسعة دون حتى لمس التعليمات البرمجية. أقل الأخطاء والبق.
  4. أسهل الحفاظ على رمز البرنامج الخاص بك، من خلال إعادة برمجة مكونات محددة فقط، دون نظام بقية تأثير كبير.
  5. إلخ...

أريد أيضا إضافة، هذه البرمجة المستندة إلى المكونات غير المستندة إلى المكونات ليست بديلة لبرمجة OOP، فهي موجودة على رأس OOP أو البرمجة المعتادة. البرمجة المعتادة لا تزال تستخدم في CBP لتنفيذ مكونات المستوى المنخفض. أعتقد أن هذه المقالة لديها أيضا شرح جيد واختصار من CBP: http://acmantwerp.acm.org/wp-content/uploads/20/201/201/201

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top