ما هي أفضل الموارد إذا كنت تريد إنشاء تطبيق مع البنيوية?[مغلقة]

StackOverflow https://stackoverflow.com/questions/413247

  •  03-07-2019
  •  | 
  •  

سؤال

في تحليل أحدث منصات الويب/تطبيقات مثل دروبال, وورد, و Salesforce, وكثير منهم إنشاء البرامج الخاصة بهم على أساس مفهوم البنيوية:حيث يمكن للمطورين إنشاء التوسعات الجديدة والتطبيقات دون الحاجة إلى تغيير التعليمات البرمجية في "الأساسية" نظام تحتفظ بها يؤدي المطورين.ولا سيما أعلم يستخدم دروبال "هوك" النظام ولكن أنا لا أعرف الكثير عن محرك أو التصميم الذي تطبق عليه.

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

أنا أعرف بعض الناس نقطة مباشرة إلى OOP, ولكن هذا لا يبدو أن نفس الشيء تماما.

هذا نظام معين انا التخطيط يميل أكثر نحو شيء من هذا القبيل Salesforce, ولكنه ليس نظام إدارة علاقات العملاء.

أجل السؤال من فضلك تجاهل شراء مقابلبناء الحجة, كما أن النظر هو بالفعل في الأشغال.الآن أنا في البحث عن بناء الجانب.

هل كانت مفيدة؟

المحلول

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

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

الطريقة الأخرى هي أن نقدم API, التي يمكن أن أن يطلق عليه من قبل الأطراف ذات الصلة وجعل تطبيق نقل السيطرة على الكود الموجود في مكان آخر (على غرار Facebook apps) أو جعل التطبيق أن نفعل مثل API الأوامر تمكن المطور (على غرار خرائط جوجل).

على الرغم من الآليات تختلف و كيفية تنفيذها تختلف, عليك, في أي حال, تعريف

  • ما الحرية سوف تتيح للمستخدمين ؟
  • ما هي الخدمات التي سوف تقدم للمبرمجين لتخصيص التطبيق ؟

والشيء الأكثر أهمية:

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

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

function renderBackground() {
    foreach (Plugin p in getRegisteredPlugins()) {
        if (p.rendersBackground) p.renderBackground();
    }
    //Standard background code if nothing got executed (or it still runs, 
    //according to needs)
}

في هذه الحالة يجب عليك 'renderBackground' ربط الإضافات التي يمكن أن تنفذ إلى تغيير الخلفية.

في API طريقة التطبيق المستخدم استدعاء الخدمة الخاص بك للحصول على الخلفية المقدمة

//other code
Background b = Salesforce2.AjaxRequest('getBackground',RGB(255,10,0));
//the app now has the result of calling you

هذا هو أيضا ذات الصلة هوليوود مبدأ, الذي هو شيء جيد لتطبيق, ولكن في بعض الأحيان ليس من العملي.

نصائح أخرى

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

ويسمى هذا العنصر المعماري.حقا أنها منطقة كبيرة ، ولكن بعض الأمور الهامة هنا هي:

  • تكوين مكونات (حاوية مكونات يمكن أن تحتوي على أي مكونات أخرى)
    • على سبيل المثال الشبكة يجب أن تكون قادرة على احتواء غيرها من الشبكات أو أي مكونات أخرى
  • برمجة واجهة (مكونات تتفاعل مع طريق معروف واجهات)
    • على سبيل المثال نظام العرض التي قد يطلب مكون لتقديم نفسها (القول في HTML ، أو قد تكون مرت تجعل المنطقة ونطلب من أجل لفت إلى أنه مباشرة
  • الاستخدام الواسع النطاق الديناميكي السجلات (عندما البرنامج المساعد تحميل يسجل نفسه مع السجلات المناسبة)
  • نظام تمرير الأحداث المكونات (مثل نقرات الماوس المؤشر يدخل الخ)
  • إخطارا
  • إدارة المستخدم

وأكثر من ذلك بكثير!

إذا كنت استضافة التطبيق ، نشر (و dogfood) راحة API.

إذا كنت توزيع البرمجيات ، أنظر أو إس جي أي.

وهنا فيديو صغيرة على الأقل سوف تعطيك بعض تلميحات ؛ ليغو عملية [أقل من 2 دقائق طويلة]

هناك أيضا وصفة كاملة عن كيفية إنشاء الخاصة بك الإطار بناء على نطاق واسع على البنيوية...

أهم عنصر رئيسي لجعل النمطي البرنامج هو أن نتذكر أنه بحتة [في الغالب] مسألة كيف المتباعدة يمكنك إنشاء النظم الخاصة بك.أكثر المتباعدة ، فمن الأسهل أن modularize...

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