怎么做我已经插构在红宝石在轨道上?
题
我必须要建立一个社交网站上。在该网站可更改的时间;因此,我们将需要增加/删除功能,提供方便。此外,我们可以建立另一个社交网站。由于这些原因,我们正在考虑建立一个基础框架,用于社交网站在退休与功能安装或卸载扩展的框架。
我曾在网站!CMS及其架构,为增加或删除的扩展是一种什么我看。在一个网站!安装通常有一个管理面,从中可以添加/删除/定制的扩展。
我是新来的退休,并发现它有点难以决定如何做到这一点。任何帮助,将不胜感激。
解决方案
更新2015年:这是回答了在2009年发生了很多变化
插件已经被取代的宝石和引擎 所有你需要的信息引擎:http://guides.rubyonrails.org/engines.html
引擎是一个很好的方式的建筑物封装和重复使用代码轨道应用程序。
原来的答复以供参考
在发展侧轨引擎和/或插件可能是你在找什么。
例如说你的社交网络应用程序都有一个维基、博客、聊天室等等。你会超过可能想要创建一个维基引擎,博客机和聊天室的引擎。
引擎允许重新使用这种功能在不同的应用程序,所以你不必重复自己。
我还建议考虑看看一些公共项目说想看看人们如何使用的发动机。
看看一些发动机:
其他有用的链接读取
在功能方面,你仍然能够拥有一个管理区域可能激活的某些特征。你的博客或wiki通过允许用户访问这些地区的权限/职系统。
如果你想建立一个CMS支持某种的扩展,如在翻网站然后你将不得不建立并提供指导或至少看到你会怎么上载/安装的发动机/插件从用户的角度。
不肯定在安全的影响这个
管理平台 已经把这种功能进入他们的真棒应用程序。你可以想周围挖的 源代码 关于针和线索
最后 Adva_CMS 已经基本上采用了这种方法和有创建的 一号引擎 他们CMS应用程序
禾田
其他提示
引擎仍然是去一个非常坚实的方式,新的位置,以获得这些位于此处的信息: http://guides.rubyonrails.org/engines.html
但你需要的是真正的多个特定用途。很多应用程序开发有机地随着时间的推移这些东西。他们开始了手工制作一个少数这些,然后他们定期重新的因素,直到他们发现,与软件设计模式保持一致,然后他们开发插件的框架模式。
你会暴露你的界面,最终用户?向第三方开发者?哪些部分的应用程序都是由这些插件控制?难道仅仅是表示层?它会影响数据模型?想想看,当你发布任何形式的外部接口,你开发,你需要履行合同的事实。
您可以看看这些设计模式: http://en.wikipedia.org/wiki/Software_design_pattern 。他们会帮助你找出如何管理您的开发过程。如果你只是在插件供内部使用的工作,那还有什么是他们的真正目的是什么?是什么使他们比模块不同?