سؤال

لا بد لي من إنشاء موقع للتواصل الاجتماعي على Ruby on Rails.قد تتغير الميزات الموجودة في الموقع من وقت لآخر؛لذلك سنحتاج إلى إضافة/إزالة الميزات بسهولة.علاوة على ذلك، ربما نقوم ببناء موقع تواصل اجتماعي آخر.لهذه الأسباب، نفكر في إنشاء إطار عمل أساسي لمواقع الشبكات الاجتماعية في RoR مع ميزة تثبيت أو إلغاء تثبيت الامتدادات إلى إطار العمل.

عملت سابقا في جوملا!إن نظام إدارة المحتوى (CMS) وبنيته الخاصة بإضافة/إزالة الامتدادات هو نوع ما أتطلع إليه.في جملة!عادةً ما يكون التثبيت هناك جانبًا إداريًا يمكنك من خلاله إضافة/إزالة/تخصيص الامتدادات.

أنا جديد على RoR ولا أجد صعوبة في تحديد كيفية القيام بذلك.سيكون موضع تقدير أي مساعدة.

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

المحلول

تحديث 2015:تم الرد على هذا في عام 2009 لقد تغير الكثير

تم استبدال المكونات الإضافية بواسطة الأحجار الكريمة والمحركات لجميع المعلومات التي تحتاجها على المحركات:http://guides.rubyonrails.org/engines.html

تعد المحركات طريقة رائعة لإنشاء تعليمات برمجية مغلفة وقابلة لإعادة الاستخدام لتطبيقات Rails الخاصة بك.

الإجابة الأصلية للرجوع إليها

من ناحية التطوير، ربما تكون Rails Engines و/أو المكونات الإضافية هي ما تبحث عنه.

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

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

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

ألق نظرة على: http://rails-engines.org/

تم دمج بعض الدعم لمكونات "المحرك" في قاعدة كود CORES CORE في Rails 2.3.

أوصي أيضًا بإلقاء نظرة على بعض المشاريع العامة على جيثب ومعرفة كيفية استخدام الأشخاص للمحركات.

ألق نظرة على بعض المحركات:

روابط أخرى مفيدة للقراءة

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

إذا كنت ترغب في إنشاء نظام إدارة محتوى يدعم بعض أنواع الإضافات كما هو الحال في Wordpress أو Joomla، فسيتعين عليك إما بنائه وتقديم إرشادات أو على الأقل النظر في كيفية تحميل/تثبيت المحركات/المكونات الإضافية من منظور المستخدم.

لست متأكدا من الآثار الأمنية لهذا

ريدمين لقد وضعوا هذا النوع من الوظائف في تطبيقهم الرائع.قد ترغب في التنقيب حول مصدر الرمز للحصول على النصائح والقرائن

أخيراً Adva_CMS وقد اعتمدت أساسا هذا النهج وخلقت عدد من المحركات لتطبيق CMS الخاص بهم

هث

نصائح أخرى

لا تزال المحركات وسيلة قوية للمضي قدمًا، والموقع الجديد للحصول على معلومات عنها موجود هنا: http://guides.rubyonrails.org/engines.html

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

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

يمكنك التحقق من أنماط التصميم هذه: http://en.wikipedia.org/wiki/Software_design_pattern.سوف يساعدونك في معرفة كيفية إدارة عملية التطوير الخاصة بك.إذا كنت تعمل فقط على المكونات الإضافية للاستخدام الداخلي، فما هو الغرض الحقيقي منها؟ما الذي يجعلها مختلفة عن الوحدات؟

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